Re: Out-of-bounds write and incorrect detection of trigger file in pg_standby - Mailing list pgsql-hackers

From Michael Paquier
Subject Re: Out-of-bounds write and incorrect detection of trigger file in pg_standby
Date
Msg-id CAB7nPqSB6eY_Lcwyou=8Gnc9Y65oSfOazuKG5siDozQSUqxVAQ@mail.gmail.com
Whole thread Raw
In response to Re: Out-of-bounds write and incorrect detection of trigger file in pg_standby  (Robert Haas <robertmhaas@gmail.com>)
Responses Re: Out-of-bounds write and incorrect detection of trigger file in pg_standby
List pgsql-hackers
On Thu, Jan 15, 2015 at 7:13 AM, Robert Haas <robertmhaas@gmail.com> wrote:
> Instead of doing this:
>
>     if (len < sizeof(buf))
>         buf[len] = '\0';
>
> ...I would suggest making the size of the buffer one greater than the
> size of the read(), and then always nul-terminating the buffer.  It
> seems to me that would make the code easier to reason about.
How about the attached then? This way we still detect the same way any
invalid values:
-       if ((len = read(fd, buf, sizeof(buf))) < 0)
+       if ((len = read(fd, buf, sizeof(buf) - 1)) < 0)
Regards,
--
Michael

Attachment

pgsql-hackers by date:

Previous
From: Amit Langote
Date:
Subject: Partitioning: issues/ideas (Was: Re: On partitioning)
Next
From: Alvaro Herrera
Date:
Subject: Re: Safe memory allocation functions