diff mbox series

ALSA: firewire-lib: fix return value on fail in amdtp_tscm_init()

Message ID 20241101185517.1819-1-m.masimov@maxima.ru (mailing list archive)
State New
Headers show
Series ALSA: firewire-lib: fix return value on fail in amdtp_tscm_init() | expand

Commit Message

Murad Masimov Nov. 1, 2024, 6:55 p.m. UTC
If amdtp_stream_init() fails in amdtp_tscm_init(), the latter returns zero,
though it's supposed to return error code, which is checked inside
init_stream() in file tascam-stream.c.

Found by Linux Verification Center (linuxtesting.org) with SVACE.

Fixes: 47faeea25ef3 ("ALSA: firewire-tascam: add data block processing layer")
Signed-off-by: Murad Masimov <m.masimov@maxima.ru>
---
 sound/firewire/tascam/amdtp-tascam.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

--
2.39.2

Comments

Takashi Sakamoto Nov. 2, 2024, 1:20 a.m. UTC | #1
Hi,

On Fri, Nov 01, 2024 at 09:55:13PM +0300, Murad Masimov wrote:
> If amdtp_stream_init() fails in amdtp_tscm_init(), the latter returns zero,
> though it's supposed to return error code, which is checked inside
> init_stream() in file tascam-stream.c.
> 
> Found by Linux Verification Center (linuxtesting.org) with SVACE.
> 
> Fixes: 47faeea25ef3 ("ALSA: firewire-tascam: add data block processing layer")
> Signed-off-by: Murad Masimov <m.masimov@maxima.ru>
> ---
>  sound/firewire/tascam/amdtp-tascam.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/sound/firewire/tascam/amdtp-tascam.c b/sound/firewire/tascam/amdtp-tascam.c
> index 0b42d6559008..079afa4bd381 100644
> --- a/sound/firewire/tascam/amdtp-tascam.c
> +++ b/sound/firewire/tascam/amdtp-tascam.c
> @@ -238,7 +238,7 @@ int amdtp_tscm_init(struct amdtp_stream *s, struct fw_unit *unit,
>  	err = amdtp_stream_init(s, unit, dir, flags, fmt,
>  			process_ctx_payloads, sizeof(struct amdtp_tscm));
>  	if (err < 0)
> -		return 0;
> +		return err;
> 
>  	if (dir == AMDTP_OUT_STREAM) {
>  		// Use fixed value for FDF field.

Indeed. The return value should not be from the err variable. It looks
good to me, regardless of the circumstances.

Reviewed-by: Takashi Sakamoto <o-takashi@sakamocchi.jp>


Thanks

Takashi Sakamoto
Takashi Sakamoto Nov. 2, 2024, 1:59 a.m. UTC | #2
On Sat, Nov 2, 2024, at 10:20, Takashi Sakamoto wrote:
> The return value should not be from the err variable.

Oops. "should be".
Takashi Iwai Nov. 4, 2024, 10:25 a.m. UTC | #3
On Fri, 01 Nov 2024 19:55:13 +0100,
Murad Masimov wrote:
> 
> If amdtp_stream_init() fails in amdtp_tscm_init(), the latter returns zero,
> though it's supposed to return error code, which is checked inside
> init_stream() in file tascam-stream.c.
> 
> Found by Linux Verification Center (linuxtesting.org) with SVACE.
> 
> Fixes: 47faeea25ef3 ("ALSA: firewire-tascam: add data block processing layer")
> Signed-off-by: Murad Masimov <m.masimov@maxima.ru>

Applied now.  Thanks.


Takashi
diff mbox series

Patch

diff --git a/sound/firewire/tascam/amdtp-tascam.c b/sound/firewire/tascam/amdtp-tascam.c
index 0b42d6559008..079afa4bd381 100644
--- a/sound/firewire/tascam/amdtp-tascam.c
+++ b/sound/firewire/tascam/amdtp-tascam.c
@@ -238,7 +238,7 @@  int amdtp_tscm_init(struct amdtp_stream *s, struct fw_unit *unit,
 	err = amdtp_stream_init(s, unit, dir, flags, fmt,
 			process_ctx_payloads, sizeof(struct amdtp_tscm));
 	if (err < 0)
-		return 0;
+		return err;

 	if (dir == AMDTP_OUT_STREAM) {
 		// Use fixed value for FDF field.