diff --git a/mozilla/dom/src/base/nsJSEnvironment.cpp b/mozilla/dom/src/base/nsJSEnvironment.cpp index da644b1e816..2c3254db49d 100644 --- a/mozilla/dom/src/base/nsJSEnvironment.cpp +++ b/mozilla/dom/src/base/nsJSEnvironment.cpp @@ -3894,15 +3894,17 @@ protected: nsJSArgArray::nsJSArgArray(JSContext *aContext, PRUint32 argc, jsval *argv, nsresult *prv) : mContext(aContext), - mArgv(argv), + mArgv(nsnull), mArgc(argc) { // copy the array - we don't know its lifetime, and ours is tied to xpcom // refcounting. Alloc zero'd array so cleanup etc is safe. - mArgv = (jsval *) PR_CALLOC(argc * sizeof(jsval)); - if (!mArgv) { - *prv = NS_ERROR_OUT_OF_MEMORY; - return; + if (argc) { + mArgv = (jsval *) PR_CALLOC(argc * sizeof(jsval)); + if (!mArgv) { + *prv = NS_ERROR_OUT_OF_MEMORY; + return; + } } // Callers are allowed to pass in a null argv even for argc > 0. They can