* filesys.c (set_element, get_element): Make sure that `element'
authorJim Blandy <jimb@red-bean.com>
Mon, 19 Oct 1998 12:15:46 +0000 (12:15 +0000)
committerJim Blandy <jimb@red-bean.com>
Mon, 19 Oct 1998 12:15:46 +0000 (12:15 +0000)
is a cell before applying SCM_FPORTP to it.  (Thanks to Jost
Boekemeier and Jorgen "forcer" Schaefer.)

libguile/filesys.c

index e23aaae..43c0466 100644 (file)
@@ -816,7 +816,7 @@ set_element (SELECT_TYPE *set, SCM element, int arg)
 {
   int fd;
   element = SCM_COERCE_OUTPORT (element);
-  if (SCM_FPORTP (element) && SCM_OPPORTP (element))
+  if (SCM_NIMP (element) && SCM_FPORTP (element) && SCM_OPPORTP (element))
     fd = fileno ((FILE *) SCM_STREAM (element));
   else {
     SCM_ASSERT (SCM_INUMP (element), element, arg, s_select);
@@ -861,7 +861,7 @@ static SCM
 get_element (SELECT_TYPE *set, SCM element, SCM list)
 {
   element = SCM_COERCE_OUTPORT (element);
-  if (SCM_FPORTP (element) && SCM_OPPORTP (element))
+  if (SCM_NIMP (element) && SCM_FPORTP (element) && SCM_OPPORTP (element))
     {
       if (FD_ISSET (fileno ((FILE *)SCM_STREAM (element)), set))
        list = scm_cons (element, list);