diff options
Diffstat (limited to 'src/emacs-module.c')
| -rw-r--r-- | src/emacs-module.c | 9 |
1 files changed, 3 insertions, 6 deletions
diff --git a/src/emacs-module.c b/src/emacs-module.c index f173bf93934..56105123ff4 100644 --- a/src/emacs-module.c +++ b/src/emacs-module.c | |||
| @@ -492,10 +492,7 @@ module_copy_string_contents (emacs_env *env, emacs_value value, char *buffer, | |||
| 492 | 492 | ||
| 493 | Lisp_Object lisp_str_utf8 = ENCODE_UTF_8 (lisp_str); | 493 | Lisp_Object lisp_str_utf8 = ENCODE_UTF_8 (lisp_str); |
| 494 | ptrdiff_t raw_size = SBYTES (lisp_str_utf8); | 494 | ptrdiff_t raw_size = SBYTES (lisp_str_utf8); |
| 495 | ptrdiff_t required_buf_size; | 495 | ptrdiff_t required_buf_size = raw_size + 1; |
| 496 | if (INT_ADD_WRAPV (raw_size, 1, &required_buf_size)) | ||
| 497 | xsignal0 (Qoverflow_error); | ||
| 498 | eassert (required_buf_size > 0); | ||
| 499 | 496 | ||
| 500 | eassert (length != NULL); | 497 | eassert (length != NULL); |
| 501 | 498 | ||
| @@ -523,7 +520,7 @@ module_make_string (emacs_env *env, const char *str, ptrdiff_t length) | |||
| 523 | { | 520 | { |
| 524 | MODULE_FUNCTION_BEGIN (module_nil); | 521 | MODULE_FUNCTION_BEGIN (module_nil); |
| 525 | eassert (str != NULL); | 522 | eassert (str != NULL); |
| 526 | if (length < 0 || length > MOST_POSITIVE_FIXNUM) | 523 | if (! (0 <= length && length <= STRING_BYTES_BOUND)) |
| 527 | xsignal0 (Qoverflow_error); | 524 | xsignal0 (Qoverflow_error); |
| 528 | AUTO_STRING_WITH_LEN (lstr, str, length); | 525 | AUTO_STRING_WITH_LEN (lstr, str, length); |
| 529 | return lisp_to_value (code_convert_string_norecord (lstr, Qutf_8, false)); | 526 | return lisp_to_value (code_convert_string_norecord (lstr, Qutf_8, false)); |
| @@ -675,7 +672,7 @@ funcall_module (Lisp_Object function, ptrdiff_t nargs, Lisp_Object *arglist) | |||
| 675 | eassume (0 <= func->min_arity); | 672 | eassume (0 <= func->min_arity); |
| 676 | if (! (func->min_arity <= nargs | 673 | if (! (func->min_arity <= nargs |
| 677 | && (func->max_arity < 0 || nargs <= func->max_arity))) | 674 | && (func->max_arity < 0 || nargs <= func->max_arity))) |
| 678 | xsignal2 (Qwrong_number_of_arguments, function, make_natnum (nargs)); | 675 | xsignal2 (Qwrong_number_of_arguments, function, make_number (nargs)); |
| 679 | 676 | ||
| 680 | emacs_env pub; | 677 | emacs_env pub; |
| 681 | struct emacs_env_private priv; | 678 | struct emacs_env_private priv; |