From 465923e386705254834e4488bd74b5a6b96b9a34 Mon Sep 17 00:00:00 2001 From: Kalle Olavi Niemitalo Date: Mon, 19 Nov 2012 00:34:49 +0200 Subject: [PATCH] ECMAScript: Initialize jsval variables for return values forms_item declared a variable (jsval val), passed its address to forms_item2, and set it as the return value. However, forms_item2 could return without initializing the jsval, especially if given too many arguments. Fix by initializing to JSVAL_VOID right away. I'm not sure that is the correct value to return in such cases, but at least it's better than risking a crash. Likewise in form_elements_item and form_elements_namedItem. --- src/ecmascript/spidermonkey/form.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/ecmascript/spidermonkey/form.c b/src/ecmascript/spidermonkey/form.c index d233fbdd..8f58d989 100644 --- a/src/ecmascript/spidermonkey/form.c +++ b/src/ecmascript/spidermonkey/form.c @@ -770,7 +770,7 @@ form_elements_get_property(JSContext *ctx, JSObject *obj, jsid id, jsval *vp) static JSBool form_elements_item(JSContext *ctx, uintN argc, jsval *rval) { - jsval val; + jsval val = JSVAL_VOID; JSObject *obj = JS_THIS_OBJECT(ctx, rval); jsval *argv = JS_ARGV(ctx, rval); JSBool ret = form_elements_item2(ctx, obj, argc, argv, &val); @@ -842,7 +842,7 @@ form_elements_item2(JSContext *ctx, JSObject *obj, uintN argc, jsval *argv, jsva static JSBool form_elements_namedItem(JSContext *ctx, uintN argc, jsval *rval) { - jsval val; + jsval val = JSVAL_VOID; JSObject *obj = JS_THIS_OBJECT(ctx, rval); jsval *argv = JS_ARGV(ctx, rval); JSBool ret = form_elements_namedItem2(ctx, obj, argc, argv, &val); @@ -1470,7 +1470,7 @@ forms_get_property(JSContext *ctx, JSObject *obj, jsid id, jsval *vp) static JSBool forms_item(JSContext *ctx, uintN argc, jsval *rval) { - jsval val; + jsval val = JSVAL_VOID; JSObject *obj = JS_THIS_OBJECT(ctx, rval); jsval *argv = JS_ARGV(ctx, rval); JSBool ret = forms_item2(ctx, obj, argc, argv, &val);