[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-devel] [PATCH] symbols.c: Avoid warn_unused_result build failure on fgets().



On 11/04/15 07:04, Jan Beulich wrote:
> >>> On 04.11.15 at 12:39, <riku.voipio@xxxxxxxxxx> wrote:
> > In commit:
> > 
> > d37d63d symbols: prefix static symbols with their source file names
> > 
> > An unchecked fgets was added. This causes a compile error:
> > 
> > symbols.c: In function 'read_symbol':
> > symbols.c:181:3: error: ignoring return value of 'fgets', declared with
> > attribute warn_unused_result [-Werror=unused-result]
> >    fgets(str, 500, in); /* discard rest of line */
> >    ^
> > 
> > Paper over the warning like in the other similar fgets-on-error-path
> > earlier in the same file.
> 
> But the two cases are dissimilar - the original one skips a line the
> format of which is not recognized, while here you may be converting
> success into an error. (I did notice the comment on the earlier fgets(),
> but since so far I didn't get any compiler warning on any system I
> built this on, I assumed we'd be fine without the check, since if we
> need the check, then it will end up even more clumsy than the other
> one.)
>

Hi Riku and Jan,

Will there be any fix for this error? I got the same error when
compiling Xen (commit 6f04de6) by gcc 4.8.4 on Ubuntu 14.04.3. And
adding "(void)" ahead of fgets() in the existing code cannot eliminate
the error/warning message.

Thanks,
Haozhong

> > --- a/xen/tools/symbols.c
> > +++ b/xen/tools/symbols.c
> > @@ -178,8 +178,8 @@ static int read_symbol(FILE *in, struct sym_entry *s)
> >  
> >   skip_tail:
> >     if (input_format == fmt_sysv)
> > -           fgets(str, 500, in); /* discard rest of line */
> > -
> > +           if (fgets(str, 500, in) == NULL) /* discard rest of line */
> > +                   return -1; /* must check fgets result */
> 
> As to formal things - two such consecutive if()-s should be combined.
> Since we really want to ignore the return value here, perhaps just
> cast the function result to void? (I admit that I don't recall whether
> this would take care of that compiler warning.)
> 
> Jan
> 
> 
> _______________________________________________
> Xen-devel mailing list
> Xen-devel@xxxxxxxxxxxxx
> http://lists.xen.org/xen-devel

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.