Bug 1308884 - clean return from functions that use variable number of arguments. r?bobbyholley draft
authorAndi-Bogdan Postelnicu <bpostelnicu@mozilla.com>
Mon, 10 Oct 2016 14:31:16 +0300
changeset 423135 19765a9a0906fe01141bd1e4a4d1ccda49db0988
parent 423090 d72cf6ecebaf707c159f6697d9f5f6f6a6feb7e1
child 533374 22b9815f308e7bff1121427a85f7a30f038b5914
push id31814
push userbmo:bpostelnicu@mozilla.com
push dateMon, 10 Oct 2016 11:32:19 +0000
reviewersbobbyholley
bugs1308884
milestone52.0a1
Bug 1308884 - clean return from functions that use variable number of arguments. r?bobbyholley MozReview-Commit-ID: JXvNwPJyOvb
js/xpconnect/loader/mozJSComponentLoader.cpp
--- a/js/xpconnect/loader/mozJSComponentLoader.cpp
+++ b/js/xpconnect/loader/mozJSComponentLoader.cpp
@@ -160,39 +160,42 @@ ReportOnCallerUTF8(JSContext* callerCont
         return NS_ERROR_FAILURE;
     }
 
     va_list ap;
     va_start(ap, format);
 
     char* buf = JS_vsmprintf(format, ap);
     if (!buf) {
+        va_end(ap);
         return NS_ERROR_OUT_OF_MEMORY;
     }
 
     JS_ReportErrorUTF8(callerContext, "%s", buf);
     JS_smprintf_free(buf);
 
+    va_end(ap);
     return NS_OK;
 }
 
 static nsresult
 ReportOnCallerUTF8(JSCLContextHelper& helper,
                    const char* format, ...)
 {
     va_list ap;
     va_start(ap, format);
 
     char* buf = JS_vsmprintf(format, ap);
     if (!buf) {
+        va_end(ap);
         return NS_ERROR_OUT_OF_MEMORY;
     }
 
     helper.reportErrorAfterPop(buf);
-
+    va_end(ap);
     return NS_OK;
 }
 
 mozJSComponentLoader::mozJSComponentLoader()
     : mModules(16),
       mImports(16),
       mInProgressImports(16),
       mInitialized(false),