OSDN Git Service

ALSA: firewire-lib: fix error codes for allocation failure
authorDan Carpenter <dan.carpenter@oracle.com>
Sat, 5 Jun 2021 12:46:39 +0000 (15:46 +0300)
committerTakashi Iwai <tiwai@suse.de>
Sun, 6 Jun 2021 08:04:54 +0000 (10:04 +0200)
Return -ENOMEM if kcalloc() fails.  Currently the code returns success.

Fixes: f9e5ecdfc2c2 ("ALSA: firewire-lib: add replay target to cache sequence of packet")
Fixes: 6f24bb8a157c ("ALSA: firewire-lib: pool sequence of packet in IT context independently")
Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
Acked-by: Takashi Sakamoto <o-takashi@sakamocchi.jp>
Link: https://lore.kernel.org/r/YLtyL4VoArwVLor1@mwanda
Signed-off-by: Takashi Iwai <tiwai@suse.de>
sound/firewire/amdtp-stream.c

index 945597f..b37cec3 100644 (file)
@@ -1625,8 +1625,10 @@ static int amdtp_stream_start(struct amdtp_stream *s, int channel, int speed,
                        s->ctx_data.tx.cache.tail = 0;
                        s->ctx_data.tx.cache.descs = kcalloc(s->ctx_data.tx.cache.size,
                                                sizeof(*s->ctx_data.tx.cache.descs), GFP_KERNEL);
-                       if (!s->ctx_data.tx.cache.descs)
+                       if (!s->ctx_data.tx.cache.descs) {
+                               err = -ENOMEM;
                                goto err_context;
+                       }
                }
        } else {
                static const struct {
@@ -1643,8 +1645,10 @@ static int amdtp_stream_start(struct amdtp_stream *s, int channel, int speed,
                };
 
                s->ctx_data.rx.seq.descs = kcalloc(queue_size, sizeof(*s->ctx_data.rx.seq.descs), GFP_KERNEL);
-               if (!s->ctx_data.rx.seq.descs)
+               if (!s->ctx_data.rx.seq.descs) {
+                       err = -ENOMEM;
                        goto err_context;
+               }
                s->ctx_data.rx.seq.size = queue_size;
                s->ctx_data.rx.seq.tail = 0;
                s->ctx_data.rx.seq.head = 0;