[Spice-devel] [spice-server] stat: Silence gcc warning
Christophe Fergeau
cfergeau at redhat.com
Mon Jan 23 13:59:47 UTC 2017
On Mon, Jan 23, 2017 at 05:39:25AM -0500, Frediano Ziglio wrote:
> >
> > On 01/20/2017 05:30 PM, Christophe Fergeau wrote:
> > > Initializing 'node' to NULL silences this warning:
> > >
> > > stat-file.c: In function 'stat_file_add_node':
> > > stat-file.c:180:15: error: 'node' may be used uninitialized in this
> > > function [-Werror=maybe-uninitialized]
> > > g_strlcpy(node->name, name, sizeof(node->name));
> > > ^~~~
> > > cc1: all warnings being treated as errors
> >
> > Hi Christophe,
> >
> > Looks good to me.
> >
>
> it's actually a false positive, from
Yes, I can say it explicitly in the commit log, but by "silence", I
implicitly meant this warning should not be emitted by gcc in the first
place.
>
> for (ref = 0; ref <= stat_file->max_nodes; ref++) {
> node = &stat_file->stat->nodes[ref];
>
> node is always initialized as ref and max_nodes are unsigned so
> at the beginning ref == 0 and start_file->max_nodes >= 0 so
> ref <= 0 <= start_file->max_nodes and node is initialized.
>
> > Some comments:
> > 1. It would be nice to (unlock and) return if node == NULL below.
>
> as said node cannot be NULL and by the way if it was NULL node->value
> would crash so return is not reached.
>
> > 2. (In the area) the check for (stat_file->stat == NULL) should
> > be before the while
>
> agreed, I would put
>
> if (stat_file->stat == NULL || strlen(name) >= sizeof(node->name)) {
> return INVALID_STAT_REF;
> }
Dunno if we are allowed to check stat_file->stat value without holding
the lock? Should be fine as once it's created, we never seem to change
stat_file->stat, but who knows :)
Christophe
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 801 bytes
Desc: not available
URL: <https://lists.freedesktop.org/archives/spice-devel/attachments/20170123/274f32e4/attachment.sig>
More information about the Spice-devel
mailing list