Skip to content
Snippets Groups Projects
Commit cc06b0b5 authored by Rob Swindell's avatar Rob Swindell :speech_balloon:
Browse files

Fix some memory leaks

parent 011ae39c
No related branches found
No related tags found
1 merge request!463MRC mods by Codefenix (2024-10-20)
Pipeline #1898 passed
...@@ -731,7 +731,7 @@ static JSBool ...@@ -731,7 +731,7 @@ static JSBool
js_get_file_name(JSContext *cx, uintN argc, jsval *arglist) js_get_file_name(JSContext *cx, uintN argc, jsval *arglist)
{ {
jsval* argv = JS_ARGV(cx, arglist); jsval* argv = JS_ARGV(cx, arglist);
char* filepath = NULL; char filepath[MAX_PATH + 1] = "";
char filename[SMB_FILEIDX_NAMELEN + 1] = ""; char filename[SMB_FILEIDX_NAMELEN + 1] = "";
JS_SET_RVAL(cx, arglist, JSVAL_NULL); JS_SET_RVAL(cx, arglist, JSVAL_NULL);
...@@ -740,8 +740,7 @@ js_get_file_name(JSContext *cx, uintN argc, jsval *arglist) ...@@ -740,8 +740,7 @@ js_get_file_name(JSContext *cx, uintN argc, jsval *arglist)
return JS_FALSE; return JS_FALSE;
uintN argn = 0; uintN argn = 0;
JSVALUE_TO_MSTRING(cx, argv[argn], filepath, NULL); JSVALUE_TO_STRBUF(cx, argv[argn], filepath, sizeof(filepath), NULL);
HANDLE_PENDING(cx, filepath);
JSString* js_str; JSString* js_str;
if((js_str = JS_NewStringCopyZ(cx, smb_fileidxname(getfname(filepath), filename, sizeof(filename)))) != NULL) if((js_str = JS_NewStringCopyZ(cx, smb_fileidxname(getfname(filepath), filename, sizeof(filename)))) != NULL)
JS_SET_RVAL(cx, arglist, STRING_TO_JSVAL(js_str)); JS_SET_RVAL(cx, arglist, STRING_TO_JSVAL(js_str));
...@@ -753,7 +752,7 @@ static JSBool ...@@ -753,7 +752,7 @@ static JSBool
js_format_file_name(JSContext *cx, uintN argc, jsval *arglist) js_format_file_name(JSContext *cx, uintN argc, jsval *arglist)
{ {
jsval* argv = JS_ARGV(cx, arglist); jsval* argv = JS_ARGV(cx, arglist);
char* filepath = NULL; char filepath[MAX_PATH + 1] = "";
int32 size = 12; int32 size = 12;
bool pad = false; bool pad = false;
...@@ -763,8 +762,7 @@ js_format_file_name(JSContext *cx, uintN argc, jsval *arglist) ...@@ -763,8 +762,7 @@ js_format_file_name(JSContext *cx, uintN argc, jsval *arglist)
return JS_FALSE; return JS_FALSE;
uintN argn = 0; uintN argn = 0;
JSVALUE_TO_MSTRING(cx, argv[argn], filepath, NULL); JSVALUE_TO_STRBUF(cx, argv[argn], filepath, sizeof(filepath), NULL);
HANDLE_PENDING(cx, filepath);
argn++; argn++;
if(argn < argc && JSVAL_IS_NUMBER(argv[argn])) { if(argn < argc && JSVAL_IS_NUMBER(argv[argn])) {
JS_ValueToInt32(cx, argv[argn], &size); JS_ValueToInt32(cx, argv[argn], &size);
...@@ -820,9 +818,9 @@ js_get_file_path(JSContext *cx, uintN argc, jsval *arglist) ...@@ -820,9 +818,9 @@ js_get_file_path(JSContext *cx, uintN argc, jsval *arglist)
argn++; argn++;
} }
if(argn < argc && JSVAL_IS_OBJECT(argv[argn])) { if(argn < argc && JSVAL_IS_OBJECT(argv[argn])) {
free(filename);
if(!parse_file_index_properties(cx, JSVAL_TO_OBJECT(argv[argn]), &file.file_idx)) if(!parse_file_index_properties(cx, JSVAL_TO_OBJECT(argv[argn]), &file.file_idx))
return JS_TRUE; return JS_TRUE;
free(filename);
filename = strdup(file.file_idx.name); filename = strdup(file.file_idx.name);
argn++; argn++;
} }
...@@ -872,9 +870,9 @@ js_get_file_size(JSContext *cx, uintN argc, jsval *arglist) ...@@ -872,9 +870,9 @@ js_get_file_size(JSContext *cx, uintN argc, jsval *arglist)
argn++; argn++;
} }
if(argn < argc && JSVAL_IS_OBJECT(argv[argn])) { if(argn < argc && JSVAL_IS_OBJECT(argv[argn])) {
free(filename);
if(!parse_file_index_properties(cx, JSVAL_TO_OBJECT(argv[argn]), &file.file_idx)) if(!parse_file_index_properties(cx, JSVAL_TO_OBJECT(argv[argn]), &file.file_idx))
return JS_TRUE; return JS_TRUE;
free(filename);
filename = strdup(file.file_idx.name); filename = strdup(file.file_idx.name);
argn++; argn++;
} }
...@@ -923,9 +921,9 @@ js_get_file_time(JSContext *cx, uintN argc, jsval *arglist) ...@@ -923,9 +921,9 @@ js_get_file_time(JSContext *cx, uintN argc, jsval *arglist)
argn++; argn++;
} }
if(argn < argc && JSVAL_IS_OBJECT(argv[argn])) { if(argn < argc && JSVAL_IS_OBJECT(argv[argn])) {
free(filename);
if(!parse_file_index_properties(cx, JSVAL_TO_OBJECT(argv[argn]), &file.file_idx)) if(!parse_file_index_properties(cx, JSVAL_TO_OBJECT(argv[argn]), &file.file_idx))
return JS_TRUE; return JS_TRUE;
free(filename);
filename = strdup(file.file_idx.name); filename = strdup(file.file_idx.name);
argn++; argn++;
} }
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment