usb: gadget: u_audio: Clear uac pointer when freed.
authorChris Wulff <Chris.Wulff@biamp.com>
Thu, 25 Apr 2024 15:20:20 +0000 (15:20 +0000)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sat, 4 May 2024 16:26:08 +0000 (18:26 +0200)
This prevents use of a stale pointer if functions are called after
g_cleanup that shouldn't be. This doesn't fix any races, but converts
a possibly silent kernel memory corruption into an obvious NULL pointer
dereference report.

Fixes: eb9fecb9e69b ("usb: gadget: f_uac2: split out audio core")
Signed-off-by: Chris Wulff <chris.wulff@biamp.com>
Link: https://lore.kernel.org/stable/CO1PR17MB54194226DA08BFC9EBD8C163E1172%40CO1PR17MB5419.namprd17.prod.outlook.com
Link: https://lore.kernel.org/r/CO1PR17MB54194226DA08BFC9EBD8C163E1172@CO1PR17MB5419.namprd17.prod.outlook.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/usb/gadget/function/u_audio.c

index efa3e3100333c00ab6e3699bfef2523c6bd71cb7..89af0feb75120864665a7c8004dfd7e66cb010f0 100644 (file)
@@ -1420,6 +1420,8 @@ void g_audio_cleanup(struct g_audio *g_audio)
                return;
 
        uac = g_audio->uac;
+       g_audio->uac = NULL;
+
        card = uac->card;
        if (card)
                snd_card_free_when_closed(card);