[Asterisk-code-review] app_morsecode: Fix deadlock (asterisk[18])

N A asteriskteam at digium.com
Tue Nov 16 11:50:43 CST 2021


N A has uploaded this change for review. ( https://gerrit.asterisk.org/c/asterisk/+/17493 )


Change subject: app_morsecode: Fix deadlock
......................................................................

app_morsecode: Fix deadlock

Fixes a deadlock in app_morsecode caused by locking
the channel twice when reading variables from the
channel. The duplicate lock is simply removed.

ASTERISK-29744 #close

Change-Id: I204000701f123361d7f85e0498fedc90243c75e4
---
M apps/app_morsecode.c
1 file changed, 1 insertion(+), 4 deletions(-)



  git pull ssh://gerrit.asterisk.org:29418/asterisk refs/changes/93/17493/1

diff --git a/apps/app_morsecode.c b/apps/app_morsecode.c
index 995eb70..f9b2119 100644
--- a/apps/app_morsecode.c
+++ b/apps/app_morsecode.c
@@ -197,14 +197,12 @@
 	}
 
 	/* Use variable MORSETONE, if set (else 800) */
-	ast_channel_lock(chan);
 	tonec = pbx_builtin_getvar_helper(chan, "MORSETONE");
 	if (ast_strlen_zero(tonec) || (sscanf(tonec, "%30d", &tone) != 1)) {
 		tone = 800;
 	}
 
 	/* Use variable MORSESPACETONE, if set (else 0) */
-
 	toneb = pbx_builtin_getvar_helper(chan, "MORSESPACETONE");
 	if (ast_strlen_zero(toneb) || (sscanf(toneb, "%30d", &toneoff) != 1)) {
 		toneoff = 0;
@@ -216,8 +214,8 @@
 		codetype = "INTERNATIONAL";
 	}
 
+	ast_channel_unlock(chan);
 	if (!strcmp(codetype, "AMERICAN")) {
-		ast_channel_unlock(chan);
 		for (digit = data; *digit; digit++) {
 			const char *dahdit;
 			digit2 = *digit;
@@ -252,7 +250,6 @@
 				break;
 		}
 	} else { /* International */
-		ast_channel_unlock(chan);
 		for (digit = data; *digit; digit++) {
 			const char *dahdit;
 			digit2 = *digit;

-- 
To view, visit https://gerrit.asterisk.org/c/asterisk/+/17493
To unsubscribe, or for help writing mail filters, visit https://gerrit.asterisk.org/settings

Gerrit-Project: asterisk
Gerrit-Branch: 18
Gerrit-Change-Id: I204000701f123361d7f85e0498fedc90243c75e4
Gerrit-Change-Number: 17493
Gerrit-PatchSet: 1
Gerrit-Owner: N A <mail at interlinked.x10host.com>
Gerrit-MessageType: newchange
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.digium.com/pipermail/asterisk-code-review/attachments/20211116/8b5c603a/attachment-0001.html>


More information about the asterisk-code-review mailing list