Re: Coverity Scan: Analysis completed for RTEMS-Newlib

Takashi Yano <[email protected]>
Newsgroups gmane.comp.lib.newlib
Message-ID <[email protected]>
On Sat, 11 Nov 2023 00:55:15 +0900
Takashi Yano wrote:
> On Fri, 10 Nov 2023 16:31:44 +0100
> Corinna Vinschen wrote:
> > On Nov 10 08:50, Joel Sherrill wrote:
> > > Hmmmm.. an email just before the one I forwarded shows 6 new defects were
> > > added in the last commits. They appear to be the same issue I just
> > > forwarded but in different scanf variants.
> > > 
> > > CID 423229 (#1 of 1): Uninitialized scalar variable (UNINIT)2.
> > > uninit_use_in_call: Using uninitialized value f._flags2 when calling
> > > __ssvfiscanf_r. [show details
> > > <https://scan3.scan.coverity.com/eventId=13202494-1&modelId=13202494-0&fileInstanceId=104130545&filePath=%2Fhome%2Fjoel%2Frtems-cron-coverity%2Fsourceware-mirror-newlib-cygwin%2Fnewlib%2Flibc%2Fstdio%2Fvfscanf.c&fileStart=400&fileEnd=1980>
> > > ]
> > 
> > Looks like a false positive.
> > 
> > The ORIENT macro will set or reset the value of the _flags2 __SWID bit
> > if the _flags __SORD bit isn't set.  It never is set at the start, so
> > the _flags2 __SWID bit is always set.  And only then, the ORIENT macro
> > will check the value.
> 
> Perhaps, this happens because other bits of _flags2 than __SWID is not
> initialized.
> 
> Which is better solution do you think?
> (1) Modify ORIENT macro so that it returns (ori > 0) ? 1 : -1.
> (2) Initialize f._flags2 = 0 in sscanf() family.

Ah, this problem will also occur for sprintf() family. So it seems that
(1) is easier becase f._file = -1 is set at 41 places.

-- 
Takashi Yano <[email protected]>
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.