aboutsummaryrefslogtreecommitdiffstats
path: root/src/sysdep.c
diff options
context:
space:
mode:
authorPaul Eggert2018-03-09 12:06:05 -0800
committerPaul Eggert2018-03-09 12:08:48 -0800
commitae0634148e0a6242067c98260721be032bca283f (patch)
treeb1ad657888a3b822a5702a2a736bf21938e2492a /src/sysdep.c
parent94a59a6d8377db809b395175f7dbb81e8325dcf2 (diff)
downloademacs-ae0634148e0a6242067c98260721be032bca283f.tar.gz
emacs-ae0634148e0a6242067c98260721be032bca283f.zip
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.
Diffstat (limited to 'src/sysdep.c')
-rw-r--r--src/sysdep.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/src/sysdep.c b/src/sysdep.c
index c59034ce5c3..1eaf648ea78 100644
--- a/src/sysdep.c
+++ b/src/sysdep.c
@@ -3006,7 +3006,11 @@ list_system_processes (void)
3006 for (tail = proclist; CONSP (tail); tail = next) 3006 for (tail = proclist; CONSP (tail); tail = next)
3007 { 3007 {
3008 next = XCDR (tail); 3008 next = XCDR (tail);
3009 XSETCAR (tail, Fstring_to_number (XCAR (tail), Qnil)); 3009 Lisp_Object pidstring = XCAR (tail);
3010 Lisp_Object pid = Fstring_to_number (pidstring, Qnil);
3011 if (!INTEGERP (pid) || XINT (pid) <= 0)
3012 xsignal1 (Qoverflow_error, pidstring);
3013 XSETCAR (tail, pid);
3010 } 3014 }
3011 3015
3012 /* directory_files_internal returns the files in reverse order; undo 3016 /* directory_files_internal returns the files in reverse order; undo