From 18338947a3b75ba000db568a7ed3bab74fd4a27a Mon Sep 17 00:00:00 2001 From: Anthony Minessale Date: Sun, 11 Feb 2007 00:39:46 +0000 Subject: [PATCH] minor update git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@4198 d0543943-73ff-0310-b7d9-9358b9ac24b2 --- .../languages/mod_spidermonkey/mod_spidermonkey.c | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/src/mod/languages/mod_spidermonkey/mod_spidermonkey.c b/src/mod/languages/mod_spidermonkey/mod_spidermonkey.c index 6080808236..1eea8a9116 100644 --- a/src/mod/languages/mod_spidermonkey/mod_spidermonkey.c +++ b/src/mod/languages/mod_spidermonkey/mod_spidermonkey.c @@ -1282,9 +1282,8 @@ static JSBool session_get_digits(JSContext *cx, JSObject *obj, uintN argc, jsval { struct js_session *jss = JS_GetPrivate(cx, obj); char *terminators = NULL; - char buf[128] = ""; - int digits; - int32 timeout = 5000; + char buf[513] = {0}; + int32 digits = 0, timeout = 5000; switch_channel_t *channel; channel = switch_core_session_get_channel(jss->session); @@ -1299,7 +1298,13 @@ static JSBool session_get_digits(JSContext *cx, JSObject *obj, uintN argc, jsval if (argc > 0) { char term; - digits = atoi(JS_GetStringBytes(JS_ValueToString(cx, argv[0]))); + JS_ValueToInt32(cx, argv[0], &digits); + + if (digits > sizeof(buf) - 1) { + switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "Exceeded max digits of %d\n", sizeof(buf) - 1); + return JS_FALSE; + } + if (argc > 1) { terminators = JS_GetStringBytes(JS_ValueToString(cx, argv[1])); }