This is the mail archive of the
newlib@sourceware.org
mailing list for the newlib project.
Re: Uninitialized structure in printing functions
- From: Giacomo Tesio <giacomo at tesio dot it>
- To: newlib at sourceware dot org
- Date: Wed, 26 Apr 2017 11:35:41 +0200
- Subject: Re: Uninitialized structure in printing functions
- Authentication-results: sourceware.org; auth=none
- References: <CAHL7psH=7EPatUD0DgncqvqMdsXapmRem=eM-NYY9sGbs_oN-g@mail.gmail.com> <20170426082427.GD12712@calimero.vinschen.de>
Hi Corinna,
I was trying to fix a simple "hello, world" test:
https://github.com/JehanneOS/jehanne/blob/c2982db8a2c57a3250c129c28bb395715521ec4e/qa/lib/newlib/hello.c.
During debug one of the issue I've noticed was a fault related to uio
in vfprintf.c:348: apparently uio->uio_resid was uninitialized and
actually the patch I provided fixed the test.
However with a different test I'm working on now, I've found that
zeroing the structures is not enough.
Somehow uio->uio_resid overflows there, but I wasn't able yet to
identify why or where.
Any suggestion is welcome. I supposed I've just hit an untested
combination of configure options, but actually --enable-newlib-mb is
the only configure option I'm using (except for prefix and target,
obviously).
Giacomo
2017-04-26 10:24 GMT+02:00 Corinna Vinschen <vinschen@redhat.com>:
> On Apr 21 19:03, Giacomo Tesio wrote:
>> Hi, during the port to Jehanne, I had issues with the uninitialized
>> uio structure in several printing functions.
>>
>> The attached patch fixes them.
>
> I'm puzzled what problem you're solving.
>
> I inspected the code in question and the uio structure is always filled
> with values for all three members before using it. Setting uio to 0
> in all these places looks gratuitous.
>
> Can you please explain what exactly you're observing and how setting
> uio to all 0 solved this problem?
>
>
> Corinna
>
> --
> Corinna Vinschen
> Cygwin Maintainer
> Red Hat