Work at SourceForge, help us to make it a better place! We have an immediate need for a Support Technician in our San Francisco or Denver office.

Close

#581 OS:FILE-INFO crashes when file's times are corrupted

segfault
closed-fixed
clisp (525)
5
2011-01-12
2010-12-26
Timofei Shatrov
No

I have a DIY file synchronisation script that worked fine under CLISP 2.47 but would randomly crash under CLISP 2.48 and later. I tracked this down to a particular file. (OS:FILE-INFO this-file) would completely crash CLISP. The file looked pretty normal until I noticed that its "modified date" was somehow set to 1 January of 2098. I downloaded a program called SetFileDate, set modified date to today, and voila, OS:FILE-INFO no longer crashes on it.

Still, while my data was possibly corrupt, it shouldn't result in CLISP outright crashing, and it didn't in 2.47.

My OS: Windows XP SP3
>clisp.exe --version
GNU CLISP 2.49 (2010-07-07) (built on STSst063.jenty.by [150.0.0.63])
Software: GNU C 3.4.5 (mingw-vista special r3)
gcc -mno-cygwin -O2 -W -Wswitch -Wcomment -Wpointer-arith -Wimplicit -Wreturn-ty
pe -Wmissing-declarations -Wno-sign-compare -Wno-format-nonliteral -O2 -fexpensi
ve-optimizations -falign-functions=4 -D_WIN32 -DENABLE_UNICODE -I/usr/local/incl
ude -DDYNAMIC_FFI -DNO_READLINE -DNO_GETTEXT -I. -L/usr/local/lib -ltermcap /us
r/local/lib/libavcall.a /usr/local/lib/libcallback.a -luser32 -lws2_32 -lole32 -
loleaut32 -luuid -L/usr/local/lib -lsigsegv libgnu_cl.a
SAFETY=0 HEAPCODES STANDARD_HEAPCODES GENERATIONAL_GC SPVW_BLOCKS SPVW_MIXED TRI
VIALMAP_MEMORY
libsigsegv 2.8
Features:
(REGEXP SYSCALLS I18N LOOP COMPILER CLOS MOP CLISP ANSI-CL COMMON-LISP LISP=CL
INTERPRETER SOCKETS GENERIC-STREAMS LOGICAL-PATHNAMES SCREEN FFI UNICODE
BASE-CHAR=CHARACTER PC386 WIN32)
C Modules: (clisp i18n syscalls regexp)
User language: ENGLISH
Machine: PC/386 (PC/686)

Discussion

  • Sam Steingold
    Sam Steingold
    2010-12-26

    • assigned_to: haible --> ampy
     
  • Sam Steingold
    Sam Steingold
    2010-12-26

    it would be nice if you could build clisp with debug symbols (see the FAQ) and attached the backtrace.
    also, I think you can use (set-file-stat "file" :mtime ....) instead of the SetFileDate program.

     
  • Not quite a segfault - it's numeric overflow. I think I've fixed it.

     
    • status: open --> pending-fixed
     
    • status: pending-fixed --> closed-fixed
     
  • This Tracker item was closed automatically by the system. It was
    previously set to a Pending status, and the original submitter
    did not respond within 14 days (the time period specified by
    the administrator of this Tracker).