]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
ALSA: usx2y: Relax __free() variable declarations
authorTakashi Iwai <tiwai@suse.de>
Tue, 16 Dec 2025 14:06:32 +0000 (15:06 +0100)
committerTakashi Iwai <tiwai@suse.de>
Wed, 17 Dec 2025 09:08:30 +0000 (10:08 +0100)
We used to have a variable declaration with __free() initialized with
NULL.  This was to keep the old coding style rule, but recently it's
relaxed and rather recommends to follow the new rule to declare in
place of use for __free() -- which avoids potential deadlocks or UAFs
with nested cleanups.

Although the current code has no bug, per se, let's follow the new
standard and move the declaration to the place of assignment (or
directly assign the allocated result) instead of NULL initializations.

Fixes: 67afec157fe6 ("ALSA: usb-audio: us144mkii: Add MIDI support and mixer controlsj")
Fixes: a2a2210f2c2e ("ALSA: usb-audio: us144mkii: Implement audio playback and feedback")
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Link: https://patch.msgid.link/20251216140634.171890-11-tiwai@suse.de
sound/usb/usx2y/us144mkii.c
sound/usb/usx2y/us144mkii_controls.c
sound/usb/usx2y/us144mkii_pcm.c

index f6572a576c150e86017b7d5482843c0e2c6eebef..bc71968df8e2c6e2d6be6cf8415260af5704e03d 100644 (file)
@@ -412,7 +412,6 @@ static int tascam_probe(struct usb_interface *intf,
        struct snd_card *card;
        struct tascam_card *tascam;
        int err;
-       char *handshake_buf __free(kfree) = NULL;
 
        if (dev->speed != USB_SPEED_HIGH)
                dev_info(
@@ -439,7 +438,8 @@ static int tascam_probe(struct usb_interface *intf,
                return -ENOENT;
        }
 
-       handshake_buf = kmalloc(1, GFP_KERNEL);
+       char *handshake_buf __free(kfree) =
+               kmalloc(1, GFP_KERNEL);
        if (!handshake_buf)
                return -ENOMEM;
 
index 5d69441ef414b92be731557b751805aba4260798..62055fb8e7baced730bbc1ea518556d262e62800 100644 (file)
@@ -373,7 +373,6 @@ static int tascam_samplerate_get(struct snd_kcontrol *kcontrol,
 {
        struct tascam_card *tascam =
                (struct tascam_card *)snd_kcontrol_chip(kcontrol);
-       u8 *buf __free(kfree) = NULL;
        int err;
        u32 rate = 0;
 
@@ -384,7 +383,8 @@ static int tascam_samplerate_get(struct snd_kcontrol *kcontrol,
                }
        }
 
-       buf = kmalloc(3, GFP_KERNEL);
+       u8 *buf __free(kfree) =
+               kmalloc(3, GFP_KERNEL);
        if (!buf)
                return -ENOMEM;
 
index 0c84304d46246964dc4065e4f969ca33fd5284f4..03dfb1f38801222ef9f44f0a9a54c4fdb29c74ea 100644 (file)
@@ -115,7 +115,6 @@ void process_capture_routing_us144mkii(struct tascam_card *tascam,
 int us144mkii_configure_device_for_rate(struct tascam_card *tascam, int rate)
 {
        struct usb_device *dev = tascam->dev;
-       u8 *rate_payload_buf __free(kfree) = NULL;
        u16 rate_vendor_wValue;
        int err = 0;
        const u8 *current_payload_src;
@@ -148,7 +147,8 @@ int us144mkii_configure_device_for_rate(struct tascam_card *tascam, int rate)
                return -EINVAL;
        }
 
-       rate_payload_buf = kmemdup(current_payload_src, 3, GFP_KERNEL);
+       u8 *rate_payload_buf __free(kfree) =
+               kmemdup(current_payload_src, 3, GFP_KERNEL);
        if (!rate_payload_buf)
                return -ENOMEM;