Hi! On Wed, 20 Nov 2002, Pavel Roskin wrote:
> > Here is a small patch I needed to display one particular archive > > contents without errors. If it is convenient to neglect errors like weird > > dates then it can be usefull. Maybe even the other archive scripts should > > have such checks? What do you think? > ... > My suspicion is that the problem is not specific to that archive. Maybe > the months are displayed in some other language, or something like that. The problem is the archive. It is Atari ST filesystem (according to the unzip -Zv) entry. Atari ST computers didn't have the real time clock backup so that the clock sets some weird date after switch off/on of the machine. User needed to set it up manually by themselves. I simply checked the month (in the wrong entries - 015) to the range it should be. IIRC ST displays the Dec 31 2028. Actuall there is the date stamp like 0xffff ( => year = 0x7f+1980, mon = 0xf, day = 0x1f ) and this is exactly what is happening here. The only value that can be wrong here (at least for unzip executables - studying its sources) is the month number so the sanity range shrinkage is IMO ok here. And maybe there should be the same (range) checks also for the year, date and other data? best regards STan PS: Here are the snippets: $ unzip -Z MagiC_61_Atari.zip Archive: MagiC_61_Atari.zip 851674 bytes 85 files -rwxrwxrwx 2.0 atr 9092 b- defN 31-015-07 31:23 MAGX_1/_COPY/GEMSYS/OFF65KPK.OSD -rwxrwxrwx 2.0 atr 10045 b- defN 31-015-07 31:23 MAGX_1/_COPY/GEMSYS/OFF32KPK.OSD -rwxrwxrwx 2.0 atr 8787 b- defN 9-Apr-01 01:28 MAGX_1/_COPY/GEMSYS/OFF32KFL.OSD -rwxrwxrwx 2.0 atr 17482 b- defN 9-Apr-01 01:28 MAGX_1/_COPY/GEMSYS/OFF256PK.OSD $ perl /tmp/uzip list MagiC_61_Atari.zip 2>/dev/null Use of uninitialized value in printf at /tmp/uzip line 288. -rw-r--r-- 1 644 100 9092 31 2107 31:23 MAGX_1/_COPY/GEMSYS/OFF65KPK.OSD Use of uninitialized value in printf at /tmp/uzip line 288. -rw-r--r-- 1 644 100 10045 31 2107 31:23 MAGX_1/_COPY/GEMSYS/OFF32KPK.OSD -rw-r--r-- 1 644 100 8787 Apr 09 2001 01:28 MAGX_1/_COPY/GEMSYS/OFF32KFL.OSD -rw-r--r-- 1 644 100 17482 Apr 09 2001 01:28 MAGX_1/_COPY/GEMSYS/OFF256PK.OSD $ perl /tmp/uzip-fixed list MagiC_61_Atari.zip -rw-r--r-- 1 644 100 9092 Dec 31 2107 31:23 MAGX_1/_COPY/GEMSYS/OFF65KPK.OSD -rw-r--r-- 1 644 100 10045 Dec 31 2107 31:23 MAGX_1/_COPY/GEMSYS/OFF32KPK.OSD -rw-r--r-- 1 644 100 8787 Apr 09 2001 01:28 MAGX_1/_COPY/GEMSYS/OFF32KFL.OSD -rw-r--r-- 1 644 100 17482 Apr 09 2001 01:28 MAGX_1/_COPY/GEMSYS/OFF256PK.OSD $ "extract from" zipinfo.c { yr = ((unsigned)(*datetimez >> 25) & 0x7f) + 80; mo = ((unsigned)(*datetimez >> 21) & 0x0f); dy = ((unsigned)(*datetimez >> 16) & 0x1f); hh = (((unsigned)*datetimez >> 11) & 0x1f); mm = (((unsigned)*datetimez >> 5) & 0x3f); ss = (((unsigned)*datetimez << 1) & 0x3e); } _______________________________________________ Mc-devel mailing list [EMAIL PROTECTED] http://mail.gnome.org/mailman/listinfo/mc-devel