On Sat, 10 Dec 2016 19:41:21 -0600 "Karl O. Pinc" <k...@meme.com> wrote:
> On Fri, 9 Dec 2016 23:36:12 -0600 > "Karl O. Pinc" <k...@meme.com> wrote: > > > Instead I propose (code I have not actually executed): > > ... > > char lbuffer[MAXPGPATH]; > > char *log_format = lbuffer; > > ... > > > > /* extract log format and log file path from the line */ > > log_filepath = strchr(lbuffer, ' '); /* lbuffer == log_format > > */ *log_filepath = '\0'; /* terminate log_format */ > > log_filepath++; /* start of file path */ > > log_filepath[strcspn(log_filepath, "\n")] = '\0'; > > Er, I guess I prefer the more paranoid, just because who knows > what might have manged to somehow write the file that's read > into lbuffer: > > ... > char lbuffer[MAXPGPATH]; > char *log_format = lbuffer; > ... > > /* extract log format and log file path from the line */ > if (log_filepath = strchr(lbuffer, ' ')) /* lbuffer == log_format > */ *log_filepath = '\0'; /* terminate log_format */ > log_filepath++; /* start of file path */ > log_filepath[strcspn(log_filepath, "\n")] = '\0'; *sigh* ... char lbuffer[MAXPGPATH]; char *log_format = lbuffer; ... /* extract log format and log file path from the line */ /* lbuffer == log_format, they share storage */ if (log_filepath = strchr(lbuffer, ' ')) *log_filepath = '\0'; /* terminate log_format */ else { /* Unknown format, no space. Return NULL to caller. */ lbuffer[0] = '\0'; break; } log_filepath++; /* start of file path */ log_filepath[strcspn(log_filepath, "\n")] = '\0'; > The file read is, of course, normally written by postgres. But > possibly writing to unintended memory locations, even virtual address > NULL, does not seem good. > > Any feedback from more experienced PG developers as how to best handle > this case would be welcome. > > Regards, > > Karl <k...@meme.com> > Free Software: "You don't pay back, you pay forward." > -- Robert A. Heinlein > Karl <k...@meme.com> Free Software: "You don't pay back, you pay forward." -- Robert A. Heinlein -- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers