diff --git a/src/sbbs3/js_sprintf.c b/src/sbbs3/js_sprintf.c index 784284d19d174b9117f36a932874f893b0110142..864a703e39475c864dcb8fb3ca503b5ad66322d4 100644 --- a/src/sbbs3/js_sprintf.c +++ b/src/sbbs3/js_sprintf.c @@ -65,3 +65,9 @@ js_sprintf(JSContext *cx, uint argn, uintN argc, jsval *argv) return xp_asprintf_end(p); } + +void DLLCALL +js_sprintf_free(char* p) +{ + xp_asprintf_free(p); +} diff --git a/src/sbbs3/jsexec.c b/src/sbbs3/jsexec.c index 91c2d73abcf3b53ec3f7c5f345baa4095e079bf4..929779e93d362c99e8fd1db386b7d594c436986c 100644 --- a/src/sbbs3/jsexec.c +++ b/src/sbbs3/jsexec.c @@ -357,7 +357,7 @@ js_printf(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval) *rval = STRING_TO_JSVAL(JS_NewStringCopyZ(cx, p)); - free(p); + js_sprintf_free(p); return(JS_TRUE); } diff --git a/src/sbbs3/sbbs.h b/src/sbbs3/sbbs.h index e40c2c5ac60c4d3058369f41336dd1ea2a71b06c..b81e86d6914bf81ccd25276de72dcb5eefeeb685 100644 --- a/src/sbbs3/sbbs.h +++ b/src/sbbs3/sbbs.h @@ -1025,6 +1025,7 @@ extern "C" { /* js_sprintf.c */ DLLEXPORT char* DLLCALL js_sprintf(JSContext* cx, uint argn, uintN argc, jsval *argv); + DLLEXPORT void DLLCALL js_sprintf_free(char *); /* js_console.cpp */ JSObject* js_CreateConsoleObject(JSContext* cx, JSObject* parent);