Bail out early when building an ast_trans_pvt and the translator doesn't supply a 'newpvt'

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@378248 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This commit is contained in:
Sean Bright
2013-01-01 17:03:59 +00:00
parent 32472eca70
commit 9c20603dfc

View File

@@ -283,6 +283,12 @@ static void *newpvt(struct ast_translator *t, const struct ast_format *explicit_
int len; int len;
char *ofs; char *ofs;
/* If we don't have a local init routine, don't bother building the
ast_trans_pvt */
if (!t->newpvt) {
return NULL;
}
/* /*
* compute the required size adding private descriptor, * compute the required size adding private descriptor,
* buffer, AST_FRIENDLY_OFFSET. * buffer, AST_FRIENDLY_OFFSET.
@@ -309,7 +315,7 @@ static void *newpvt(struct ast_translator *t, const struct ast_format *explicit_
ast_format_copy(&pvt->explicit_dst, explicit_dst); ast_format_copy(&pvt->explicit_dst, explicit_dst);
} }
/* call local init routine, if present */ /* call local init routine, if present */
if (t->newpvt && t->newpvt(pvt)) { if (t->newpvt(pvt)) {
ast_free(pvt); ast_free(pvt);
return NULL; return NULL;
} }