[Asterisk-code-review] Fix crash in audiohook translate to slin (asterisk[master])
Matt Jordan
asteriskteam at digium.com
Fri Dec 4 07:31:11 CST 2015
Matt Jordan has submitted this change and it was merged.
Change subject: Fix crash in audiohook translate to slin
......................................................................
Fix crash in audiohook translate to slin
This patch fixes a crash which would occur when an audiohook was
applied to a channel using an audio codec that could not be translated
to signed linear (such as when using pass-through codecs like OPUS or
when the codec translator module for the format in use is not loaded).
ASTERISK-25498 #close
Reported by: Ben Langfeld
Change-Id: Ib6ea7373fcc22e537cad373996136636201f4384
---
M main/audiohook.c
1 file changed, 11 insertions(+), 4 deletions(-)
Approvals:
Richard Mudgett: Looks good to me, but someone else must approve
Anonymous Coward #1000019: Verified
Matt Jordan: Looks good to me, approved
diff --git a/main/audiohook.c b/main/audiohook.c
index 73bb0ff..e308913 100644
--- a/main/audiohook.c
+++ b/main/audiohook.c
@@ -824,13 +824,20 @@
return new_frame;
}
- if (ast_format_cmp(frame->subclass.format, in_translate->format) == AST_FORMAT_CMP_NOT_EQUAL) {
+ if (!in_translate->format ||
+ ast_format_cmp(frame->subclass.format, in_translate->format) != AST_FORMAT_CMP_EQUAL) {
+ struct ast_trans_pvt *new_trans;
+
+ new_trans = ast_translator_build_path(slin, frame->subclass.format);
+ if (!new_trans) {
+ return NULL;
+ }
+
if (in_translate->trans_pvt) {
ast_translator_free_path(in_translate->trans_pvt);
}
- if (!(in_translate->trans_pvt = ast_translator_build_path(slin, frame->subclass.format))) {
- return NULL;
- }
+ in_translate->trans_pvt = new_trans;
+
ao2_replace(in_translate->format, frame->subclass.format);
}
--
To view, visit https://gerrit.asterisk.org/1754
To unsubscribe, visit https://gerrit.asterisk.org/settings
Gerrit-MessageType: merged
Gerrit-Change-Id: Ib6ea7373fcc22e537cad373996136636201f4384
Gerrit-PatchSet: 3
Gerrit-Project: asterisk
Gerrit-Branch: master
Gerrit-Owner: Jonathan Rose <jrose at digium.com>
Gerrit-Reviewer: Anonymous Coward #1000019
Gerrit-Reviewer: Matt Jordan <mjordan at digium.com>
Gerrit-Reviewer: Richard Mudgett <rmudgett at digium.com>
More information about the asterisk-code-review
mailing list