Re: Remove unnecessary static type qualifiers - Mailing list pgsql-hackers

From David Rowley
Subject Re: Remove unnecessary static type qualifiers
Date
Msg-id CAApHDvq2bO5+i4Y4N5Xd1kk6wJ_mRanRKSEiXb1tnLug3_9E1A@mail.gmail.com
Whole thread Raw
In response to Re: Remove unnecessary static type qualifiers  (Peter Eisentraut <peter@eisentraut.org>)
Responses Re: Remove unnecessary static type qualifiers
List pgsql-hackers
On Wed, 9 Apr 2025 at 03:46, Peter Eisentraut <peter@eisentraut.org> wrote:
> To avoid creating an array on the stack, you could maybe write it with a
> pointer instead, like:
>
> const char * const query = "...";
>
> I haven't tested whether that results in different or better compiled
> code.  The original code is probably good enough.

I expect it's been done the way it has to make the overflow detection
code work. The problem with having a pointer to a string constant is
that sizeof() will return the size of the pointer and not the space
needed to store the string.

We can get rid of the variable and make the overflow work by checking
the return length of snprintf. I think that's all C99 spec now...

len = snprintf(qbuf, "set client_encoding to '%s'", encoding);
/* check query buffer overflow */
if (len >= sizeof(qbuf))
    return -1;

David



pgsql-hackers by date:

Previous
From: Tom Lane
Date:
Subject: Re: Move tests of contrib/spi/ out of the core regression tests
Next
From: Daniel Gustafsson
Date:
Subject: Re: Enhancing Memory Context Statistics Reporting