lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Date: Wed, 19 Jun 2024 17:24:32 +0300
From: Igor Artemiev <Igor.A.Artemiev@...t.ru>
To: Takashi Iwai <tiwai@...e.com>
Cc: Igor Artemiev <Igor.A.Artemiev@...t.ru>,
        Liam Girdwood <lgirdwood@...il.com>, Mark Brown <broonie@...nel.org>,
        Jaroslav Kysela <perex@...ex.cz>,
        Kuninori Morimoto <kuninori.morimoto.gx@...esas.com>,
        Herve Codina <herve.codina@...tlin.com>,
        Linus Walleij <linus.walleij@...aro.org>,
        Uwe Kleine-König <u.kleine-koenig@...gutronix.de>,
        linux-sound@...r.kernel.org, linux-kernel@...r.kernel.org,
        lvc-project@...uxtesting.org
Subject: [lvc-project] [PATCH] ASoC: simple-card-utils: Fix error handling in simple_util_init_jack()

Currently, if snd_soc_card_jack_new_pins() or snd_soc_jack_add_gpios()
fails, the function continues execution without handling the error.
This can lead to unexpected behavior and potential crashes.

This patch fixes the problem by checking the return value 
of these functions.

Found by Linux Verification Center (linuxtesting.org) with SVACE.

Signed-off-by: Igor Artemiev <Igor.A.Artemiev@...t.ru>
---
 sound/soc/generic/simple-card-utils.c | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)

diff --git a/sound/soc/generic/simple-card-utils.c b/sound/soc/generic/simple-card-utils.c
index 81077d16d22f..5da0c13858ad 100644
--- a/sound/soc/generic/simple-card-utils.c
+++ b/sound/soc/generic/simple-card-utils.c
@@ -784,10 +784,14 @@ int simple_util_init_jack(struct snd_soc_card *card,
 		sjack->gpio.desc	= desc;
 		sjack->gpio.debounce_time = 150;
 
-		snd_soc_card_jack_new_pins(card, pin_name, mask, &sjack->jack,
+		error = snd_soc_card_jack_new_pins(card, pin_name, mask, &sjack->jack,
 					   &sjack->pin, 1);
+		if (error)
+			return error;
 
-		snd_soc_jack_add_gpios(&sjack->jack, 1, &sjack->gpio);
+		error = snd_soc_jack_add_gpios(&sjack->jack, 1, &sjack->gpio);
+		if (error)
+			return error;
 	}
 
 	return 0;
-- 
2.39.2


Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ