This is the mail archive of the
libc-alpha@sourceware.org
mailing list for the glibc project.
Re: [COMMITTED] libio: Update internal fmemopen position after write (BZ #20005)
- From: Adhemerval Zanella <adhemerval dot zanella at linaro dot org>
- To: libc-alpha at sourceware dot org
- Date: Tue, 26 Apr 2016 19:57:54 -0300
- Subject: Re: [COMMITTED] libio: Update internal fmemopen position after write (BZ #20005)
- Authentication-results: sourceware.org; auth=none
- References: <1461703596-21151-1-git-send-email-adhemerval dot zanella at linaro dot org> <874mao5bac dot fsf at linux-m68k dot org>
On 26/04/2016 18:07, Andreas Schwab wrote:
> Adhemerval Zanella <adhemerval.zanella@linaro.org> writes:
>
>> diff --git a/libio/fmemopen.c b/libio/fmemopen.c
>> index 23b5c5f..9264b72 100644
>> --- a/libio/fmemopen.c
>> +++ b/libio/fmemopen.c
>> @@ -86,10 +86,10 @@ fmemopen_write (void *cookie, const char *b, size_t s)
>>
>> memcpy (&(c->buffer[pos]), b, s);
>>
>> - pos += s;
>> - if ((size_t) pos > c->maxpos)
>> + c->pos += s;
>> + if ((size_t) c->pos > c->maxpos)
>> {
>> - c->maxpos = pos;
>> + c->maxpos = c->pos;
>
> What happens if pos != c->pos in an append stream?
>
> Andreas.
>
I am trying to come up with a scenario where it will lead to failure.
Do you have some in mind?