ChangeLog revision 186691
12008-08-30 12:54  Christos Zoulas <christos@astron.com>
2
3	* Don't eat trailing \n in magic enties.
4
5	* Cast defines to allow compilation using a c++ compiler.
6
72008-07-26 00:59  Reuben Thomas  <rrt@sc3d.org>
8
9	* Add MIME types for special files.
10
11	* Use access to give more accurate information for files that
12	  can't be opened.
13
14	* Add a TODO list.
15
162008-07-02 11:15  Christos Zoulas  <christos@astron.com>
17
18	* add !:strength op to adjust magic strength (experimental)
19
202008-06-16 21:41  Reuben Thomas  <rrt@sc3d.org>
21
22	* Fix automake error in configure.ac.
23
24	* Add MIME type for Psion Sketch files.
25
262008-06-05 08:59  Christos Zoulas  <christos@astron.com>
27
28	* Don't print warnings about bad namesize in stripped
29	  binaries with PT_NOTE is still there, and the actual
30	  note is gone (Jakub Jelinek)
31
322008-05-28 15:12  Robert Byrnes  <byrnes@wildpumpkin.net>
33
34	* magic/Magdir/elf:
35	  Note invalid byte order for little-endian SPARC32PLUS.
36	  Add SPARC V9 vendor extensions and memory model.
37
38	* src/elfclass.h:
39	  Pass target machine to doshn (for Solaris hardware capabilities).
40
41	* src/readelf.c (doshn):
42	  Add support for Solaris hardware/software capabilities.
43
44	* src/readelf.h:
45	  Ditto.
46
47	* src/vasprintf.c (dispatch):
48	  Add support for ll modifier.
49
502008-05-16 10:25  Christos Zoulas  <christos@astron.com>
51
52	* Fix compiler warnings.
53
54	* remove stray printf, and fix a vprintf bug. (Martin Dorey)
55
562008-05-06 00:13  Robert Byrnes  <byrnes@wildpumpkin.net>
57
58        * src/Makefile.am:
59	  Ensure that getopt_long and [v]asprintf are included in libmagic,
60	  as needed.
61
62	  Remove unnecessary EXTRA_DIST.
63
64        * src/Makefile.in:
65	  Rerun automake.
66
67        * src/vasprintf.c (dispatch):
68	  Fix variable precision bug: be sure to step past '*'.
69
70        * src/vasprintf.c (core):
71	  Remove unreachable code.
72
73        * src/apprentice.c (set_test_type):
74	  Add cast to avoid compiler warning.
75
762008-04-22 23:45  Christos Zoulas  <christos@astron.com>
77
78	* Add magic submission guidelines (Abel Cheung)
79
80	* split msdos and windows magic (Abel Cheung)
81
822008-04-04 11:00  Christos Zoulas  <christos@astron.com>
83
84        * >= <= is not supported, so fix the magic and warn about it.
85	  reported by: Thien-Thi Nguyen <ttn@gnuvola.org>
86
872008-03-27 16:16  Robert Byrnes  <byrnes@wildpumpkin.net>
88
89        * src/readelf.c (donote):
90	  ELF core file command name/line bug fixes and enhancements:
91
92	  Try larger offsets first to avoid false matches
93	  from earlier data that happen to look like strings;
94	  this primarily affected SunOS 5.x 32-bit Intel core files.
95
96	  Add support for command line (instead of just short name)
97	  for SunOS 5.x.
98
99	  Add information about NT_PSINFO for SunOS 5.x.
100
101	  Only trim whitespace from end of command line.
102
1032007-02-11 01:36 Reuben Thomas <rrt@sc3d.org>
104
105	* Change strength of ! from MULT to 0, as it matches almost
106		  anything (Reuben Thomas)
107
108	* Debian fixes (Reuben Thomas)
109
1102007-02-11 00:17 Reuben Thomas <rrt@sc3d.org>
111
112	* Clarify UTF-8 BOM message (Reuben Thomas)
113
114	* Add HTML comment to token list in names.h
115	
1162007-02-04 15:50 Christos Zoulas <christos@astron.com>
117
118	* Debian fixes (Reuben Thomas)
119
1202007-02-04 11:31 Christos Zoulas <christos@astron.com>
121
122	* !:mime annotations in magic files (Reuben Thomas)
123
1242007-01-29 15:35 Christos Zoulas <christos@astron.com>
125
126	* zero out utime/utimes structs (Gavin Atkinson)
127
1282007-01-26 13:45 Christos Zoulas <christos@astron.com>
129
130	* reduce writable data from Diego "Flameeyes" Petten
131
1322007-12-28 15:06 Christos Zoulas <christos@astron.com>
133
134	* strtof detection
135
136	* remove bogus regex magic that could cause a DoS
137
138	* better mismatch version message
139
1402007-12-27 11:35 Christos Zoulas <christos@astron.com>
141
142	* bring back some fixes from OpenBSD
143
144	* treat ELF dynamic objects as executables
145
146	* fix gcc warnings
147
1482007-12-01 19:55 Christos Zoulas <christos@astron.com>
149
150	* make sure we have zlib.h and libz to compile the builtin
151	  decompress code
152
1532007-10-28 20:48 Christos Zoulas <christos@astron.com>
154
155 	* float and double magic support (Behan Webster) 
156
1572007-10-28 20:48 Christos Zoulas <christos@astron.com>
158
159	* Convert fortran to a soft test (Reuben Thomas)
160
1612007-10-23  5:25 Christos Zoulas <christos@astron.com>
162
163	* Add --with-filename, and --no-filename (Reuben Thomas)
164
1652007-10-23  3:59 Christos Zoulas <christos@astron.com>
166
167	* Rest of the mime split (Reuben Thomas)
168
169	* Make usage message generated from the flags so that
170	  they stay consistent (Reuben Thomas)
171
1722007-10-20  3:06 Christos Zoulas <christos@astron.com>
173
174	* typo in comment, missing ifdef QUICK, remove unneeded code
175		(Charles Longeau)
176
1772007-10-17  3:33 Christos Zoulas <christos@astron.com>
178
179	* Fix problem printing -\012 in some entries
180
181	* Separate magic type and encoding flags (Reuben Thomas)
182
1832007-10-09  3:55 Christos Zoulas <christos@astron.com>
184
185	* configure fix for int64 and strndup (Reuben Thomas)
186
1872007-09-26  4:45 Christos Zoulas <christos@astron.com>
188
189	* Add magic_descriptor() function.
190
191	* Fix regression in elf reading code where the core name was
192	  not being printed.
193
194	* Don't convert NUL's to spaces in {l,b}estring16 (Daniel Dawson)
195
1962007-08-19  6:30 Christos Zoulas <christos@astron.com>
197
198	* Make mime format consistent so that it can
199	  be easily parsed:
200	      mimetype [charset=character-set] [encoding=encoding-mime-type]
201
202	  Remove spurious extra text from some MIME type printouts 
203	  (mostly in is_tar).
204
205	  Fix one case where -i produced nothing at all (for a 1-byte file,
206	  which is now classed as application/octet-stream).
207
208	  Remove 7/8bit classifications, since they were arbitrary
209	  and not based on the file data.
210
211	  This work was done by Reuben Thomas
212
2132007-05-24 10:00 Christos Zoulas <christos@astron.com>
214
215	* Fix another integer overflow (Colin Percival)
216
2172007-03-26 13:58 Christos Zoulas <christos@astron.com>
218
219	* make sure that all of struct magic_set is initialized appropriately
220	  (Brett)
221
2222007-03-25 17:44 Christos Zoulas <christos@astron.com>
223
224	* reset left bytes in the buffer (Dmitry V. Levin)
225
226	* compilation failed with COMPILE_ONLY and ENABLE_CONDITIONALS
227	  (Peter Avalos)
228
2292007-03-15 10:51 Christos Zoulas <christos@astron.com>
230
231	* fix fortran and nroff reversed tests (Dmitry V. Levin)
232	
233	* fix exclude option (Dmitry V. Levin)
234
2352007-02-08 17:30 Christos Zoulas <christos@astron.com>
236
237	* fix integer underflow in file_printf which can lead to
238	  to exploitable heap overflow (Jean-Sebastien Guay-Lero)
239
2402007-02-05 11:35 Christos Zoulas <christos@astron.com>
241
242	* make socket/pipe reading more robust
243
2442007-01-25 16:01 Christos Zoulas <christos@astron.com>
245
246	* Centralize all the tests in file_buffer.
247
248	* Add exclude flag.
249
2502007-01-18 05:29 Anon Ymous <do@not.spam.me>
251	
252	* Move the "type" detection code from parse() into its own table
253	  driven routine.  This avoids maintaining multiple lists in
254	  file.h.
255
256	* Add an optional conditional field (ust before the type field).
257	  This code is wrapped in "#ifdef ENABLE_CONDITIONALS" as it is
258	  likely to go away.
259	
2602007-01-16 23:24 Anon Ymous <do@not.spam.me>
261
262	* Fix an initialization bug in check_mem().
263
2642007-01-16 14:58 Anon Ymous <do@not.spam.me>
265
266	* Add a "default" type to print a message if nothing previously
267	  matched at that level or since the last default at that
268	  level.  This is useful for setting up switch-like statements.
269	  It can also be used to do if/else constructions without a
270	  redundant second test.
271
272	* Fix the "x" special case test so that one can test for that
273	  string with "=x".
274
275	* Allow "search" to search the entire buffer if the "/N"
276	  search count is missing.
277
278	* Make "regex" work!  It now starts its search at the
279	  specified offset and takes an (optional) "/N" line count to
280	  specify the search range; otherwise it searches to the end
281	  of the file.  The match is now grabbed correctly for format
282	  strings and the offset set to the end of the match.
283
284	* Add a "/s" flag to "regex" and "search" to set the offset to
285	  the start of the match.  By default the offset is set to the
286	  end of the match, as it is with other tests.  This is mostly
287	  useful for "regex".
288
289	* Make "search", "string" and "pstring" use the same
290	  file_strncmp() routine so that they support the same flags;
291	  "bestring16" and "lestring16" call the same routine, but
292	  with flags = 0.  Also add a "/C" flag (in analogy to "/c")
293	  to ignore the case on uppercase (lowercase) characters in
294	  the test string.
295
296	* Strict adherence to C style string escapes.  A warnings are
297	  printed when compiling.  Note: previously "\a" was
298	  incorrectly translated to 'a' instead of an <alert> (i.e.,
299	  BELL, typically 0x07).
300
301	* Make this compile with "-Wall -Wextra" and all the warning
302	  flags used with WARNS=4 in the NetBSD source.  Also make it
303	  pass lint.
304
305	* Many "cleanups" and hopefully not too many new bugs!
306
3072007-01-16 14:56 Anon Ymous <do@not.spam.me>
308
309	* make several more files compile with gcc warnings
310	  on and also make them pass lint.
311
3122007-01-16 14:54 Anon Ymous <do@not.spam.me>
313
314	* fix a puts()/putc() usage goof in file.c
315
316	* make file.c compile with gcc warnings and pass lint
317
3182006-12-11 16:49 Christos Zoulas <christos@astron.com>
319
320	* fix byteswapping issue
321
322	* report the number of bytes we tried to
323	  allocate when allocation fails
324
325	* add a few missed cases in the strength routine
326
3272006-12-08 16:32 Christos Zoulas <christos@astron.com>
328
329	* store and print the line number of the magic
330	  entry for debugging.         
331
332	* if the magic entry did not print anything,
333	  don't treat it as a match
334
335	* change the magic strength algorithm to take
336	  into account the relationship op.
337
338	* fix a bug in search where we could accidentally
339	  return a match.
340
341	* propagate the error return from match to
342	  file_softmagic.
343
3442006-11-25 13:35 Christos Zoulas <christos@astron.com>
345	
346	* Don't store the current offset in the magic
347	  struct, because it needs to be restored and
348	  it was not done properly all the time. Bug
349	  found by: Arkadiusz Miskiewicz
350
351	* Fix problem in the '\0' separator; and don't
352	  print it as an additional separator; print
353	  it as the only separator.
354
3552006-11-17 10:51 Christos Zoulas <christos@astron.com>
356
357	* Added a -0 option to print a '\0' separator
358	  Etienne Buira <etienne.buira@free.fr>
359
3602006-10-31 15:14 Christos Zoulas <christos@astron.com>
361
362	* Check offset before copying (Mike Frysinger)
363
364	* merge duplicated code
365
366	* add quad date support
367
368	* make sure that we nul terminate desc (Ryoji Kanai)
369
370	* don't process elf notes multiple times
371
372	* allow -z to report empty compressed files
373
374	* use calloc to initialize the ascii buffers (Jos van den Oever)
375
3762006-06-08 11:11 Christos Zoulas <christos@astron.com>
377
378	* QNX fixes (Mike Gorchak)
379
380	* Add quad support.
381
382	* FIFO checks (Dr. Werner Fink)
383
384	* Linux ELF fixes (Dr. Werner Fink)
385
386	* Magic format checks (Dr. Werner Fink)
387
388	* Magic format function improvent (Karl Chen)
389
3902006-05-03 11:11 Christos Zoulas <christos@astron.com>
391
392	* Pick up some elf changes and some constant fixes from SUSE
393
394	* Identify gnu tar vs. posix tar
395
396	* When keep going, don't print spurious newlines (Radek Vok�l)
397
3982006-04-01 12:02 Christos Zoulas <christos@astron.com>
399
400	* Use calloc instead of malloc (Mike Frysinger)
401
402	* Fix configure script to detect wctypes.h (Mike Frysinger)
403
4042006-03-02 16:06 Christos Zoulas <christos@astron.com>
405
406	* Print empty if the file is (Mike Frysinger)
407
408	* Don't try to read past the end of the buffer (Mike Frysinger)
409
410	* Sort magic entries by strength [experimental]
411
4122005-11-29 13:26 Christos Zoulas <christos@astron.com>
413
414	* Use iswprint() to convert the output string.
415	    (Bastien Nocera)
416
4172005-10-31 8:54 Christos Zoulas <christos@astron.com>
418
419	* Fix regression where the core info was not completely processed
420	    (Radek Vok�l)
421
4222005-10-20 11:15 Christos Zoulas <christos@astron.com>
423
424	* Middle Endian magic (Diomidis Spinellis)
425
4262005-10-17 11:15 Christos Zoulas <christos@astron.com>
427
428	* Open with O_BINARY for CYGWIN (Corinna Vinschen)
429
430	* Don't close stdin (Arkadiusz Miskiewicz)
431
432	* Look for note sections in non executables.
433
4342005-09-20 13:33 Christos Zoulas <christos@astron.com>
435	
436	* Don't print SVR4 Style in core files multiple times
437	    (Radek Vok�l)
438
4392005-08-27 04:09 Christos Zoulas <christos@astron.com>
440
441	* Cygwin changes Corinna Vinschen
442
4432005-08-18 09:53 Christos Zoulas <christos@astron.com>
444
445	* Remove erroreous mention of /etc/magic in the file man page
446	  This is gentoo bug 101639. (Mike Frysinger) 
447
448	* Cross-compile support and detection (Mike Frysinger) 
449
4502005-08-12 10:17 Christos Zoulas <christos@astron.com>
451
452	* Add -h flag and dereference symlinks if POSIXLY_CORRECT
453	  is set.
454
4552005-07-29 13:57 Christos Zoulas <christos@astron.com>
456
457	* Avoid search and regex buffer overflows (Kelledin)
458
4592005-07-12 11:48 Christos Zoulas <christos@astron.com>
460
461	* Provide stub implementations for {v,}nsprintf() for older
462	  OS's that don't have them.
463	* Change mbstate_t autoconf detection macro from AC_MBSTATE_T
464	  to AC_TYPE_MBSTATE_T.
465
4662005-06-25 11:48 Christos Zoulas <christos@astron.com>
467
468	* Dynamically allocate the string buffers and make the
469	  default read size 256K.
470
4712005-06-01 00:00 Joerg Sonnenberger <joerg@britannica.bec.de>
472
473	* Dragonfly ELF note support
474
4752005-03-14 00:00 Giuliano Bertoletti <gb@symbolic.it>
476
477	* Avoid NULL pointer dereference in time conversion.
478
4792005-03-06 00:00  Joerg Walter <jwalt@mail.garni.ch>
480	
481	* Add indirect magic offset support, and search mode.
482
4832005-01-12 00:00  Stepan Kasal  <kasal@ucw.cz>
484
485        * src/ascmagic.c (file_ascmagic): Fix three bugs about text files:
486          If a CRLF text file happens to have CR at offset HOWMANY - 1
487          (currently 0xffff), it should not be counted as CR line
488          terminator.
489          If a line has length exactly MAXLINELEN, it should not yet be
490          treated as a ``very long line'', as MAXLINELEN is ``longest sane
491          line length''.
492          With CRLF, the line length was not computed correctly, and even
493          lines of length MAXLINELEN - 1 were treated as ``very long''.
494
4952004-12-07 14:15  Christos Zoulas  <christos@astron.com>
496
497	* bzip2 needs a lot of input buffer space on some files
498	  before it can begin uncompressing. This makes file -z
499	  fail on some bz2 files. Fix it by giving it a copy of
500	  the file descriptor to read as much as it wants if we
501	  have access to it. <christos@astron.com>
502
5032004-11-24 12:39  Christos Zoulas  <christos@astron.com>
504
505	* Stack smash fix, and ELF more conservative reading.
506	  Jakub Bogusz <qboosh@pld-linux.org>
507
5082004-11-20 18:50  Christos Zoulas  <christos@astron.com>
509
510	* New FreeBSD version parsing code:
511	  Jon Noack <noackjr@alumni.rice.edu>
512
513	* Hackish support for ucs16 strings <christos@astron.com>
514
5152004-11-13 03:07  Christos Zoulas  <christos@astron.com>
516
517	* print the file name and line number in syntax errors.
518
5192004 10-12 10:50  Christos Zoulas  <christos@astron.com>
520
521	* Fix stack overwriting on 0 length strings: Tim Waugh
522	    <twaugh@redhat.com> Ned Ludd <solar@gentoo.org>
523
5242004-09-27 11:30  Christos Zoulas  <christos@astron.com>
525
526	* Remove 3rd and 4th copyright clause; approved by Ian Darwin.
527
528	* Fix small memory leaks; caught by: Tamas Sarlos 
529	    <stamas@csillag.ilab.sztaki.hu>
530
5312004-07-24 16:33  Christos Zoulas  <christos@astron.com>
532
533	* magic.mime update Danny Milosavljevic <danny.milo@gmx.net> 
534
535	* FreeBSD version update Oliver Eikemeier <eikemeier@fillmore-labs.com>
536
537	* utime/utimes detection Ian Lance Taylor <ian@wasabisystems.com>
538
539  	* errors reading elf magic Jakub Bogusz <qboosh@pld-linux.org>
540
5412004-04-12 10:55  Christos Zoulas  <christos@astron.com>
542
543	* make sure that magic formats match magic types during compilation
544
545	* fix broken sgi magic file
546
5472004-04-06 20:36  Christos Zoulas  <christos@astron.com>
548
549	* detect present of mbstate_t Petter Reinholdtsen <pere@hungry.com>
550
551	* magic fixes
552
5532004-03-22 15:25  Christos Zoulas  <christos@astron.com>
554
555	* Lots of mime fixes
556	  (Joerg Ostertag) <ostertag@rechengilde.de>
557
558	* FreeBSD ELF version handling
559	  (Edwin Groothuis) <edwin@mavetju.org>
560
561	* correct cleanup in all cases; don't just close the file.
562	  (Christos Zoulas) <christos@astron.com>
563
564	* add gettext message catalogue support
565	  (Michael Piefel) <piefel@debian.org>
566
567	* better printout for unreadable files
568	  (Michael Piefel) <piefel@debian.org>
569
570	* compensate for missing MAXPATHLEN
571	  (Michael Piefel) <piefel@debian.org>
572
573	* add wide character string length computation
574	  (Michael Piefel) <piefel@debian.org>
575
576	* Avoid infinite loops caused by bad elf alignments
577	  or name and description note sizes. Reported by
578	  (Mikael Magnusson) <mmikael@comhem.se>
579
5802004-03-09 13:55  Christos Zoulas  <christos@astron.com>
581
582	* Fix possible memory leak on error and add missing regfree
583	  (Dmitry V. Levin) <ldv@altlinux.org>
584
5852003-12-23 12:12  Christos Zoulas  <christos@astron.com>
586
587	* fix -k flag (Maciej W. Rozycki)
588
5892003-11-18 14:10  Christos Zoulas  <christos@astron.com>
590
591	* Try to give us much info as possible on corrupt elf files.
592	  (Willy Tarreau) <willy@w.ods.org>
593	* Updated python bindings (Brett Funderburg)
594	   <brettf@deepfile.com>
595
5962003-11-11 15:03  Christos Zoulas  <christos@astron.com>
597
598	* Include file.h first, because it includes config.h
599	  breaks largefile test macros otherwise.
600	  (Paul Eggert <eggert@CS.UCLA.EDU> via
601	   Lars Hecking <lhecking@nmrc.ie>)
602
6032003-10-14 21:39  Christos Zoulas  <christos@astron.com>
604
605	* Python bindings (Brett Funderburg) <brettf@deepfile.com>
606	* Don't lookup past the end of the buffer
607	  (Chad Hanson) <chanson@tcs-sec.com>
608	* Add MAGIC_ERROR and api on magic_errno()
609
6102003-10-08 12:40  Christos Zoulas  <christos@astron.com>
611
612	* handle error conditions from compile as fatal
613	  (Antti Kantee) <pooka@netbsd.org>
614	* handle magic filename parsing sanely
615	* more magic fixes.
616	* fix a memory leak (Illes Marton) <illes.marton@balabit.hu>
617	* describe magic file handling
618	  (Bryan Henderson) <bryanh@giraffe-data.com>
619
6202003-09-12 15:09  Christos Zoulas  <christos@astron.com>
621
622	* update magic files.
623	* remove largefile support from file.h; it breaks things on most OS's
624
6252003-08-10 10:25  Christos Zoulas  <christos@astron.com>
626
627	* fix unmapping'ing of mmaped files.
628
6292003-07-10 12:03  Christos Zoulas  <christos@astron.com>
630
631	* don't exit with -1 on error; always exit 1 (Marty Leisner)
632	* restore utimes code.
633
6342003-06-10 17:03  Christos Zoulas  <christos@astron.com>
635
636	* make sure we don't access uninitialized memory.
637	* pass lint
638	* #ifdef __cplusplus in magic.h
639
6402003-05-25 19:23  Christos Zoulas  <christos@astron.com>
641
642	* rename cvs magic file to revision to deal with
643	  case insensitive filesystems.
644
6452003-05-23 17:03  Christos Zoulas  <christos@astron.com>
646
647	* documentation fixes from Michael Piefel <piefel@debian.org>
648	* magic fixes (various)
649	* revert basename magic in .mgc name determination
650	* buffer protection in uncompress,
651	  signness issues,
652	  close files
653	  Maciej W. Rozycki <macro@ds2.pg.gda.pl
654
6552003-04-21 20:12  Christos Zoulas  <christos@astron.com>
656
657	* fix zsh magic
658
6592003-04-04 16:59  Christos Zoulas  <christos@astron.com>
660
661	* fix operand sort order in string.
662
6632003-04-02 17:30  Christos Zoulas  <christos@astron.com>
664
665	* cleanup namespace in magic.h
666
6672003-04-02 13:50  Christos Zoulas  <christos@astron.com>
668
669	* Magic additions (Alex Ott)
670	* Fix bug that broke VPATH compilation (Peter Breitenlohner)
671
6722003-03-28 16:03  Christos Zoulas  <christos@astron.com>
673
674	* remove packed attribute from magic struct.
675	* make the magic struct properly aligned.
676	* bump version number of compiled files to 2.
677
6782003-03-27 13:10  Christos Zoulas  <christos@astron.com>
679
680	* separate tar detection and run it before softmagic.
681	* fix reversed symlink test.
682	* fix version printing.
683	* make separator a string instead of a char.
684	* update manual page and sort options.
685
6862003-03-26 11:00  Christos Zoulas  <christos@astron.com>
687
688	* Pass lint
689	* make NULL in magic_file mean stdin
690	* Fix "-" argument to file to pass NULL to magic_file
691	* avoid pointer casts by using memcpy
692	* rename magic_buf -> magic_buffer
693	* keep only the first error
694	* manual page: new sentence, new line
695	* fix typo in api function (magic_buf -> magic_buffer)
696