diff options
| author | Paul Eggert | 2011-05-15 22:08:59 -0700 |
|---|---|---|
| committer | Paul Eggert | 2011-05-15 22:08:59 -0700 |
| commit | 2b4560a850d2ea0767d0a3c4db19e4468f61b4eb (patch) | |
| tree | ca99d199897a9289dfff5a1f492341402d79ae69 /src/character.h | |
| parent | cb93f9bef01e95b17b3d7b8786c103505355d98c (diff) | |
| download | emacs-2b4560a850d2ea0767d0a3c4db19e4468f61b4eb.tar.gz emacs-2b4560a850d2ea0767d0a3c4db19e4468f61b4eb.zip | |
* character.c (lisp_string_width): Check for string overflow.
Use EMACS_INT, not int, for string indexes and lengths; in
particular, 2nd arg is now EMACS_INT, not int. Do not crash if
the resulting string length overflows an EMACS_INT; instead,
report a string overflow if no precision given. When checking for
precision exhaustion, use a check that cannot possibly have
integer overflow. (Bug#8675)
* character.h (lisp_string_width): Adjust to new signature.
Diffstat (limited to 'src/character.h')
| -rw-r--r-- | src/character.h | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/src/character.h b/src/character.h index 864882db7f6..5877d145d9e 100644 --- a/src/character.h +++ b/src/character.h | |||
| @@ -612,7 +612,7 @@ extern EMACS_INT str_to_unibyte (const unsigned char *, unsigned char *, | |||
| 612 | extern EMACS_INT strwidth (const char *, EMACS_INT); | 612 | extern EMACS_INT strwidth (const char *, EMACS_INT); |
| 613 | extern EMACS_INT c_string_width (const unsigned char *, EMACS_INT, int, | 613 | extern EMACS_INT c_string_width (const unsigned char *, EMACS_INT, int, |
| 614 | EMACS_INT *, EMACS_INT *); | 614 | EMACS_INT *, EMACS_INT *); |
| 615 | extern EMACS_INT lisp_string_width (Lisp_Object, int, | 615 | extern EMACS_INT lisp_string_width (Lisp_Object, EMACS_INT, |
| 616 | EMACS_INT *, EMACS_INT *); | 616 | EMACS_INT *, EMACS_INT *); |
| 617 | 617 | ||
| 618 | extern Lisp_Object Qcharacterp; | 618 | extern Lisp_Object Qcharacterp; |