Skip to content
Snippets Groups Projects
Commit eb915770 authored by rswindell's avatar rswindell
Browse files

Fixed the following methods (were corrupting passed string buffer):

ascii_str(), strip_ctrl(), strip_exascii(), and truncps().
parent 8a8c4a93
No related branches found
No related tags found
No related merge requests found
......@@ -277,21 +277,38 @@ js_ascii(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval)
return(JS_TRUE);
}
static char* dupestr(char* str)
{
char* p;
p = (char*)malloc(strlen(str)+1);
if(p == NULL)
return(NULL);
return(strcpy(p,str));
}
static JSBool
js_ascii_str(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval)
{
char* p;
char* str;
JSString* js_str;
if((js_str=JS_ValueToString(cx, argv[0]))==NULL)
return(JS_FALSE);
if((p=JS_GetStringBytes(js_str))==NULL)
if((str=JS_GetStringBytes(js_str))==NULL)
return(JS_FALSE);
if((p=dupestr(str))==NULL)
return(JS_FALSE);
ascii_str(p);
js_str = JS_NewStringCopyZ(cx, p);
free(p);
*rval = STRING_TO_JSVAL(js_str);
return(JS_TRUE);
}
......@@ -301,17 +318,22 @@ static JSBool
js_strip_ctrl(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval)
{
char* p;
char* str;
JSString* js_str;
if((js_str=JS_ValueToString(cx, argv[0]))==NULL)
return(JS_FALSE);
if((p=JS_GetStringBytes(js_str))==NULL)
if((str=JS_GetStringBytes(js_str))==NULL)
return(JS_FALSE);
if((p=dupestr(str))==NULL)
return(JS_FALSE);
strip_ctrl(p);
js_str = JS_NewStringCopyZ(cx, p);
free(p);
*rval = STRING_TO_JSVAL(js_str);
return(JS_TRUE);
}
......@@ -320,17 +342,22 @@ static JSBool
js_strip_exascii(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval)
{
char* p;
char* str;
JSString* js_str;
if((js_str=JS_ValueToString(cx, argv[0]))==NULL)
return(JS_FALSE);
if((p=JS_GetStringBytes(js_str))==NULL)
if((str=JS_GetStringBytes(js_str))==NULL)
return(JS_FALSE);
if((p=dupestr(str))==NULL)
return(JS_FALSE);
strip_exascii(p);
js_str = JS_NewStringCopyZ(cx, p);
free(p);
*rval = STRING_TO_JSVAL(js_str);
return(JS_TRUE);
}
......@@ -339,17 +366,22 @@ static JSBool
js_truncsp(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval)
{
char* p;
char* str;
JSString* js_str;
if((js_str=JS_ValueToString(cx, argv[0]))==NULL)
return(JS_FALSE);
if((p=JS_GetStringBytes(js_str))==NULL)
if((str=JS_GetStringBytes(js_str))==NULL)
return(JS_FALSE);
if((p=dupestr(str))==NULL)
return(JS_FALSE);
truncsp(p);
js_str = JS_NewStringCopyZ(cx, p);
free(p);
*rval = STRING_TO_JSVAL(js_str);
return(JS_TRUE);
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment