Re: Fix inappropriate uses of atol()
Tom Lane <tgl@sss.pgh.pa.us>
From: Tom Lane <tgl@sss.pgh.pa.us>
To: Heikki Linnakangas <hlinnaka@iki.fi>
Cc: Peter Eisentraut <peter@eisentraut.org>,
pgsql-hackers <pgsql-hackers@postgresql.org>
Date: 2024-08-03T15:20:13Z
Lists: pgsql-hackers
Heikki Linnakangas <hlinnaka@iki.fi> writes: > On 03/08/2024 14:04, Peter Eisentraut wrote: >> I noticed (during [0]) to some uses of the function atol() seem >> inappropriate. > +1 except for this one: >> /* If we have just one character this is not a string */ >> - if (atol(p->type->size) == 1) >> + if (atoi(p->type->size) == 1) >> mmerror(PARSE_ERROR, ET_ERROR, "invalid data type"); How about - if (atol(p->type->size) == 1) + if (strcmp(p->type->size, "1") == 0) ? I've not actually tested, but this should catch the cases the warning is meant to catch while not complaining about any of the examples you give. I'm not sure if leading/trailing spaces would fool it (i.e., "char foo[ 1 ];"). But even if they do, that doesn't seem disastrous. regards, tom lane
Commits
-
Fix inappropriate uses of atol()
- f5a1311fccd2 18.0 landed