On Thu, May 2, 2019 at 12:06 PM Jeffrey Walton <noloa...@gmail.com> wrote:
>
>  ...
> > > vgdb.c:1008:20: note: directive argument in the range [0, 2147483647]
> > >        sprintf(hex, "%02x", cksum);
> > >                     ^~~~~~
> >
> > But cksum is an unsigned char, so value is be between [0, 255]. Which
> > is max 2 hex chars.
> >
> > Could you retry with GCC8 or GCC9?
> > And file a bug against GCC otherwise?
>
> I thought it might be something like that.
>
> I believe the char get promoted to an int for printf since it is
> variadic. Maybe it would just be easier to workaround the finding by
> making the buffer larger to accommodate an int.
>
> Its not Valgrind's problem to be sure. Valgrind is just
> working/playing nice with other tools.

Yeah, there were some warnings about potential false positives:

* https://gcc.gnu.org/onlinedocs/gcc-8.1.0/gcc/Warning-Options.html
* 
https://developers.redhat.com/blog/2017/02/22/memory-error-detection-using-gcc/

It looks like the issue has already been raised at
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79257.

Jeff


_______________________________________________
Valgrind-users mailing list
Valgrind-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/valgrind-users

Reply via email to