* src/fns.c (Flocale_info): Avoid fixnum overflow under ASan.
This commit is contained in:
parent
7d8548a011
commit
66839a74bb
1 changed files with 8 additions and 2 deletions
10
src/fns.c
10
src/fns.c
|
@ -3176,8 +3176,14 @@ The data read from the system are decoded using `locale-coding-system'. */)
|
|||
# endif
|
||||
# ifdef HAVE_LANGINFO__NL_PAPER_WIDTH
|
||||
if (EQ (item, Qpaper))
|
||||
return list2i ((intptr_t) nl_langinfo (_NL_PAPER_WIDTH),
|
||||
(intptr_t) nl_langinfo (_NL_PAPER_HEIGHT));
|
||||
/* We have to cast twice here: first to a correctly-sized integer,
|
||||
then to int, because that's what nl_langinfo is documented to
|
||||
return for _NO_PAPER_{WIDTH,HEIGHT}. The first cast doesn't
|
||||
suffice because it could overflow an Emacs fixnum. This can
|
||||
happen when running under ASan, which fills allocated but
|
||||
uninitialized memory with 0xBE bytes. */
|
||||
return list2i ((int) (intptr_t) nl_langinfo (_NL_PAPER_WIDTH),
|
||||
(int) (intptr_t) nl_langinfo (_NL_PAPER_HEIGHT));
|
||||
# endif
|
||||
#endif /* HAVE_LANGINFO_CODESET*/
|
||||
return Qnil;
|
||||
|
|
Loading…
Add table
Reference in a new issue