Re: Fix inappropriate uses of atol() - Mailing list pgsql-hackers

From Tom Lane
Subject Re: Fix inappropriate uses of atol()
Date
Msg-id 4169218.1722698413@sss.pgh.pa.us
Whole thread Raw
In response to Re: Fix inappropriate uses of atol()  (Heikki Linnakangas <hlinnaka@iki.fi>)
Responses Re: Fix inappropriate uses of atol()
List 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



pgsql-hackers by date:

Previous
From: Melanie Plageman
Date:
Subject: Re: Draft release notes for next week's releases are up
Next
From: Heikki Linnakangas
Date:
Subject: Re: Fix inappropriate uses of atol()