Re: [HACKERS] Segmentation fault with lo_export

Edmund Mergl <e.mergl@bawue.de>

From: Edmund Mergl <E.Mergl@bawue.de>
To: Bruce Momjian <maillist@candle.pha.pa.us>
Cc: PostgreSQL Developers Mailinglist <pgsql-hackers@postgresql.org>
Date: 1998-08-26T17:06:07Z
Lists: pgsql-hackers
Bruce Momjian wrote:
> 
> Edmund, has this been fixed?
> 
> > Hello,
> >
> > this problem appeared quite frequently in the last two years:
> > the libpq-function lo_export gives a segmentation fault.
> >
> > This happend with the current snapshot (I don't remember the
> > date, it was begin of June, filesize: 3980592) on Linux-2.0.34.
> > It worked with Postgresql-6.3.2.
> >
> > Edmund


Hi Bruce,

it looks like the last time I tested lo_export it worked
just by chance.

The bug seems to be in interfaces/libpq/fe-lobj.c line 424.
The two functions lo_import and lo_export are somehow
similar when exchanging the read/write for Unix file
and inv file. But whereas read() reads exactly BUFSIZ
bytes, lo_read() appends a '\0' after having read
BUFSIZ bytes. So line 424 should be:

  	char		buf[LO_BUFSIZE+1];

instead of:

	char		buf[LO_BUFSIZE];

Could you please apply this bug-fix ?
Also the code example in the man page for
large-objects needs to be corrected. 

I can't do it by myself because I am on 
vacation on a Greek island, and the only 
message I'm seeing frequently is 
'modem hangup, no CARRIER' ...

thanks
Edmund
-- 
Edmund Mergl          mailto:E.Mergl@bawue.de
Im Haldenhau 9        http://www.bawue.de/~mergl
70565 Stuttgart       fon: +49 711 747503
Germany