* [android-common:android12-5.4 8477/13064] sound/usb/pcm.c:1033 snd_usb_pcm_prepare() warn: variable dereferenced before check 'subs->cur_audiofmt' (see line 1029)
@ 2021-01-05 11:48 ` Dan Carpenter
0 siblings, 0 replies; 3+ messages in thread
From: Dan Carpenter @ 2021-01-05 11:48 UTC (permalink / raw)
To: kbuild
[-- Attachment #1: Type: text/plain, Size: 2773 bytes --]
tree: https://android.googlesource.com/kernel/common android12-5.4
head: b69d75c07de5c55d7a85312132f8544bbf2f3561
commit: fd98495a63a8e99ae4b6802b73295ef997684d73 [8477/13064] ANDROID: sound: usb: Add vendor's hooking interface
config: x86_64-randconfig-m001-20201227 (attached as .config)
compiler: gcc-9 (Debian 9.3.0-15) 9.3.0
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>
Reported-by: Dan Carpenter <dan.carpenter@oracle.com>
New smatch warnings:
sound/usb/pcm.c:1033 snd_usb_pcm_prepare() warn: variable dereferenced before check 'subs->cur_audiofmt' (see line 1029)
Old smatch warnings:
sound/usb/pcm.c:787 configure_sync_endpoint() warn: variable dereferenced before check 'subs->stream' (see line 784)
vim +1033 sound/usb/pcm.c
e5779998bf8b70e Daniel Mack 2010-03-04 1021 static int snd_usb_pcm_prepare(struct snd_pcm_substream *substream)
e5779998bf8b70e Daniel Mack 2010-03-04 1022 {
e5779998bf8b70e Daniel Mack 2010-03-04 1023 struct snd_pcm_runtime *runtime = substream->runtime;
e5779998bf8b70e Daniel Mack 2010-03-04 1024 struct snd_usb_substream *subs = runtime->private_data;
61a709504b07911 Dylan Reid 2012-09-18 1025 struct usb_host_interface *alts;
61a709504b07911 Dylan Reid 2012-09-18 1026 struct usb_interface *iface;
61a709504b07911 Dylan Reid 2012-09-18 1027 int ret;
e5779998bf8b70e Daniel Mack 2010-03-04 1028
fd98495a63a8e99 JaeHun Jung 2020-05-26 @1029 ret = snd_vendor_set_pcm_buf(subs->dev, subs->cur_audiofmt->iface);
^^^^^^^^^^^^^^^^^^^^^^^^^
New dereference
fd98495a63a8e99 JaeHun Jung 2020-05-26 1030 if (ret)
fd98495a63a8e99 JaeHun Jung 2020-05-26 1031 return ret;
fd98495a63a8e99 JaeHun Jung 2020-05-26 1032
e5779998bf8b70e Daniel Mack 2010-03-04 @1033 if (! subs->cur_audiofmt) {
^^^^^^^^^^^^^^^^^^^^
Check too late.
0ba41d917eeb87f Takashi Iwai 2014-02-26 1034 dev_err(&subs->dev->dev, "no format is specified!\n");
e5779998bf8b70e Daniel Mack 2010-03-04 1035 return -ENXIO;
e5779998bf8b70e Daniel Mack 2010-03-04 1036 }
e5779998bf8b70e Daniel Mack 2010-03-04 1037
47ab154593827b1 Takashi Iwai 2015-08-25 1038 ret = snd_usb_lock_shutdown(subs->stream->chip);
47ab154593827b1 Takashi Iwai 2015-08-25 1039 if (ret < 0)
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
[-- Attachment #2: config.gz --]
[-- Type: application/gzip, Size: 36698 bytes --]
^ permalink raw reply [flat|nested] 3+ messages in thread
* [android-common:android12-5.4 8477/13064] sound/usb/pcm.c:1033 snd_usb_pcm_prepare() warn: variable dereferenced before check 'subs->cur_audiofmt' (see line 1029)
@ 2021-01-05 11:48 ` Dan Carpenter
0 siblings, 0 replies; 3+ messages in thread
From: Dan Carpenter @ 2021-01-05 11:48 UTC (permalink / raw)
To: kbuild-all
[-- Attachment #1: Type: text/plain, Size: 2773 bytes --]
tree: https://android.googlesource.com/kernel/common android12-5.4
head: b69d75c07de5c55d7a85312132f8544bbf2f3561
commit: fd98495a63a8e99ae4b6802b73295ef997684d73 [8477/13064] ANDROID: sound: usb: Add vendor's hooking interface
config: x86_64-randconfig-m001-20201227 (attached as .config)
compiler: gcc-9 (Debian 9.3.0-15) 9.3.0
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>
Reported-by: Dan Carpenter <dan.carpenter@oracle.com>
New smatch warnings:
sound/usb/pcm.c:1033 snd_usb_pcm_prepare() warn: variable dereferenced before check 'subs->cur_audiofmt' (see line 1029)
Old smatch warnings:
sound/usb/pcm.c:787 configure_sync_endpoint() warn: variable dereferenced before check 'subs->stream' (see line 784)
vim +1033 sound/usb/pcm.c
e5779998bf8b70e Daniel Mack 2010-03-04 1021 static int snd_usb_pcm_prepare(struct snd_pcm_substream *substream)
e5779998bf8b70e Daniel Mack 2010-03-04 1022 {
e5779998bf8b70e Daniel Mack 2010-03-04 1023 struct snd_pcm_runtime *runtime = substream->runtime;
e5779998bf8b70e Daniel Mack 2010-03-04 1024 struct snd_usb_substream *subs = runtime->private_data;
61a709504b07911 Dylan Reid 2012-09-18 1025 struct usb_host_interface *alts;
61a709504b07911 Dylan Reid 2012-09-18 1026 struct usb_interface *iface;
61a709504b07911 Dylan Reid 2012-09-18 1027 int ret;
e5779998bf8b70e Daniel Mack 2010-03-04 1028
fd98495a63a8e99 JaeHun Jung 2020-05-26 @1029 ret = snd_vendor_set_pcm_buf(subs->dev, subs->cur_audiofmt->iface);
^^^^^^^^^^^^^^^^^^^^^^^^^
New dereference
fd98495a63a8e99 JaeHun Jung 2020-05-26 1030 if (ret)
fd98495a63a8e99 JaeHun Jung 2020-05-26 1031 return ret;
fd98495a63a8e99 JaeHun Jung 2020-05-26 1032
e5779998bf8b70e Daniel Mack 2010-03-04 @1033 if (! subs->cur_audiofmt) {
^^^^^^^^^^^^^^^^^^^^
Check too late.
0ba41d917eeb87f Takashi Iwai 2014-02-26 1034 dev_err(&subs->dev->dev, "no format is specified!\n");
e5779998bf8b70e Daniel Mack 2010-03-04 1035 return -ENXIO;
e5779998bf8b70e Daniel Mack 2010-03-04 1036 }
e5779998bf8b70e Daniel Mack 2010-03-04 1037
47ab154593827b1 Takashi Iwai 2015-08-25 1038 ret = snd_usb_lock_shutdown(subs->stream->chip);
47ab154593827b1 Takashi Iwai 2015-08-25 1039 if (ret < 0)
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
[-- Attachment #2: config.gz --]
[-- Type: application/gzip, Size: 36698 bytes --]
^ permalink raw reply [flat|nested] 3+ messages in thread
* [android-common:android12-5.4 8477/13064] sound/usb/pcm.c:1033 snd_usb_pcm_prepare() warn: variable dereferenced before check 'subs->cur_audiofmt' (see line 1029)
@ 2020-12-27 22:01 kernel test robot
0 siblings, 0 replies; 3+ messages in thread
From: kernel test robot @ 2020-12-27 22:01 UTC (permalink / raw)
To: kbuild
[-- Attachment #1: Type: text/plain, Size: 8921 bytes --]
CC: kbuild-all(a)lists.01.org
TO: cros-kernel-buildreports(a)googlegroups.com
tree: https://android.googlesource.com/kernel/common android12-5.4
head: b69d75c07de5c55d7a85312132f8544bbf2f3561
commit: fd98495a63a8e99ae4b6802b73295ef997684d73 [8477/13064] ANDROID: sound: usb: Add vendor's hooking interface
:::::: branch date: 4 days ago
:::::: commit date: 6 months ago
config: x86_64-randconfig-m001-20201227 (attached as .config)
compiler: gcc-9 (Debian 9.3.0-15) 9.3.0
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>
Reported-by: Dan Carpenter <dan.carpenter@oracle.com>
New smatch warnings:
sound/usb/pcm.c:1033 snd_usb_pcm_prepare() warn: variable dereferenced before check 'subs->cur_audiofmt' (see line 1029)
Old smatch warnings:
sound/usb/pcm.c:787 configure_sync_endpoint() warn: variable dereferenced before check 'subs->stream' (see line 784)
vim +1033 sound/usb/pcm.c
e5779998bf8b70e Daniel Mack 2010-03-04 1015
e5779998bf8b70e Daniel Mack 2010-03-04 1016 /*
e5779998bf8b70e Daniel Mack 2010-03-04 1017 * prepare callback
e5779998bf8b70e Daniel Mack 2010-03-04 1018 *
e5779998bf8b70e Daniel Mack 2010-03-04 1019 * only a few subtle things...
e5779998bf8b70e Daniel Mack 2010-03-04 1020 */
e5779998bf8b70e Daniel Mack 2010-03-04 1021 static int snd_usb_pcm_prepare(struct snd_pcm_substream *substream)
e5779998bf8b70e Daniel Mack 2010-03-04 1022 {
e5779998bf8b70e Daniel Mack 2010-03-04 1023 struct snd_pcm_runtime *runtime = substream->runtime;
e5779998bf8b70e Daniel Mack 2010-03-04 1024 struct snd_usb_substream *subs = runtime->private_data;
61a709504b07911 Dylan Reid 2012-09-18 1025 struct usb_host_interface *alts;
61a709504b07911 Dylan Reid 2012-09-18 1026 struct usb_interface *iface;
61a709504b07911 Dylan Reid 2012-09-18 1027 int ret;
e5779998bf8b70e Daniel Mack 2010-03-04 1028
fd98495a63a8e99 JaeHun Jung 2020-05-26 @1029 ret = snd_vendor_set_pcm_buf(subs->dev, subs->cur_audiofmt->iface);
fd98495a63a8e99 JaeHun Jung 2020-05-26 1030 if (ret)
fd98495a63a8e99 JaeHun Jung 2020-05-26 1031 return ret;
fd98495a63a8e99 JaeHun Jung 2020-05-26 1032
e5779998bf8b70e Daniel Mack 2010-03-04 @1033 if (! subs->cur_audiofmt) {
0ba41d917eeb87f Takashi Iwai 2014-02-26 1034 dev_err(&subs->dev->dev, "no format is specified!\n");
e5779998bf8b70e Daniel Mack 2010-03-04 1035 return -ENXIO;
e5779998bf8b70e Daniel Mack 2010-03-04 1036 }
e5779998bf8b70e Daniel Mack 2010-03-04 1037
47ab154593827b1 Takashi Iwai 2015-08-25 1038 ret = snd_usb_lock_shutdown(subs->stream->chip);
47ab154593827b1 Takashi Iwai 2015-08-25 1039 if (ret < 0)
47ab154593827b1 Takashi Iwai 2015-08-25 1040 return ret;
978520b75f0a1ce Takashi Iwai 2012-10-12 1041 if (snd_BUG_ON(!subs->data_endpoint)) {
978520b75f0a1ce Takashi Iwai 2012-10-12 1042 ret = -EIO;
978520b75f0a1ce Takashi Iwai 2012-10-12 1043 goto unlock;
978520b75f0a1ce Takashi Iwai 2012-10-12 1044 }
edcd3633e72a159 Daniel Mack 2012-04-12 1045
f58161ba1b05a96 Takashi Iwai 2012-11-08 1046 snd_usb_endpoint_sync_pending_stop(subs->sync_endpoint);
f58161ba1b05a96 Takashi Iwai 2012-11-08 1047 snd_usb_endpoint_sync_pending_stop(subs->data_endpoint);
f58161ba1b05a96 Takashi Iwai 2012-11-08 1048
a0a4959eb4e94ce Jorge Sanjuan 2018-07-31 1049 ret = snd_usb_pcm_change_state(subs, UAC3_PD_STATE_D0);
a0a4959eb4e94ce Jorge Sanjuan 2018-07-31 1050 if (ret < 0)
a0a4959eb4e94ce Jorge Sanjuan 2018-07-31 1051 goto unlock;
a0a4959eb4e94ce Jorge Sanjuan 2018-07-31 1052
61a709504b07911 Dylan Reid 2012-09-18 1053 ret = set_format(subs, subs->cur_audiofmt);
61a709504b07911 Dylan Reid 2012-09-18 1054 if (ret < 0)
978520b75f0a1ce Takashi Iwai 2012-10-12 1055 goto unlock;
61a709504b07911 Dylan Reid 2012-09-18 1056
1e2e3fe480064ca Daniel Girnus 2016-12-06 1057 if (subs->need_setup_ep) {
1e2e3fe480064ca Daniel Girnus 2016-12-06 1058
61a709504b07911 Dylan Reid 2012-09-18 1059 iface = usb_ifnum_to_if(subs->dev, subs->cur_audiofmt->iface);
61a709504b07911 Dylan Reid 2012-09-18 1060 alts = &iface->altsetting[subs->cur_audiofmt->altset_idx];
61a709504b07911 Dylan Reid 2012-09-18 1061 ret = snd_usb_init_sample_rate(subs->stream->chip,
61a709504b07911 Dylan Reid 2012-09-18 1062 subs->cur_audiofmt->iface,
61a709504b07911 Dylan Reid 2012-09-18 1063 alts,
61a709504b07911 Dylan Reid 2012-09-18 1064 subs->cur_audiofmt,
61a709504b07911 Dylan Reid 2012-09-18 1065 subs->cur_rate);
61a709504b07911 Dylan Reid 2012-09-18 1066 if (ret < 0)
978520b75f0a1ce Takashi Iwai 2012-10-12 1067 goto unlock;
61a709504b07911 Dylan Reid 2012-09-18 1068
fd98495a63a8e99 JaeHun Jung 2020-05-26 1069 if (snd_vendor_get_ops()) {
fd98495a63a8e99 JaeHun Jung 2020-05-26 1070 ret = snd_vendor_set_rate(iface,
fd98495a63a8e99 JaeHun Jung 2020-05-26 1071 subs->cur_audiofmt->iface,
fd98495a63a8e99 JaeHun Jung 2020-05-26 1072 subs->cur_rate,
fd98495a63a8e99 JaeHun Jung 2020-05-26 1073 subs->cur_audiofmt->altsetting);
fd98495a63a8e99 JaeHun Jung 2020-05-26 1074 if (!ret) {
fd98495a63a8e99 JaeHun Jung 2020-05-26 1075 subs->need_setup_ep = false;
fd98495a63a8e99 JaeHun Jung 2020-05-26 1076 goto unlock;
fd98495a63a8e99 JaeHun Jung 2020-05-26 1077 }
fd98495a63a8e99 JaeHun Jung 2020-05-26 1078 }
fd98495a63a8e99 JaeHun Jung 2020-05-26 1079
61a709504b07911 Dylan Reid 2012-09-18 1080 ret = configure_endpoint(subs);
61a709504b07911 Dylan Reid 2012-09-18 1081 if (ret < 0)
978520b75f0a1ce Takashi Iwai 2012-10-12 1082 goto unlock;
384dc085c32285e Takashi Iwai 2012-09-18 1083 subs->need_setup_ep = false;
384dc085c32285e Takashi Iwai 2012-09-18 1084 }
61a709504b07911 Dylan Reid 2012-09-18 1085
e5779998bf8b70e Daniel Mack 2010-03-04 1086 /* some unit conversions in runtime */
edcd3633e72a159 Daniel Mack 2012-04-12 1087 subs->data_endpoint->maxframesize =
edcd3633e72a159 Daniel Mack 2012-04-12 1088 bytes_to_frames(runtime, subs->data_endpoint->maxpacksize);
edcd3633e72a159 Daniel Mack 2012-04-12 1089 subs->data_endpoint->curframesize =
edcd3633e72a159 Daniel Mack 2012-04-12 1090 bytes_to_frames(runtime, subs->data_endpoint->curpacksize);
e5779998bf8b70e Daniel Mack 2010-03-04 1091
e5779998bf8b70e Daniel Mack 2010-03-04 1092 /* reset the pointer */
e5779998bf8b70e Daniel Mack 2010-03-04 1093 subs->hwptr_done = 0;
e5779998bf8b70e Daniel Mack 2010-03-04 1094 subs->transfer_done = 0;
294c4fb8ab01728 Pierre-Louis Bossart 2011-09-06 1095 subs->last_delay = 0;
294c4fb8ab01728 Pierre-Louis Bossart 2011-09-06 1096 subs->last_frame_number = 0;
e5779998bf8b70e Daniel Mack 2010-03-04 1097 runtime->delay = 0;
e5779998bf8b70e Daniel Mack 2010-03-04 1098
edcd3633e72a159 Daniel Mack 2012-04-12 1099 /* for playback, submit the URBs now; otherwise, the first hwptr_done
edcd3633e72a159 Daniel Mack 2012-04-12 1100 * updates for all URBs would happen at the same time when starting */
edcd3633e72a159 Daniel Mack 2012-04-12 1101 if (subs->direction == SNDRV_PCM_STREAM_PLAYBACK)
1d0f953086f090a Ioan-Adrian Ratiu 2017-01-05 1102 ret = start_endpoints(subs);
edcd3633e72a159 Daniel Mack 2012-04-12 1103
978520b75f0a1ce Takashi Iwai 2012-10-12 1104 unlock:
47ab154593827b1 Takashi Iwai 2015-08-25 1105 snd_usb_unlock_shutdown(subs->stream->chip);
978520b75f0a1ce Takashi Iwai 2012-10-12 1106 return ret;
e5779998bf8b70e Daniel Mack 2010-03-04 1107 }
e5779998bf8b70e Daniel Mack 2010-03-04 1108
:::::: The code at line 1033 was first introduced by commit
:::::: e5779998bf8b70e48a6cc208c8b61b33bd6117ea ALSA: usb-audio: refactor code
:::::: TO: Daniel Mack <daniel@caiaq.de>
:::::: CC: Takashi Iwai <tiwai@suse.de>
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org
[-- Attachment #2: config.gz --]
[-- Type: application/gzip, Size: 36698 bytes --]
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2021-01-05 11:48 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-01-05 11:48 [android-common:android12-5.4 8477/13064] sound/usb/pcm.c:1033 snd_usb_pcm_prepare() warn: variable dereferenced before check 'subs->cur_audiofmt' (see line 1029) Dan Carpenter
2021-01-05 11:48 ` Dan Carpenter
-- strict thread matches above, loose matches on Subject: below --
2020-12-27 22:01 kernel test robot
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.