- 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
121 lines
4.0 KiB
Diff
121 lines
4.0 KiB
Diff
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
|
|
|