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

From Peter Eisentraut
Subject Re: Fix inappropriate uses of atol()
Date
Msg-id 56e97e55-a932-428e-aad0-9922c1befa14@eisentraut.org
Whole thread Raw
In response to Re: Fix inappropriate uses of atol()  (Heikki Linnakangas <hlinnaka@iki.fi>)
List pgsql-hackers
On 03.08.24 16:07, Heikki Linnakangas wrote:
> On 03/08/2024 14:04, Peter Eisentraut wrote:
>> I noticed (during [0]) to some uses of the function atol() seem 
>> inappropriate.  Either they assume that sizeof(long)==8 and so might 
>> truncate data if not, or they are gratuitous because the surrounding 
>> code does not use the long type.  This patch fixes these, by using 
>> atoll() or atoi() instead.  (There are still some atol() calls left 
>> after this, which seemed ok to me.)
>>
>> In the past, Windows didn't have atoll(), but the online documentation 
>> appears to indicate that this now works in VS 2015 and later, which is 
>> what we support at the moment.  The Cirrus CI passes.
> +1 except for this one:
> 
>> diff --git a/src/interfaces/ecpg/preproc/ecpg.trailer 
>> b/src/interfaces/ecpg/preproc/ecpg.trailer
>> index b2aa44f36dd..8ac1c5c9eda 100644
>> --- a/src/interfaces/ecpg/preproc/ecpg.trailer
>> +++ b/src/interfaces/ecpg/preproc/ecpg.trailer
>> @@ -217,7 +217,7 @@ char_variable: cvariable
>>              enum ECPGttype type = p->type->type;
>>
>>              /* 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");
>>              else
>>              {

I committed it without this hunk.




pgsql-hackers by date:

Previous
From: Thomas Munro
Date:
Subject: Re: On non-Windows, hard depend on uselocale(3)
Next
From: Peter Eisentraut
Date:
Subject: libpq minor TOCTOU violation