aboutsummaryrefslogtreecommitdiff
path: root/jerry-ext/arg/arg-transform-functions.c
diff options
context:
space:
mode:
authorZidong Jiang <zidong.jiang@intel.com>2017-05-22 08:32:20 +0800
committerGitHub <noreply@github.com>2017-05-22 08:32:20 +0800
commiteb2af2d2a6d46bc45932e7aaeaf25442df6a856a (patch)
tree1232afece144792d302bfba137c993d04362e135 /jerry-ext/arg/arg-transform-functions.c
parent5e28bfc28ada61684f166deee994f1ff84c4db08 (diff)
jerryx_arg: add '\0' when transforming string (#1827)
Related issue: #1824 JerryScript-DCO-1.0-Signed-off-by: Zidong Jiang zidong.jiang@intel.com
Diffstat (limited to 'jerry-ext/arg/arg-transform-functions.c')
-rw-r--r--jerry-ext/arg/arg-transform-functions.c10
1 files changed, 7 insertions, 3 deletions
diff --git a/jerry-ext/arg/arg-transform-functions.c b/jerry-ext/arg/arg-transform-functions.c
index 4b0b1762..2f9ec442 100644
--- a/jerry-ext/arg/arg-transform-functions.c
+++ b/jerry-ext/arg/arg-transform-functions.c
@@ -145,16 +145,20 @@ static jerry_value_t
jerryx_arg_string_common_routine (jerry_value_t js_arg, /**< JS arg */
const jerryx_arg_t *c_arg_p) /**< native arg */
{
+ jerry_char_t *target_p = (jerry_char_t *) c_arg_p->dest;
+ jerry_size_t target_buf_size = (jerry_size_t) c_arg_p->extra_info;
jerry_size_t size = jerry_string_to_char_buffer (js_arg,
- (jerry_char_t *) c_arg_p->dest,
- (jerry_size_t) c_arg_p->extra_info);
+ target_p,
+ target_buf_size);
- if (size == 0)
+ if (size == 0 || size == target_buf_size)
{
return jerry_create_error (JERRY_ERROR_TYPE,
(jerry_char_t *) "The size of the buffer is not large enough.");
}
+ target_p[size] = '\0';
+
return jerry_create_undefined ();
} /* jerryx_arg_string_common_routine */