Fix bug: FILE-LENGTH generated a SIGSEGV when the file didn't exist.
authorChris Hanson <org/chris-hanson/cph>
Thu, 31 Mar 2005 05:08:51 +0000 (05:08 +0000)
committerChris Hanson <org/chris-hanson/cph>
Thu, 31 Mar 2005 05:08:51 +0000 (05:08 +0000)
v7/src/runtime/unxprm.scm

index 91539ac8d696b529b2581e17fa8420ecd785f123..aed3bd8cd3d2577c45f9ef6b6ed4231e1d656239 100644 (file)
@@ -1,6 +1,6 @@
 #| -*-Scheme-*-
 
-$Id: unxprm.scm,v 1.71 2005/03/31 05:06:59 cph Exp $
+$Id: unxprm.scm,v 1.72 2005/03/31 05:08:51 cph Exp $
 
 Copyright 1988,1989,1990,1991,1992,1993 Massachusetts Institute of Technology
 Copyright 1994,1995,1997,1998,1999,2000 Massachusetts Institute of Technology
@@ -117,8 +117,9 @@ USA.
 
 (define (file-length filename)
   (let ((attrs (file-attributes-direct filename)))
-    (and attrs
-        (file-attributes/length attrs))))
+    (if (not attrs)
+       (error:bad-range-argument filename 'FILE-LENGTH))
+    (file-attributes/length attrs)))
 
 (define (file-modification-time-direct filename)
   ((ucode-primitive file-mod-time 1)