bug-guile
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

bug#18065: guile hangs if strerror is called with invalid (non-int) argu


From: Glenn Michaels
Subject: bug#18065: guile hangs if strerror is called with invalid (non-int) argument
Date: Sun, 20 Jul 2014 11:25:11 -0400

Calling strerror with a non-integer argument causes guile to hang.
e.g.:

(strerror 1.5)

It's a locking issue, which is solved by the following trivial patch:

--- a/libguile/error.c
+++ b/libguile/error.c
@@ -121,10 +121,12 @@ SCM_DEFINE (scm_strerror, "strerror", 1, 0, 0,
 #define FUNC_NAME s_scm_strerror
 {
   SCM ret;
+  int errnum;
   scm_dynwind_begin (0);
+  errnum = scm_to_int (err);
   scm_i_dynwind_pthread_mutex_lock (&scm_i_misc_mutex);
 
-  ret = scm_from_locale_string (strerror (scm_to_int (err)));
+  ret = scm_from_locale_string (strerror (errnum));
 
   scm_dynwind_end ();
   return ret;





reply via email to

[Prev in Thread] Current Thread [Next in Thread]