[lvc-project] [PATCH] ALSA: firewire-lib: fix return value on fail in amdtp_tscm_init()

Takashi Sakamoto o-takashi at sakamocchi.jp
Sat Nov 2 04:20:29 MSK 2024


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 at 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 at sakamocchi.jp>


Thanks

Takashi Sakamoto



More information about the lvc-project mailing list