Bail out early when building an ast_trans_pvt and the translator doesn't supply a...
authorSean Bright <sean@malleable.com>
Tue, 1 Jan 2013 17:03:59 +0000 (17:03 +0000)
committerSean Bright <sean@malleable.com>
Tue, 1 Jan 2013 17:03:59 +0000 (17:03 +0000)
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@378248 65c4cc65-6c06-0410-ace0-fbb531ad65f3

main/translate.c

index ce430ce..ac9112e 100644 (file)
@@ -283,6 +283,12 @@ static void *newpvt(struct ast_translator *t, const struct ast_format *explicit_
        int len;
        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,
         * 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);
        }
        /* call local init routine, if present */
-       if (t->newpvt && t->newpvt(pvt)) {
+       if (t->newpvt(pvt)) {
                ast_free(pvt);
                return NULL;
        }