Bug 1376585 - prevent memory leak in setCloneBuffer_impl. r?jandem
MozReview-Commit-ID: HX2Siss7un2
--- a/js/src/builtin/TestingFunctions.cpp
+++ b/js/src/builtin/TestingFunctions.cpp
@@ -2373,18 +2373,20 @@ class CloneBufferObject : public NativeO
obj->discard();
char* str = JS_EncodeString(cx, args[0].toString());
if (!str)
return false;
size_t nbytes = JS_GetStringLength(args[0].toString());
MOZ_ASSERT(nbytes % sizeof(uint64_t) == 0);
auto buf = js::MakeUnique<JSStructuredCloneData>(0, 0, nbytes);
- if (!buf->Init(nbytes, nbytes))
+ if (!buf->Init(nbytes, nbytes)) {
+ JS_free(cx, str);
return false;
+ }
js_memcpy(buf->Start(), str, nbytes);
JS_free(cx, str);
obj->setData(buf.release());
args.rval().setUndefined();
return true;
}