On Sun, Apr 14, 2002 at 05:20:55PM +0200, Wolfgang J?hrling wrote:
> Wolfgang J?hrling <[EMAIL PROTECTED]> wrote:
> > Looking at what glibc/hurd/fd-read.c does, it seems to be a leak to not
> > check for equality and freeing the buffer. Does anyone agree/disagree?
> 
> Well, I think I have to disagree with me here. :*)
> 
> Looking at hurd/hurd/io.defs, this parameter is specified as
> 
>   out data: data_t, dealloc;
> 
> Maybe I'm just understanding the MiG documentation wrong, but I thought
> the "dealloc" would take care of exactly this case. (Which was probably
> the reason I originaly wrote the code the way I did).

This does only have an effect on the server side and is necessary
because the server doesn't have a chance to release a return buffer it
allocated after it passed control back to mig (otherwise mig would need
to call a cleanup handler for data buffers).

> But then I don't understand why the glibc code copies the data back from
> the newly allocated space to the old one (provided by the client).

Because glibc implements the POSIX read() function, which reads into the
user supplied buffer.

Thanks,
Marcus



_______________________________________________
Help-hurd mailing list
[EMAIL PROTECTED]
http://mail.gnu.org/mailman/listinfo/help-hurd

Reply via email to