format.c: correct possible null pointer dereference

In ast_format_sdp_parse and ast_format_sdp_generate
the check checks for a valid interface and function
were potentially confusing, and hid an error in the
test of the presence of the function that is called
later.  This patch clears up and corrects the test.

Review: https://reviewboard.asterisk.org/r/3208/
(closes issue ASTERISK-23098)
Reported by: marcelloceschia
Patches:
     main_format.patch uploaded by marcelloceschia (license 6036)
	 ASTERISK-23098.patch uploaded by coreyfarrell (license 5909)
........

Merged revisions 408137 from http://svn.asterisk.org/svn/asterisk/branches/11


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/12@408138 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This commit is contained in:
Scott Griepentrog
2014-02-14 21:28:18 +00:00
parent e628b1488d
commit 3ad378592c

View File

@@ -129,7 +129,7 @@ int ast_format_sdp_parse(struct ast_format *format, const char *attributes)
} }
ao2_rdlock(wrapper); ao2_rdlock(wrapper);
if (!(wrapper->interface || !wrapper->interface->format_attr_sdp_parse)) { if (!wrapper->interface || !wrapper->interface->format_attr_sdp_parse) {
ao2_unlock(wrapper); ao2_unlock(wrapper);
ao2_ref(wrapper, -1); ao2_ref(wrapper, -1);
return 0; return 0;
@@ -152,7 +152,7 @@ void ast_format_sdp_generate(const struct ast_format *format, unsigned int paylo
} }
ao2_rdlock(wrapper); ao2_rdlock(wrapper);
if (!(wrapper->interface || !wrapper->interface->format_attr_sdp_generate)) { if (!wrapper->interface || !wrapper->interface->format_attr_sdp_generate) {
ao2_unlock(wrapper); ao2_unlock(wrapper);
ao2_ref(wrapper, -1); ao2_ref(wrapper, -1);
return; return;