From da5b95dcaf372dcc206019e171a0b08983683bf5 Mon Sep 17 00:00:00 2001 From: Dmitry Volyntsev Date: Sun, 14 Jul 2024 15:08:40 -0700 Subject: [PATCH] Fix GC leak in `js_proxy_get()` Fixes: https://github.com/bellard/quickjs/issues/277 --- quickjs.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/quickjs.c b/quickjs.c index 161e144..5857a5f 100644 --- a/quickjs.c +++ b/quickjs.c @@ -44459,8 +44459,10 @@ static JSValue js_proxy_get(JSContext *ctx, JSValue obj, JSAtom atom, if (JS_IsException(ret)) return JS_EXCEPTION; res = JS_GetOwnPropertyInternal(ctx, &desc, JS_VALUE_GET_OBJ(s->target), atom); - if (res < 0) + if (res < 0) { + JS_FreeValue(ctx, ret); return JS_EXCEPTION; + } if (res) { if ((desc.flags & (JS_PROP_GETSET | JS_PROP_CONFIGURABLE | JS_PROP_WRITABLE)) == 0) { if (!js_same_value(ctx, desc.value, ret)) {