diff options
| author | Paul Eggert | 2011-06-18 08:08:31 -0700 |
|---|---|---|
| committer | Paul Eggert | 2011-06-18 08:08:31 -0700 |
| commit | a498d7f4f8ce688079d32cac4858ba78d2a9081e (patch) | |
| tree | 59401c8f2b98c24cd4983b73923a738be1c50b11 /src | |
| parent | e39e811eb8c4058facadcc0beea5565f0ef3bbc2 (diff) | |
| download | emacs-a498d7f4f8ce688079d32cac4858ba78d2a9081e.tar.gz emacs-a498d7f4f8ce688079d32cac4858ba78d2a9081e.zip | |
* fns.c (concat): Catch string overflow earlier.
Do not rely on integer wraparound.
Diffstat (limited to 'src')
| -rw-r--r-- | src/ChangeLog | 3 | ||||
| -rw-r--r-- | src/fns.c | 4 |
2 files changed, 5 insertions, 2 deletions
diff --git a/src/ChangeLog b/src/ChangeLog index 79d9b636e09..b9cf18cedd9 100644 --- a/src/ChangeLog +++ b/src/ChangeLog | |||
| @@ -1,5 +1,8 @@ | |||
| 1 | 2011-06-18 Paul Eggert <eggert@cs.ucla.edu> | 1 | 2011-06-18 Paul Eggert <eggert@cs.ucla.edu> |
| 2 | 2 | ||
| 3 | * fns.c (concat): Catch string overflow earlier. | ||
| 4 | Do not rely on integer wraparound. | ||
| 5 | |||
| 3 | * dispextern.h (struct it.overlay_strings_charpos): EMACS_INT, not int. | 6 | * dispextern.h (struct it.overlay_strings_charpos): EMACS_INT, not int. |
| 4 | 7 | ||
| 5 | 2011-06-17 Paul Eggert <eggert@cs.ucla.edu> | 8 | 2011-06-17 Paul Eggert <eggert@cs.ucla.edu> |
| @@ -565,8 +565,8 @@ concat (ptrdiff_t nargs, Lisp_Object *args, | |||
| 565 | } | 565 | } |
| 566 | 566 | ||
| 567 | result_len += len; | 567 | result_len += len; |
| 568 | if (result_len < 0) | 568 | if (STRING_BYTES_BOUND < result_len) |
| 569 | error ("String overflow"); | 569 | string_overflow (); |
| 570 | } | 570 | } |
| 571 | 571 | ||
| 572 | if (! some_multibyte) | 572 | if (! some_multibyte) |