[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Emacs-diffs] master ae06341: Fix string-to-number C-level mishandling
From: |
Paul Eggert |
Subject: |
[Emacs-diffs] master ae06341: Fix string-to-number C-level mishandling |
Date: |
Fri, 9 Mar 2018 15:08:52 -0500 (EST) |
branch: master
commit ae0634148e0a6242067c98260721be032bca283f
Author: Paul Eggert <address@hidden>
Commit: Paul Eggert <address@hidden>
Fix string-to-number C-level mishandling
* src/sysdep.c (list_system_processes):
* src/xfaces.c (Finternal_set_lisp_face_attribute_from_resource):
Defend against Fstring_to_number returning a float or a nonsense
integer.
---
src/sysdep.c | 6 +++++-
src/xfaces.c | 2 +-
2 files changed, 6 insertions(+), 2 deletions(-)
diff --git a/src/sysdep.c b/src/sysdep.c
index c59034c..1eaf648 100644
--- a/src/sysdep.c
+++ b/src/sysdep.c
@@ -3006,7 +3006,11 @@ list_system_processes (void)
for (tail = proclist; CONSP (tail); tail = next)
{
next = XCDR (tail);
- XSETCAR (tail, Fstring_to_number (XCAR (tail), Qnil));
+ Lisp_Object pidstring = XCAR (tail);
+ Lisp_Object pid = Fstring_to_number (pidstring, Qnil);
+ if (!INTEGERP (pid) || XINT (pid) <= 0)
+ xsignal1 (Qoverflow_error, pidstring);
+ XSETCAR (tail, pid);
}
/* directory_files_internal returns the files in reverse order; undo
diff --git a/src/xfaces.c b/src/xfaces.c
index 77afee4..56df065 100644
--- a/src/xfaces.c
+++ b/src/xfaces.c
@@ -3393,7 +3393,7 @@ DEFUN ("internal-set-lisp-face-attribute-from-resource",
else if (EQ (attr, QCheight))
{
value = Fstring_to_number (value, make_number (10));
- if (XINT (value) <= 0)
+ if (!INTEGERP (value) || XINT (value) <= 0)
signal_error ("Invalid face height from X resource", value);
}
else if (EQ (attr, QCbold) || EQ (attr, QCitalic))
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Emacs-diffs] master ae06341: Fix string-to-number C-level mishandling,
Paul Eggert <=