All of lore.kernel.org
 help / color / mirror / Atom feed
* [linux-next:master 18830/19064] sound/core/compress_offload.c:716 snd_compr_set_params() warn: missing error code? 'retval'
@ 2026-10-21  5:54 ` Dan Carpenter
  0 siblings, 0 replies; 3+ messages in thread
From: kernel test robot @ 2026-10-20 21:08 UTC (permalink / raw)
  To: oe-kbuild; +Cc: lkp, Dan Carpenter

Unfiltered warning: this smatch report is sent as-is and has not been
reviewed for false positives, so please treat it with due skepticism.

BCC: lkp@intel.com
CC: oe-kbuild-all@lists.linux.dev
TO: Peter Ujfalusi <peter.ujfalusi@linux.intel.com>
CC: Takashi Iwai <tiwai@suse.de>

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git master
head:   8f7df005a7564bd7ffa75da9c3085d5b996f1e16
commit: fbc74ca9fbf7e0b8f6872ccac62f9f4a1f3b5e53 [18830/19064] ALSA: compress: fix buffer leak on failed SET_PARAMS
:::::: branch date: 7 hours ago
:::::: commit date: 12 hours ago
config: i386-randconfig-2200-20261020 (https://download.01.org/0day-ci/archive/20261020/202610202334.hwrqtbb4-lkp@intel.com/config)
compiler: gcc-12 (Debian 12.4.0-5) 12.4.0
smatch: v0.5.0-9187-g5189e3fb

If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@intel.com>
| Reported-by: Dan Carpenter <error27@gmail.com>
| Closes: https://lore.kernel.org/r/202610202334.hwrqtbb4-lkp@intel.com/

smatch warnings:
sound/core/compress_offload.c:716 snd_compr_set_params() warn: missing error code? 'retval'

vim +/retval +716 sound/core/compress_offload.c

4dc040a0b34890 Vinod Koul          2012-09-17  679  
b21c60a4edd22e Vinod Koul          2011-12-23  680  static int
b21c60a4edd22e Vinod Koul          2011-12-23  681  snd_compr_set_params(struct snd_compr_stream *stream, unsigned long arg)
b21c60a4edd22e Vinod Koul          2011-12-23  682  {
b21c60a4edd22e Vinod Koul          2011-12-23  683  	int retval;
b21c60a4edd22e Vinod Koul          2011-12-23  684  
7ea9ee0064281e Srinivas Kandagatla 2023-06-19  685  	if (stream->runtime->state == SNDRV_PCM_STATE_OPEN || stream->next_track) {
b21c60a4edd22e Vinod Koul          2011-12-23  686  		/*
b21c60a4edd22e Vinod Koul          2011-12-23  687  		 * we should allow parameter change only when stream has been
b21c60a4edd22e Vinod Koul          2011-12-23  688  		 * opened not in other cases
b21c60a4edd22e Vinod Koul          2011-12-23  689  		 */
14324b8f0760ca Takashi Iwai        2025-12-16  690  		struct snd_compr_params *params __free(kfree) =
14324b8f0760ca Takashi Iwai        2025-12-16  691  			memdup_user((void __user *)arg, sizeof(*params));
14324b8f0760ca Takashi Iwai        2025-12-16  692  
c2f14ba749c1ce Markus Elfring      2016-08-21  693  		if (IS_ERR(params))
40a024b81d1cba Takashi Iwai        2024-09-02  694  			return PTR_ERR(params);
4dc040a0b34890 Vinod Koul          2012-09-17  695  
04177158cf98a7 Jaroslav Kysela     2024-10-02  696  		retval = snd_compress_check_input(stream, params);
4dc040a0b34890 Vinod Koul          2012-09-17  697  		if (retval)
9b02221422a55e Takashi Iwai        2024-02-22  698  			return retval;
4dc040a0b34890 Vinod Koul          2012-09-17  699  
b21c60a4edd22e Vinod Koul          2011-12-23  700  		retval = snd_compr_allocate_buffer(stream, params);
9b02221422a55e Takashi Iwai        2024-02-22  701  		if (retval)
9b02221422a55e Takashi Iwai        2024-02-22  702  			return -ENOMEM;
4dc040a0b34890 Vinod Koul          2012-09-17  703  
b21c60a4edd22e Vinod Koul          2011-12-23  704  		retval = stream->ops->set_params(stream, params);
fbc74ca9fbf7e0 Peter Ujfalusi      2026-10-19  705  		if (retval) {
fbc74ca9fbf7e0 Peter Ujfalusi      2026-10-19  706  			/* the stream stays OPEN: drop the buffer of the rejected setup */
fbc74ca9fbf7e0 Peter Ujfalusi      2026-10-19  707  			if (stream->runtime->state == SNDRV_PCM_STATE_OPEN &&
fbc74ca9fbf7e0 Peter Ujfalusi      2026-10-19  708  			    !stream->runtime->dma_buffer_p) {
fbc74ca9fbf7e0 Peter Ujfalusi      2026-10-19  709  				kfree(stream->runtime->buffer);
fbc74ca9fbf7e0 Peter Ujfalusi      2026-10-19  710  				stream->runtime->buffer = NULL;
fbc74ca9fbf7e0 Peter Ujfalusi      2026-10-19  711  			}
9b02221422a55e Takashi Iwai        2024-02-22  712  			return retval;
fbc74ca9fbf7e0 Peter Ujfalusi      2026-10-19  713  		}
49bb6402f1aa1e Charles Keepax      2013-04-18  714  
7ea9ee0064281e Srinivas Kandagatla 2023-06-19  715  		if (stream->next_track)
9b02221422a55e Takashi Iwai        2024-02-22 @716  			return retval;
7ea9ee0064281e Srinivas Kandagatla 2023-06-19  717  
9727b490e543de Jeeja KP            2013-02-14  718  		stream->metadata_set = false;
9727b490e543de Jeeja KP            2013-02-14  719  		stream->next_track = false;
49bb6402f1aa1e Charles Keepax      2013-04-18  720  
49bb6402f1aa1e Charles Keepax      2013-04-18  721  		stream->runtime->state = SNDRV_PCM_STATE_SETUP;
769fab2a41da4b Jesper Juhl         2012-01-23  722  	} else {
b21c60a4edd22e Vinod Koul          2011-12-23  723  		return -EPERM;
769fab2a41da4b Jesper Juhl         2012-01-23  724  	}
b21c60a4edd22e Vinod Koul          2011-12-23  725  	return retval;
b21c60a4edd22e Vinod Koul          2011-12-23  726  }
b21c60a4edd22e Vinod Koul          2011-12-23  727  

:::::: The code at line 716 was first introduced by commit
:::::: 9b02221422a55e834469fdc91dc4d5147f5a1fb9 ALSA: compress_offload: Use automatic cleanup of kfree()

:::::: TO: Takashi Iwai <tiwai@suse.de>
:::::: CC: Takashi Iwai <tiwai@suse.de>

--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki

^ permalink raw reply	[flat|nested] 3+ messages in thread

* [linux-next:master 18830/19064] sound/core/compress_offload.c:716 snd_compr_set_params() warn: missing error code? 'retval'
@ 2026-10-21  5:54 ` Dan Carpenter
  0 siblings, 0 replies; 3+ messages in thread
From: Dan Carpenter @ 2026-10-21  5:54 UTC (permalink / raw)
  To: oe-kbuild, Peter Ujfalusi; +Cc: lkp, oe-kbuild-all, Takashi Iwai

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git master
head:   8f7df005a7564bd7ffa75da9c3085d5b996f1e16
commit: fbc74ca9fbf7e0b8f6872ccac62f9f4a1f3b5e53 [18830/19064] ALSA: compress: fix buffer leak on failed SET_PARAMS
config: i386-randconfig-2200-20261020 (https://download.01.org/0day-ci/archive/20261020/202610202334.hwrqtbb4-lkp@intel.com/config)
compiler: gcc-12 (Debian 12.4.0-5) 12.4.0
smatch: v0.5.0-9187-g5189e3fb

If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@intel.com>
| Reported-by: Dan Carpenter <error27@gmail.com>
| Closes: https://lore.kernel.org/r/202610202334.hwrqtbb4-lkp@intel.com/

smatch warnings:
sound/core/compress_offload.c:716 snd_compr_set_params() warn: missing error code? 'retval'

vim +/retval +716 sound/core/compress_offload.c

b21c60a4edd22e Vinod Koul          2011-12-23  680  static int
b21c60a4edd22e Vinod Koul          2011-12-23  681  snd_compr_set_params(struct snd_compr_stream *stream, unsigned long arg)
b21c60a4edd22e Vinod Koul          2011-12-23  682  {
b21c60a4edd22e Vinod Koul          2011-12-23  683  	int retval;
b21c60a4edd22e Vinod Koul          2011-12-23  684  
7ea9ee0064281e Srinivas Kandagatla 2023-06-19  685  	if (stream->runtime->state == SNDRV_PCM_STATE_OPEN || stream->next_track) {
b21c60a4edd22e Vinod Koul          2011-12-23  686  		/*
b21c60a4edd22e Vinod Koul          2011-12-23  687  		 * we should allow parameter change only when stream has been
b21c60a4edd22e Vinod Koul          2011-12-23  688  		 * opened not in other cases
b21c60a4edd22e Vinod Koul          2011-12-23  689  		 */
14324b8f0760ca Takashi Iwai        2025-12-16  690  		struct snd_compr_params *params __free(kfree) =
14324b8f0760ca Takashi Iwai        2025-12-16  691  			memdup_user((void __user *)arg, sizeof(*params));
14324b8f0760ca Takashi Iwai        2025-12-16  692  
c2f14ba749c1ce Markus Elfring      2016-08-21  693  		if (IS_ERR(params))
40a024b81d1cba Takashi Iwai        2024-09-02  694  			return PTR_ERR(params);
4dc040a0b34890 Vinod Koul          2012-09-17  695  
04177158cf98a7 Jaroslav Kysela     2024-10-02  696  		retval = snd_compress_check_input(stream, params);
4dc040a0b34890 Vinod Koul          2012-09-17  697  		if (retval)
9b02221422a55e Takashi Iwai        2024-02-22  698  			return retval;
4dc040a0b34890 Vinod Koul          2012-09-17  699  
b21c60a4edd22e Vinod Koul          2011-12-23  700  		retval = snd_compr_allocate_buffer(stream, params);
9b02221422a55e Takashi Iwai        2024-02-22  701  		if (retval)
9b02221422a55e Takashi Iwai        2024-02-22  702  			return -ENOMEM;
4dc040a0b34890 Vinod Koul          2012-09-17  703  
b21c60a4edd22e Vinod Koul          2011-12-23  704  		retval = stream->ops->set_params(stream, params);
fbc74ca9fbf7e0 Peter Ujfalusi      2026-10-19  705  		if (retval) {
fbc74ca9fbf7e0 Peter Ujfalusi      2026-10-19  706  			/* the stream stays OPEN: drop the buffer of the rejected setup */
fbc74ca9fbf7e0 Peter Ujfalusi      2026-10-19  707  			if (stream->runtime->state == SNDRV_PCM_STATE_OPEN &&
fbc74ca9fbf7e0 Peter Ujfalusi      2026-10-19  708  			    !stream->runtime->dma_buffer_p) {
fbc74ca9fbf7e0 Peter Ujfalusi      2026-10-19  709  				kfree(stream->runtime->buffer);
fbc74ca9fbf7e0 Peter Ujfalusi      2026-10-19  710  				stream->runtime->buffer = NULL;
fbc74ca9fbf7e0 Peter Ujfalusi      2026-10-19  711  			}
9b02221422a55e Takashi Iwai        2024-02-22  712  			return retval;
fbc74ca9fbf7e0 Peter Ujfalusi      2026-10-19  713  		}
49bb6402f1aa1e Charles Keepax      2013-04-18  714  
7ea9ee0064281e Srinivas Kandagatla 2023-06-19  715  		if (stream->next_track)
9b02221422a55e Takashi Iwai        2024-02-22 @716  			return retval;

This should either be "return -ESOMETHING;" or "return 0;".  The current
code returns zero but in an obfuscated way.

7ea9ee0064281e Srinivas Kandagatla 2023-06-19  717  
9727b490e543de Jeeja KP            2013-02-14  718  		stream->metadata_set = false;
9727b490e543de Jeeja KP            2013-02-14  719  		stream->next_track = false;

This could be deleted because of the above check.

49bb6402f1aa1e Charles Keepax      2013-04-18  720  
49bb6402f1aa1e Charles Keepax      2013-04-18  721  		stream->runtime->state = SNDRV_PCM_STATE_SETUP;
769fab2a41da4b Jesper Juhl         2012-01-23  722  	} else {
b21c60a4edd22e Vinod Koul          2011-12-23  723  		return -EPERM;
769fab2a41da4b Jesper Juhl         2012-01-23  724  	}
b21c60a4edd22e Vinod Koul          2011-12-23  725  	return retval;
b21c60a4edd22e Vinod Koul          2011-12-23  726  }

--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki


^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [linux-next:master 18830/19064] sound/core/compress_offload.c:716 snd_compr_set_params() warn: missing error code? 'retval'
  2026-10-21  5:54 ` Dan Carpenter
  (?)
@ 2026-10-21  6:05 ` Péter Ujfalusi
  -1 siblings, 0 replies; 3+ messages in thread
From: Péter Ujfalusi @ 2026-10-21  6:05 UTC (permalink / raw)
  To: Dan Carpenter, oe-kbuild; +Cc: lkp, oe-kbuild-all, Takashi Iwai



On 21/10/2026 08:54, Dan Carpenter wrote:
> tree:   https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git master
> head:   8f7df005a7564bd7ffa75da9c3085d5b996f1e16
> commit: fbc74ca9fbf7e0b8f6872ccac62f9f4a1f3b5e53 [18830/19064] ALSA: compress: fix buffer leak on failed SET_PARAMS
> config: i386-randconfig-2200-20261020 (https://download.01.org/0day-ci/archive/20261020/202610202334.hwrqtbb4-lkp@intel.com/config)
> compiler: gcc-12 (Debian 12.4.0-5) 12.4.0
> smatch: v0.5.0-9187-g5189e3fb
> 
> If you fix the issue in a separate patch/commit (i.e. not just a new version of
> the same patch/commit), kindly add following tags
> | Reported-by: kernel test robot <lkp@intel.com>
> | Reported-by: Dan Carpenter <error27@gmail.com>
> | Closes: https://lore.kernel.org/r/202610202334.hwrqtbb4-lkp@intel.com/
> 
> smatch warnings:
> sound/core/compress_offload.c:716 snd_compr_set_params() warn: missing error code? 'retval'
> 
> vim +/retval +716 sound/core/compress_offload.c
> 
> b21c60a4edd22e Vinod Koul          2011-12-23  680  static int
> b21c60a4edd22e Vinod Koul          2011-12-23  681  snd_compr_set_params(struct snd_compr_stream *stream, unsigned long arg)
> b21c60a4edd22e Vinod Koul          2011-12-23  682  {
> b21c60a4edd22e Vinod Koul          2011-12-23  683  	int retval;
> b21c60a4edd22e Vinod Koul          2011-12-23  684  
> 7ea9ee0064281e Srinivas Kandagatla 2023-06-19  685  	if (stream->runtime->state == SNDRV_PCM_STATE_OPEN || stream->next_track) {
> b21c60a4edd22e Vinod Koul          2011-12-23  686  		/*
> b21c60a4edd22e Vinod Koul          2011-12-23  687  		 * we should allow parameter change only when stream has been
> b21c60a4edd22e Vinod Koul          2011-12-23  688  		 * opened not in other cases
> b21c60a4edd22e Vinod Koul          2011-12-23  689  		 */
> 14324b8f0760ca Takashi Iwai        2025-12-16  690  		struct snd_compr_params *params __free(kfree) =
> 14324b8f0760ca Takashi Iwai        2025-12-16  691  			memdup_user((void __user *)arg, sizeof(*params));
> 14324b8f0760ca Takashi Iwai        2025-12-16  692  
> c2f14ba749c1ce Markus Elfring      2016-08-21  693  		if (IS_ERR(params))
> 40a024b81d1cba Takashi Iwai        2024-09-02  694  			return PTR_ERR(params);
> 4dc040a0b34890 Vinod Koul          2012-09-17  695  
> 04177158cf98a7 Jaroslav Kysela     2024-10-02  696  		retval = snd_compress_check_input(stream, params);
> 4dc040a0b34890 Vinod Koul          2012-09-17  697  		if (retval)
> 9b02221422a55e Takashi Iwai        2024-02-22  698  			return retval;
> 4dc040a0b34890 Vinod Koul          2012-09-17  699  
> b21c60a4edd22e Vinod Koul          2011-12-23  700  		retval = snd_compr_allocate_buffer(stream, params);
> 9b02221422a55e Takashi Iwai        2024-02-22  701  		if (retval)
> 9b02221422a55e Takashi Iwai        2024-02-22  702  			return -ENOMEM;
> 4dc040a0b34890 Vinod Koul          2012-09-17  703  
> b21c60a4edd22e Vinod Koul          2011-12-23  704  		retval = stream->ops->set_params(stream, params);
> fbc74ca9fbf7e0 Peter Ujfalusi      2026-10-19  705  		if (retval) {
> fbc74ca9fbf7e0 Peter Ujfalusi      2026-10-19  706  			/* the stream stays OPEN: drop the buffer of the rejected setup */
> fbc74ca9fbf7e0 Peter Ujfalusi      2026-10-19  707  			if (stream->runtime->state == SNDRV_PCM_STATE_OPEN &&
> fbc74ca9fbf7e0 Peter Ujfalusi      2026-10-19  708  			    !stream->runtime->dma_buffer_p) {
> fbc74ca9fbf7e0 Peter Ujfalusi      2026-10-19  709  				kfree(stream->runtime->buffer);
> fbc74ca9fbf7e0 Peter Ujfalusi      2026-10-19  710  				stream->runtime->buffer = NULL;
> fbc74ca9fbf7e0 Peter Ujfalusi      2026-10-19  711  			}
> 9b02221422a55e Takashi Iwai        2024-02-22  712  			return retval;
> fbc74ca9fbf7e0 Peter Ujfalusi      2026-10-19  713  		}
> 49bb6402f1aa1e Charles Keepax      2013-04-18  714  
> 7ea9ee0064281e Srinivas Kandagatla 2023-06-19  715  		if (stream->next_track)
> 9b02221422a55e Takashi Iwai        2024-02-22 @716  			return retval;
> 
> This should either be "return -ESOMETHING;" or "return 0;".  The current
> code returns zero but in an obfuscated way.

the same form was present before fbc74ca9fbf7e0.
The intention was to return 0 here.

Ah, I see, 9b02221422a55e was a mechanical change to switch to
 *params __free(kfree) = NULL;

replacing a goto out with a return.

> 
> 7ea9ee0064281e Srinivas Kandagatla 2023-06-19  717  
> 9727b490e543de Jeeja KP            2013-02-14  718  		stream->metadata_set = false;
> 9727b490e543de Jeeja KP            2013-02-14  719  		stream->next_track = false;
> 
> This could be deleted because of the above check.
> 
> 49bb6402f1aa1e Charles Keepax      2013-04-18  720  
> 49bb6402f1aa1e Charles Keepax      2013-04-18  721  		stream->runtime->state = SNDRV_PCM_STATE_SETUP;
> 769fab2a41da4b Jesper Juhl         2012-01-23  722  	} else {
> b21c60a4edd22e Vinod Koul          2011-12-23  723  		return -EPERM;
> 769fab2a41da4b Jesper Juhl         2012-01-23  724  	}
> b21c60a4edd22e Vinod Koul          2011-12-23  725  	return retval;
> b21c60a4edd22e Vinod Koul          2011-12-23  726  }
> 
> --
> 0-DAY CI Kernel Test Service
> https://github.com/intel/lkp-tests/wiki

-- 
Péter


^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2026-10-21  6:05 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-10-20 21:08 [linux-next:master 18830/19064] sound/core/compress_offload.c:716 snd_compr_set_params() warn: missing error code? 'retval' kernel test robot
2026-10-21  5:54 ` Dan Carpenter
2026-10-21  6:05 ` Péter Ujfalusi

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.