Re: ALSA: drivers: opl3: assignment of a pointer that is not used, probable bug

From: Takashi Iwai
Date: Sun Dec 12 2021 - 04:00:41 EST


On Sat, 11 Dec 2021 19:19:30 +0100,
Colin King (gmail) wrote:
>
> Hi,
>
> static analysis with scan-build has found an assignment to vp2 that is
> never used in function snd_opl3_note_on(),
> sound/drivers/opl3/opl3_midi.c as follows:
>
> if (instr_4op) {
> vp2 = &opl3->voices[voice + 3];
> if (vp->state > 0) {
> opl3_reg = reg_side | (OPL3_REG_KEYON_BLOCK +
> voice_offset + 3);
> reg_val = vp->keyon_reg & ~OPL3_KEYON_BIT;
> opl3->command(opl3, opl3_reg, reg_val);
> }
> }
>
> sound/drivers/opl3/opl3_midi.c:399:3: warning: Value stored to 'vp2'
> is never read [deadcode.DeadStores]
> vp2 = &opl3->voices[voice + 3];
> ^ ~~~~~~~~~~~~~~~~~~~~~~~~
>
> I suspect that references to vp in this if block should be to vp2, but
> I'm unsure if that is for all references or not, hence I'm reporting
> this issue.

Yes, the next vp->state > 0 check must be vp2->state > 0.
Care to submit a proper fix patch?


Thanks!

Takashi