Skip to content
Snippets Groups Projects
Commit 5d8c42c6 authored by Corey Farrell's avatar Corey Farrell
Browse files

ast_format_cap_append_by_type: Resolve codec reference leak.

This resolves a reference leak caused by ASTERISK-25535.  The pointer
returned by ast_format_get_codec is saved so it can be released.

ASTERISK-25664 #close

Change-Id: If9941b1bf4320b2c59056546d6bce9422726d1ec
parent 0f87b89b
No related branches found
No related tags found
No related merge requests found
......@@ -218,6 +218,7 @@ int ast_format_cap_append_by_type(struct ast_format_cap *cap, enum ast_media_typ
for (id = 1; id < ast_codec_get_max(); ++id) {
struct ast_codec *codec = ast_codec_get_by_id(id);
struct ast_codec *codec2 = NULL;
struct ast_format *format;
int res;
......@@ -238,10 +239,14 @@ int ast_format_cap_append_by_type(struct ast_format_cap *cap, enum ast_media_typ
continue;
}
if (!format || (codec != ast_format_get_codec(format))) {
if (format) {
codec2 = ast_format_get_codec(format);
}
if (codec != codec2) {
ao2_cleanup(format);
format = ast_format_create(codec);
}
ao2_cleanup(codec2);
ao2_ref(codec, -1);
if (!format) {
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment