alsa/0014-alsa-lib-fixed-coverity-reported-issues-under-FORWAR.patch

121 lines
4.0 KiB
Diff
Raw Normal View History

Accepting request 72599 from home:tiwai:branches:multimedia:libs - Backport alsa-lib fixes from upstream: 0001-Fix-alsa-lib-to-regard-3D-control-Depth-as-Playback-.patch 0002-alsa-lib-add-LaCie-Firewire-Speakers-Griffin-FireWav.patch 0003-alsa-lib-ucm-allow-values-to-be-read-from-devices.patch 0004-UCM-comment-fixes-and-fix-myvalue-initialization-fix.patch 0005-UCM-Fix-empty-get_list-initialize-returned-pointer-t.patch 0006-Conf-Fix-channels-of-ICE1712-to-10-12.patch 0007-UCM-Fix-LGPL-licence-how-to-receive-part-referred-GP.patch 0008-configure-Fail-when-the-user-attempts-to-compile-sha.patch 0009-Mark-Heaphone-Center-LFE-control-of-emu10k1-conf-as-.patch 0010-Fix-typo-in-comment-in-surround71.conf.patch 0011-test-latency-print-error-message-when-2-periods-per-.patch 0012-EMU10K1.conf-Don-t-lock-hook-controls.patch 0013-HDA-Intel.conf-Fix-low-mic-volume-due-to-pulseaudio-.patch 0014-alsa-lib-fixed-coverity-reported-issues-under-FORWAR.patch 0015-Fix-compile-warnings.patch 0016-Fix-printf-for-size_t.patch 0018-UCM-fix-memory-leak-when-executing-cset-commands.patch 0019-Specficy-subdevice-0-for-front-surround-of-HDA-Intel.patch 0020-emu10k1.conf-Fix-no-sound-problem-when-using-SB-Live.patch 0021-ctlparse-Respect-softfloat-configure-option.patch 0022-UCM-Fix-typo-in-error-message.patch 0023-UCM-Fix-deadlock-following-failed-get-_verb.patch OBS-URL: https://build.opensuse.org/request/show/72599 OBS-URL: https://build.opensuse.org/package/show/multimedia:libs/alsa?expand=0&rev=80
2011-06-03 12:51:39 +00:00
From 808ce5deb3550e522a0c3087f1c851bdf87d3464 Mon Sep 17 00:00:00 2001
From: Sudarshan Bisht <sudarshan.bisht@nokia.com>
Date: Tue, 12 Apr 2011 13:09:45 +0300
Subject: [PATCH 14/23] alsa-lib: fixed coverity reported issues under
"FORWARD_NULL" checker.
Coverity Static Analysis helps developers find hard-to-spot,
yet potentially crash-causing defects early in the development phase,
reducing the cost,time, and risk of software errors.
This patch has fix for situations where variable can be NULL
but not been checked beforehand
Signed-off-by: Takashi Iwai <tiwai@suse.de>
---
modules/mixer/simple/sbasedl.c | 2 +-
src/conf.c | 1 +
src/hwdep/hwdep.c | 1 +
src/pcm/pcm_hooks.c | 1 +
src/pcm/pcm_simple.c | 2 +-
src/rawmidi/rawmidi.c | 1 +
src/rawmidi/rawmidi_virt.c | 8 +++++---
7 files changed, 11 insertions(+), 5 deletions(-)
diff --git a/modules/mixer/simple/sbasedl.c b/modules/mixer/simple/sbasedl.c
index 0137586..494802f 100644
--- a/modules/mixer/simple/sbasedl.c
+++ b/modules/mixer/simple/sbasedl.c
@@ -99,7 +99,7 @@ int mixer_simple_basic_dlopen(snd_mixer_class_t *class,
__error:
if (initflag)
free(priv);
- if (h == NULL)
+ if (h)
snd_dlclose(h);
free(xlib);
return -ENXIO;
diff --git a/src/conf.c b/src/conf.c
index 8939d62..ddefff6 100644
--- a/src/conf.c
+++ b/src/conf.c
@@ -3268,6 +3268,7 @@ static int snd_config_hooks_call(snd_config_t *root, snd_config_t *config, snd_c
snd_config_iterator_t i, next;
if (snd_config_get_type(func_conf) != SND_CONFIG_TYPE_COMPOUND) {
SNDERR("Invalid type for func %s definition", str);
+ err = -EINVAL;
goto _err;
}
snd_config_for_each(i, next, func_conf) {
diff --git a/src/hwdep/hwdep.c b/src/hwdep/hwdep.c
index b882b35..5dc791c 100644
--- a/src/hwdep/hwdep.c
+++ b/src/hwdep/hwdep.c
@@ -78,6 +78,7 @@ static int snd_hwdep_open_conf(snd_hwdep_t **hwdep,
if (err >= 0) {
if (snd_config_get_type(type_conf) != SND_CONFIG_TYPE_COMPOUND) {
SNDERR("Invalid type for HWDEP type %s definition", str);
+ err = -EINVAL;
goto _err;
}
snd_config_for_each(i, next, type_conf) {
diff --git a/src/pcm/pcm_hooks.c b/src/pcm/pcm_hooks.c
index 3a99d55..404d51e 100644
--- a/src/pcm/pcm_hooks.c
+++ b/src/pcm/pcm_hooks.c
@@ -385,6 +385,7 @@ static int snd_pcm_hook_add_conf(snd_pcm_t *pcm, snd_config_t *root, snd_config_
if (err >= 0) {
if (snd_config_get_type(type) != SND_CONFIG_TYPE_COMPOUND) {
SNDERR("Invalid type for PCM type %s definition", str);
+ err = -EINVAL;
goto _err;
}
snd_config_for_each(i, next, type) {
diff --git a/src/pcm/pcm_simple.c b/src/pcm/pcm_simple.c
index 975f699..f943ec0 100644
--- a/src/pcm/pcm_simple.c
+++ b/src/pcm/pcm_simple.c
@@ -89,7 +89,7 @@ static int set_hw_params(snd_pcm_t *pcm,
return err;
if (periods == 1)
return -EINVAL;
- if (*period_time == 0) {
+ if (period_time) {
err = INTERNAL(snd_pcm_hw_params_get_period_time)(hw_params, period_time, NULL);
if (err < 0)
return err;
diff --git a/src/rawmidi/rawmidi.c b/src/rawmidi/rawmidi.c
index b28488a..0bd6b96 100644
--- a/src/rawmidi/rawmidi.c
+++ b/src/rawmidi/rawmidi.c
@@ -201,6 +201,7 @@ static int snd_rawmidi_open_conf(snd_rawmidi_t **inputp, snd_rawmidi_t **outputp
if (err >= 0) {
if (snd_config_get_type(type_conf) != SND_CONFIG_TYPE_COMPOUND) {
SNDERR("Invalid type for RAWMIDI type %s definition", str);
+ err = -EINVAL;
goto _err;
}
snd_config_for_each(i, next, type_conf) {
diff --git a/src/rawmidi/rawmidi_virt.c b/src/rawmidi/rawmidi_virt.c
index 52b8984..e5b17e4 100644
--- a/src/rawmidi/rawmidi_virt.c
+++ b/src/rawmidi/rawmidi_virt.c
@@ -383,9 +383,11 @@ int snd_rawmidi_virtual_open(snd_rawmidi_t **inputp, snd_rawmidi_t **outputp,
_err:
if (seq_handle)
snd_seq_close(seq_handle);
- if (virt->midi_event)
- snd_midi_event_free(virt->midi_event);
- free(virt);
+ if (virt) {
+ if (virt->midi_event)
+ snd_midi_event_free(virt->midi_event);
+ free(virt);
+ }
if (inputp)
free(*inputp);
if (outputp)
--
1.7.5.3