ALSA: soc-cache: dereferencing before checking
Subsystems (3)
PATCH 1/1 ALSA: soc-cache: dereferencing before checking
The patch c358e640a66 "ASoC: soc-cache: Add trace event for snd_soc_cache_sync()" introduced a dereference of "codec->cache_ops" before we had checked it for NULL.
I pulled the check forward, and then pulled everything in an indent level.
sound/soc/soc-cache.c +12 -13
@@ -1609,24 +1609,23 @@ int snd_soc_cache_sync(struct snd_soc_codec *codec)return 0 ; } +if (!codec->cache_ops || !codec->cache_ops->sync) +return -EINVAL ; +if (codec->cache_ops->name) name = codec->cache_ops->name;else name ="unknown" ; -if (codec->cache_ops && codec->cache_ops->sync) { -if (codec->cache_ops->name) -dev_dbg (codec->dev,"Syncing %s cache for %s codec\n" , - codec->cache_ops->name, codec->name); -trace_snd_soc_cache_sync (codec, name,"start" ); - ret = codec->cache_ops->sync (codec); -if (!ret) - codec->cache_sync =0 ; -trace_snd_soc_cache_sync (codec, name,"end" ); -return ret; - } - -return -EINVAL ; +if (codec->cache_ops->name) +dev_dbg (codec->dev,"Syncing %s cache for %s codec\n" , + codec->cache_ops->name, codec->name); +trace_snd_soc_cache_sync (codec, name,"start" ); + ret = codec->cache_ops->sync (codec); +if (!ret) + codec->cache_sync =0 ; +trace_snd_soc_cache_sync (codec, name,"end" ); +return ret; }EXPORT_SYMBOL_GPL (snd_soc_cache_sync);
Quoted 8 lines · Dan Carpenter
The patch
c358e640a66"ASoC: soc-cache: Add trace event forsnd_soc_cache_sync()" introduced a dereference of "codec->cache_ops" before we had checked it for NULL.I pulled the check forward, and then pulled everything in an indent level.
Signed-off-by Dan Carpenter <[email protected]>
Signature · 3 lines
Freelance Developer, SlimLogic Ltd ASoC and Voltage Regulator Maintainer. http://www.slimlogic.co.uk
Quoted 8 lines · Dan Carpenter
The patch
c358e640a66"ASoC: soc-cache: Add trace event forsnd_soc_cache_sync()" introduced a dereference of "codec->cache_ops" before we had checked it for NULL.I pulled the check forward, and then pulled everything in an indent level.
Signed-off-by Dan Carpenter <[email protected]>
Dah, thanks for catching this.
Dimitris
Mark Brown
AppliedQuoted 3 lines · Dan Carpenter
The patch
c358e640a66"ASoC: soc-cache: Add trace event forsnd_soc_cache_sync()" introduced a dereference of "codec->cache_ops" before we had checked it for NULL.
Applied, thanks. Please try to use subject lines for your patches which are consistent with the subsystem you're submitting to.