ALSA: sound/isa/gus: Correct code taking the size of a pointer
authorJulia Lawall <julia@diku.dk>
Sun, 13 Dec 2009 11:42:56 +0000 (12:42 +0100)
committerTakashi Iwai <tiwai@suse.de>
Mon, 14 Dec 2009 10:16:09 +0000 (11:16 +0100)
sizeof(share_id) is just the size of the pointer.  On the other hand,
block->share_id is an array, so its size seems more appropriate.

A simplified version of the semantic patch that finds this problem is as
follows: (http://coccinelle.lip6.fr/)

// <smpl>
@@
expression *x;
expression f;
type T;
@@

*f(...,(T)x,...)
// </smpl>

Signed-off-by: Julia Lawall <julia@diku.dk>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
sound/isa/gus/gus_mem.c

index 661205c..af888a0 100644 (file)
@@ -127,7 +127,8 @@ static struct snd_gf1_mem_block *snd_gf1_mem_share(struct snd_gf1_mem * alloc,
            !share_id[2] && !share_id[3])
                return NULL;
        for (block = alloc->first; block; block = block->next)
-               if (!memcmp(share_id, block->share_id, sizeof(share_id)))
+               if (!memcmp(share_id, block->share_id,
+                               sizeof(block->share_id)))
                        return block;
        return NULL;
 }