diff options
author | Zidong Jiang <zidong.jiang@intel.com> | 2017-05-22 08:32:20 +0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-05-22 08:32:20 +0800 |
commit | eb2af2d2a6d46bc45932e7aaeaf25442df6a856a (patch) | |
tree | 1232afece144792d302bfba137c993d04362e135 /jerry-ext/arg/arg-transform-functions.c | |
parent | 5e28bfc28ada61684f166deee994f1ff84c4db08 (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.c | 10 |
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 */ |