• Julia Lawall's avatar
    ALSA: sound/parisc: Move dereference after NULL test · e8e0929d
    Julia Lawall authored
    If the NULL test on h is needed in snd_harmony_mixer_init, then the
    dereference should be after the NULL test.
    
    Actually, there is a sequence of calls: snd_harmony_create, then
    snd_harmony_pcm_init, and then snd_harmony_mixer_init.  snd_harmony_create
    initializes h, but may indeed leave it as NULL.  There was no NULL test at
    the beginning of snd_harmony_pcm_init, so I have added one.  The NULL test
    in snd_harmony_mixer_init is then not necessary, but in case the ordering
    of the calls changes, I have left it, and moved the dereference after it.
    
    A simplified version of the semantic match that detects this problem is as
    follows (http://coccinelle.lip6.fr/):
    
    // <smpl>
    @match exists@
    expression x, E;
    identifier fld;
    @@
    
    * x->fld
      ... when != \(x = E\|&x\)
    * x == NULL
    // </smpl>
    Signed-off-by: default avatarJulia Lawall <julia@diku.dk>
    Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
    e8e0929d
harmony.c 25.3 KB