alsa/0014-alsa-lib-fixed-coverity-reported-issues-under-FORWAR.patch
Takashi Iwai ccef10ef6c 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

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