From b3f366ffa3bb61e38123066b9888ed84c7c44fdd Mon Sep 17 00:00:00 2001 From: deuce <> Date: Sun, 9 Oct 2011 19:10:37 +0000 Subject: [PATCH] Add JSVALUE_TO_STRING() macro and ensure NULL returns on errors. --- src/sbbs3/sbbs.h | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) diff --git a/src/sbbs3/sbbs.h b/src/sbbs3/sbbs.h index 0d24379ba9..febbf15958 100644 --- a/src/sbbs3/sbbs.h +++ b/src/sbbs3/sbbs.h @@ -128,15 +128,24 @@ extern int thread_suid_broken; /* NPTL is no longer broken */ size_t pos; \ const jschar *val; \ \ - if((val=JS_GetStringCharsAndLength(cx, str, &len))) { \ - if((ret=alloca(len+1))) { \ - for(pos=0; pos<len; pos++) \ - ret[pos]=val[pos]; \ - ret[len]=0; \ + ret=NULL; \ + if(str != NULL) { \ + if((val=JS_GetStringCharsAndLength(cx, str, &len))) { \ + if((ret=(char *)alloca(len+1))) { \ + for(pos=0; pos<len; pos++) \ + ret[pos]=val[pos]; \ + ret[len]=0; \ + } \ } \ } \ } +#define JSVALUE_TO_STRING(cx, val, ret) \ +{ \ + JSString str=JS_ValueToString(cx, val); \ + JSSTRING_TO_STRING(cx, str, ret); \ +} + #endif #ifdef USE_CRYPTLIB -- GitLab