Re: [PATCHES] Bad bug in fopen() wrapper code - Mailing list pgsql-hackers

From Magnus Hagander
Subject Re: [PATCHES] Bad bug in fopen() wrapper code
Date
Msg-id 6BCB9D8A16AC4241919521715F4D8BCEA35766@algol.sollentuna.se
Whole thread Raw
In response to Re: [PATCHES] Bad bug in fopen() wrapper code  (Tom Lane <tgl@sss.pgh.pa.us>)
Responses Re: [PATCHES] Bad bug in fopen() wrapper code
Re: [PATCHES] Bad bug in fopen() wrapper code
List pgsql-hackers
> >> Now, I still twist my head around the lines:
> >> if ((fd = _open_osfhandle((long) h, fileFlags & O_APPEND)) < 0
> >> ||
> >> (fileFlags & (O_TEXT | O_BINARY) && (_setmode(fd, fileFlags &
> (O_TEXT
> >> | O_BINARY)) < 0)))
>
> > Without having studied it closely, it might also highlight a bug
> on
> > failure of the second clause -- if the _setmode fails, shouldn't
> > _close be called instead of CloseHandle, and -1 returned?
> > (CloseHandle would still be called on failure of the
> _open_osfhandle,
> > obviously)
>
> I agree that this code is both wrong and unreadable (although in
> practice the _setmode will probably never fail, which is why our
> attention hasn't been drawn to it).  Is someone going to submit a
> patch?  I'm hesitant to change the code myself since I'm not in a
> position to test it.

I can look at fixing that. Is it something we want to do for 8.2, or
wait until 8.3? If there's a hidden bug, I guess 8.2?

//Magnus

pgsql-hackers by date:

Previous
From: Hannu Krosing
Date:
Subject: Re: Another idea for dealing with cmin/cmax
Next
From: José Orlando Pereira
Date:
Subject: Re: Replication hooks discussion