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

Reply via email to