ast_format_cap: Avoid format creation on module load, use cache instead.

Since Asterisk 13, formats are immutable and cached. However while loading a
module like chan_sip, some formats were created instead using cached ones.

ASTERISK-25535 #close

Change-Id: I479cdc220d5617c840a98f3389b3bd91e91fbd9b
This commit is contained in:
Alexander Traud
2015-11-09 14:04:43 +01:00
parent 506aea26e6
commit f3ac4d8090

View File

@@ -264,7 +264,10 @@ int ast_format_cap_append_by_type(struct ast_format_cap *cap, enum ast_media_typ
continue;
}
format = ast_format_create(codec);
format = ast_format_cache_get(codec->name);
if (!format || (codec != ast_format_get_codec(format))) {
format = ast_format_create(codec);
}
ao2_ref(codec, -1);
if (!format) {