[Asterisk-code-review] app voicemail: Fix json blob errors (asterisk[15])
George Joseph
asteriskteam at digium.com
Fri Mar 16 09:09:06 CDT 2018
George Joseph has uploaded this change for review. ( https://gerrit.asterisk.org/8547
Change subject: app_voicemail: Fix json blob errors
......................................................................
app_voicemail: Fix json blob errors
When app_voicemail calls ast_test_suite_notify with the results of
a user keypress, it formats the keypress as '%c'. If the user hung up
or some other error occurrs, the result of the keypress is a non
printable character. This ultimately causes json_vpack_ex to think
it's being passed a non utf-8 string and return an error.
* Keypress results passed to ast_test_suite_notify are now checked with
isprint() and a '?' is substituted if the check fails.
Change-Id: I78ee188916bbac840f3d03f40201b692347ea865
---
M apps/app_voicemail.c
1 file changed, 24 insertions(+), 12 deletions(-)
git pull ssh://gerrit.asterisk.org:29418/asterisk refs/changes/47/8547/1
diff --git a/apps/app_voicemail.c b/apps/app_voicemail.c
index cab78a6..df1d1ec 100644
--- a/apps/app_voicemail.c
+++ b/apps/app_voicemail.c
@@ -7835,7 +7835,8 @@
ast_test_suite_event_notify("USERPRESS", "Message: User pressed %c\r\nDTMF: %c", '#', '#');
return '#';
}
- ast_test_suite_event_notify("USERPRESS", "Message: User pressed %c\r\nDTMF: %c", res, res);
+ ast_test_suite_event_notify("USERPRESS", "Message: User pressed %c\r\nDTMF: %c",
+ isprint(res) ? res : '?', isprint(res) ? res : '?');
return res;
}
@@ -7998,7 +7999,8 @@
if (retries > 3) {
cmd = '*'; /* Let's cancel this beast */
}
- ast_test_suite_event_notify("USERPRESS", "Message: User pressed %c\r\nDTMF: %c", cmd, cmd);
+ ast_test_suite_event_notify("USERPRESS", "Message: User pressed %c\r\nDTMF: %c",
+ isprint(cmd) ? cmd : '?', isprint(cmd) ? cmd : '?');
}
}
@@ -8226,7 +8228,8 @@
cmd = 't';
done = 1;
}
- ast_test_suite_event_notify("USERPRESS", "Message: User pressed %c\r\nDTMF: %c", cmd, cmd);
+ ast_test_suite_event_notify("USERPRESS", "Message: User pressed %c\r\nDTMF: %c",
+ isprint(cmd) ? cmd : '?', isprint(cmd) ? cmd : '?');
}
}
if (cmd < 0 || cmd == 't')
@@ -8891,7 +8894,8 @@
ast_log(AST_LOG_WARNING, "Playback of message %s failed\n", vms->fn);
res = 0;
}
- ast_test_suite_event_notify("USERPRESS", "Message: User pressed %c\r\nDTMF: %c", res, res);
+ ast_test_suite_event_notify("USERPRESS", "Message: User pressed %c\r\nDTMF: %c",
+ isprint(res) ? res : '?', isprint(res) ? res : '?');
}
DISPOSE(vms->curdir, vms->curmsg);
return res;
@@ -10746,7 +10750,8 @@
if (retries > 3) {
cmd = 't';
}
- ast_test_suite_event_notify("USERPRESS", "Message: User pressed %c\r\nDTMF: %c", cmd, cmd);
+ ast_test_suite_event_notify("USERPRESS", "Message: User pressed %c\r\nDTMF: %c",
+ isprint(cmd) ? cmd : '?', isprint(cmd) ? cmd : '?');
}
}
if (cmd == 't')
@@ -10826,7 +10831,8 @@
if (retries > 3) {
cmd = 't';
}
- ast_test_suite_event_notify("USERPRESS", "Message: User pressed %c\r\nDTMF: %c", cmd, cmd);
+ ast_test_suite_event_notify("USERPRESS", "Message: User pressed %c\r\nDTMF: %c",
+ isprint(cmd) ? cmd : '?', isprint(cmd) ? cmd : '?');
}
}
DISPOSE(prefile, -1);
@@ -11648,7 +11654,8 @@
} else {
cmd = vm_intro(chan, vmu, &vms);
}
- ast_test_suite_event_notify("USERPRESS", "Message: User pressed %c\r\nDTMF: %c", cmd, cmd);
+ ast_test_suite_event_notify("USERPRESS", "Message: User pressed %c\r\nDTMF: %c",
+ isprint(cmd) ? cmd : '?', isprint(cmd) ? cmd : '?');
vms.repeats = 0;
vms.starting = 1;
@@ -11668,7 +11675,8 @@
adsi_folders(chan, 0, "Change to folder...");
cmd = get_folder2(chan, "vm-changeto", 0);
- ast_test_suite_event_notify("USERPRESS", "Message: User pressed %c\r\nDTMF: %c", cmd, cmd);
+ ast_test_suite_event_notify("USERPRESS", "Message: User pressed %c\r\nDTMF: %c",
+ isprint(cmd) ? cmd : '?', isprint(cmd) ? cmd : '?');
if (cmd == '#') {
cmd = 0;
} else if (cmd > 0) {
@@ -11800,7 +11808,8 @@
if (vms.repeats > 3) {
cmd = 't';
}
- ast_test_suite_event_notify("USERPRESS", "Message: User pressed %c\r\nDTMF: %c", cmd, cmd);
+ ast_test_suite_event_notify("USERPRESS", "Message: User pressed %c\r\nDTMF: %c",
+ isprint(cmd) ? cmd : '?', isprint(cmd) ? cmd : '?');
}
}
if (cmd == 't') {
@@ -11978,7 +11987,8 @@
if (useadsi)
adsi_folders(chan, 1, "Save to folder...");
cmd = get_folder2(chan, "vm-savefolder", 1);
- ast_test_suite_event_notify("USERPRESS", "Message: User pressed %c\r\nDTMF: %c", cmd, cmd);
+ ast_test_suite_event_notify("USERPRESS", "Message: User pressed %c\r\nDTMF: %c",
+ isprint(cmd) ? cmd : '?', isprint(cmd) ? cmd : '?');
box = 0; /* Shut up compiler */
if (cmd == '#') {
cmd = 0;
@@ -15066,7 +15076,8 @@
else
cmd = 't';
}
- ast_test_suite_event_notify("USERPRESS", "Message: User pressed %c\r\nDTMF: %c", cmd, cmd);
+ ast_test_suite_event_notify("USERPRESS", "Message: User pressed %c\r\nDTMF: %c",
+ isprint(cmd) ? cmd : '?', isprint(cmd) ? cmd : '?');
}
if (retries >= 3) {
return 0;
@@ -15231,7 +15242,8 @@
res = 't';
}
}
- ast_test_suite_event_notify("USERPRESS", "Message: User pressed %c\r\nDTMF: %c", res, res);
+ ast_test_suite_event_notify("USERPRESS", "Message: User pressed %c\r\nDTMF: %c",
+ isprint(res) ? res : '?', isprint(res) ? res : '?');
break;
}
--
To view, visit https://gerrit.asterisk.org/8547
To unsubscribe, visit https://gerrit.asterisk.org/settings
Gerrit-Project: asterisk
Gerrit-Branch: 15
Gerrit-MessageType: newchange
Gerrit-Change-Id: I78ee188916bbac840f3d03f40201b692347ea865
Gerrit-Change-Number: 8547
Gerrit-PatchSet: 1
Gerrit-Owner: George Joseph <gjoseph at digium.com>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.digium.com/pipermail/asterisk-code-review/attachments/20180316/e4be89a0/attachment-0001.html>
More information about the asterisk-code-review
mailing list