xref: /freebsd/contrib/file/ChangeLog (revision 0b57cec536236d46e3dba9bd041533462f33dbb7)
12019-05-14  22:26  Christos Zoulas <christos@zoulas.com>
2
3	* release 5.37
4
52019-05-09  22:27  Christos Zoulas <christos@zoulas.com>
6
7	* Make sure that continuation separators are printed
8	  with -k within softmagic
9
102019-05-06  22:27  Christos Zoulas <christos@zoulas.com>
11
12	* Change SIGPIPE saving and restoring during compression to use
13	  sigaction(2) instead of signal(3) and cache it. (Denys Vlasenko)
14	* Cache stat(2) calls more to reduce number of calls (Denys Vlasenko)
15
162019-05-06  17:25  Christos Zoulas <christos@zoulas.com>
17
18	* PR/77: Handle --mime-type and -k correctly.
19
202019-05-03  15:26  Christos Zoulas <christos@zoulas.com>
21
22	* Switch decompression code to use vfork() because
23	  tools like rpmdiff and rpmbuild call libmagic
24	  with large process footprints (Denys Vlasenko)
25
262019-04-07  14:05  Christos Zoulas <christos@zoulas.com>
27
28	* PR/75: --enable-zlib, did not work.
29
302019-02-27  11:54  Christos Zoulas <christos@zoulas.com>
31
32	* Improve regex efficiency (Michael Schroeder) by:
33		1. Prefixing regex searches with regular search
34		   for keywords where possible
35		2. Using memmem(3) where available
36
372019-02-20  10:16  Christos Zoulas <christos@zoulas.com>
38
39	* release 5.36
40
412019-02-19  15:30  Christos Zoulas <christos@zoulas.com>
42
43	* Fix cast to use cast macros
44	* Add UCS-32 builtin detection (PR/61) reported by tmc
45
462019-02-18  18:24  Christos Zoulas <christos@zoulas.com>
47
48	* Fix stack read (PR/62) and write (PR/64) stack overflows
49	  reported by spinpx
50
512018-10-18  19:32  Christos Zoulas <christos@zoulas.com>
52
53	* release 5.35
54
552018-09-10  20:38  Christos Zoulas <christos@zoulas.com>
56
57	* Add FreeBSD ELF core file support (John Baldwin)
58
592018-08-20  18:40  Christos Zoulas <christos@zoulas.com>
60
61	* PR/30: Allow all parameter values to be set (don't treat 0 specially)
62	* handle default annotations on the softmagic match instead at the
63	  end.
64
652018-07-25  10:17  Christos Zoulas <christos@zoulas.com>
66
67	* PR/23: Recognize JSON files
68
692018-07-25  10:17  Christos Zoulas <christos@zoulas.com>
70
71	* PR/18: file --mime-encoding should not print mime-type
72
732018-07-25   8:50  Christos Zoulas <christos@zoulas.com>
74
75	* release 5.34
76
772018-06-22  16:38  Christos Zoulas <christos@zoulas.com>
78
79	* Add Quad indirect offsets
80
812018-05-24  14:10  Christos Zoulas <christos@zoulas.com>
82
83	* Enable parsing of ELF dynamic sections to handle PIE better
84
852018-04-15  14:52  Christos Zoulas <christos@zoulas.com>
86
87	* release 5.33
88
892018-02-24  14:50  Christos Zoulas <christos@zoulas.com>
90
91	* extend the support for ${x?:} expansions for magic descriptions
92
932018-02-21  16:25  Christos Zoulas <christos@zoulas.com>
94
95	* add support for ${x?:} in mime types to handle
96	  pie binaries.
97
982017-11-03   9:23  Christos Zoulas <christos@zoulas.com>
99
100	* add support for negative offsets (offsets from the end of file)
101
1022017-09-26   8:22  Christos Zoulas <christos@zoulas.com>
103
104	* close the file on error when writing magic (Steve Grubb)
105
1062017-09-24  12:02  Christos Zoulas <christos@zoulas.com>
107
108	* seccomp support (Paul Moore)
109
1102017-09-02  11:53  Christos Zoulas <christos@zoulas.com>
111
112	* release 5.32
113
1142017-08-28  16:37  Christos Zoulas <christos@zoulas.com>
115
116	* Always reset state in {file,buffer}_apprentice (Krzysztof Wilczynski)
117
1182017-08-27  03:55  Christos Zoulas <christos@zoulas.com>
119
120	* Fix always true condition (Thomas Jarosch)
121
1222017-05-24  17:30  Christos Zoulas <christos@zoulas.com>
123
124	* pickier parsing of numeric values in magic files.
125
1262017-05-23  17:55  Christos Zoulas <christos@zoulas.com>
127
128	* PR/615 add magic_getflags()
129
1302017-05-23  13:55  Christos Zoulas <christos@zoulas.com>
131
132	* release 5.31
133
1342017-03-17  20:32  Christos Zoulas <christos@zoulas.com>
135
136	* remove trailing spaces from magic files
137	* refactor is_tar
138	* better bounds checks for cdf
139
1402017-02-10  12:24  Christos Zoulas <christos@zoulas.com>
141
142	* release 5.30
143
1442017-02-07  23:27  Christos Zoulas <christos@zoulas.com>
145
146	* If we exceeded the offset in a search return no match
147	  (Christoph Biedl)
148	* Be more lenient on corrupt CDF files (Christoph Biedl)
149
1502017-02-04  16:46  Christos Zoulas <christos@zoulas.com>
151
152	* pacify ubsan sign extension (oss-fuzz/524)
153
1542017-02-01  12:42  Christos Zoulas <christos@zoulas.com>
155
156	* off by one in cdf parsing (PR/593)
157	* report debugging sections in elf (PR/591)
158
1592016-11-06  10:52  Christos Zoulas <christos@zoulas.com>
160
161	* Allow @@@ in extensions
162	* Add missing overflow check in der magic (Jonas Wagner)
163
1642016-10-25  10:40  Christos Zoulas <christos@zoulas.com>
165
166	* release 5.29
167
1682016-10-24  11:20  Christos Zoulas <christos@zoulas.com>
169
170	* der getlength overflow (Jonas Wagner)
171	* multiple magic file load failure (Christoph Biedl)
172
1732016-10-17  11:26  Christos Zoulas <christos@zoulas.com>
174
175	* CDF parsing improvements (Guy Helmer)
176
1772016-07-20   7:26  Christos Zoulas <christos@zoulas.com>
178
179	* Add support for signed indirect offsets
180
1812016-07-18   7:41  Christos Zoulas <christos@zoulas.com>
182
183	* cat /dev/null | file - should print empty (Christoph Biedl)
184
1852016-07-05  15:20  Christos Zoulas <christos@zoulas.com>
186
187	* Bump string size from 64 to 96.
188
1892016-06-13  20:20  Christos Zoulas <christos@zoulas.com>
190
191	* PR/556: Fix separators on annotations.
192
1932016-06-13  19:40  Christos Zoulas <christos@zoulas.com>
194
195	* release 5.28
196	* fix leak on allocation failure
197
1982016-06-01   1:20  Christos Zoulas <christos@zoulas.com>
199
200	* PR/555: Avoid overflow for offset > nbytes
201	* PR/550: Segv on DER parsing:
202	    - use the correct variable for length
203	    - set offset to 0 on failure.
204
2052016-05-13  12:00  Christos Zoulas <christos@zoulas.com>
206
207	* release 5.27
208
2092016-04-18   9:35  Christos Zoulas <christos@zoulas.com>
210
211	* Errors comparing DER entries or computing offsets
212	  are just indications of malformed non-DER files.
213	  Don't print them.
214	* Offset comparison was off-by-one.
215	* Fix compression code (Werner Fink)
216	* Put new bytes constant in the right file (not the generated one)
217
2182016-04-16  18:34  Christos Zoulas <christos@zoulas.com>
219
220	* release 5.26
221
2222016-03-31  13:50  Christos Zoulas <christos@zoulas.com>
223
224	* make the number of bytes read from files configurable.
225
2262016-03-21  13:40  Christos Zoulas <christos@zoulas.com>
227
228	* Add bounds checks for DER code (discovered by Thomas Jarosch)
229	* Change indirect recursion limit to indirect use count and
230	  bump from 15 to 50 to prevent abuse.
231
2322016-03-13  20:39  Christos Zoulas <christos@zoulas.com>
233
234	* Add -00 which prints filename\0description\0
235
2362016-03-01  13:28  Christos Zoulas <christos@zoulas.com>
237
238	* Fix ID3 indirect parsing
239
2402016-01-19  10:18  Christos Zoulas <christos@zoulas.com>
241
242	* add DER parsing capability
243
2442015-11-13  10:35  Christos Zoulas <christos@zoulas.com>
245
246	* provide dprintf(3) for the OS's that don't have it.
247
2482015-11-11  16:25  Christos Zoulas <christos@zoulas.com>
249
250	* redo the compression code report decompression errors
251
2522015-11-10  23:25  Christos Zoulas <christos@zoulas.com>
253
254	* REG_STARTEND code is not working as expected, delete it.
255
2562015-11-09  16:05  Christos Zoulas <christos@zoulas.com>
257
258	* Add zlib support if we have it.
259
2602015-11-05  11:22  Christos Zoulas <christos@zoulas.com>
261
262	* PR/492: compression forking was broken with magic_buffer.
263
2642015-09-16   9:50  Christos Zoulas <christos@zoulas.com>
265
266	* release 5.25
267
2682015-09-11  13:25  Christos Zoulas <christos@zoulas.com>
269
270	* add a limit to the length of regex searches
271
2722015-09-08   9:50  Christos Zoulas <christos@zoulas.com>
273
274	* fix problems with --parameter (Christoph Biedl)
275
2762015-07-11  10:35  Christos Zoulas <christos@zoulas.com>
277
278	* Windows fixes PR/466 (Jason Hood)
279
2802015-07-09  10:35  Christos Zoulas <christos@zoulas.com>
281
282	* release 5.24
283
2842015-06-11   8:52  Christos Zoulas <christos@zoulas.com>
285
286	* redo long option encoding to fix off-by-one in 5.23
287
2882015-06-10  13:50  Christos Zoulas <christos@zoulas.com>
289
290	* release 5.23
291
2922015-06-09  16:10  Christos Zoulas <christos@zoulas.com>
293
294	* Fix issue with regex range for magic with offset
295	* Always return true from mget with USE (success to mget not match
296	  indication). Fixes mime evaluation after USE magic
297	* PR/459: Don't insert magic entries to the list if there are parsing
298	  errors for them.
299
3002015-06-03  16:00  Christos Zoulas <christos@zoulas.com>
301
302	* PR/455: Add utf-7 encoding
303
3042015-06-03  14:30  Christos Zoulas <christos@zoulas.com>
305
306	* PR/455: Implement -Z, look inside, but don't report on compression
307	* PR/454: Fix allocation error on bad magic.
308
3092015-05-29  10:30  Christos Zoulas <christos@zoulas.com>
310
311	* handle MAGIC_CONTINUE everywhere, not just in softmagic
312
3132015-05-21  14:30  Christos Zoulas <christos@zoulas.com>
314
315	* don't print descriptions for NAME types when mime.
316
3172015-04-09  15:59  Christos Zoulas <christos@zoulas.com>
318
319	* Add --extension to list the known extensions for this file type
320	  Idea by Andrew J Roazen
321
3222015-02-14  12:23  Christos Zoulas <christos@zoulas.com>
323
324	* Bump file search buffer size to 1M.
325
3262015-01-09  14:35  Christos Zoulas <christos@zoulas.com>
327
328	* Fix multiple issues with date formats reported by Christoph Biedl:
329		- T_LOCAL meaning was reversed
330		- Arithmetic did not work
331	  Also stop adjusting daylight savings for gmt printing.
332
3332015-01-05  13:00  Christos Zoulas <christos@zoulas.com>
334
335	* PR/411: Fix memory corruption from corrupt cdf file.
336
3372015-01-02  15:15  Christos Zoulas <christos@zoulas.com>
338
339	* release 5.22
340
3412015-01-01  12:01  Christos Zoulas <christos@zoulas.com>
342
343	* add indirect relative for TIFF/Exif
344
3452014-12-16  18:10  Christos Zoulas <christos@zoulas.com>
346
347	* restructure elf note printing to avoid repeated messages
348	* add note limit, suggested by Alexander Cherepanov
349
3502014-12-16  16:53  Christos Zoulas <christos@zoulas.com>
351
352	* Bail out on partial pread()'s (Alexander Cherepanov)
353	* Fix incorrect bounds check in file_printable (Alexander Cherepanov)
354
3552014-12-11  20:01  Christos Zoulas <christos@zoulas.com>
356
357	* PR/405: ignore SIGPIPE from uncompress programs
358	* change printable -> file_printable and use it in
359	  more places for safety
360	* in ELF, instead of "(uses dynamic libraries)" when PT_INTERP
361	  is present print the interpreter name.
362
3632014-12-10  20:01  Christos Zoulas <christos@zoulas.com>
364
365	* release 5.21
366
3672014-11-27  18:40  Christos Zoulas <christos@zoulas.com>
368
369	* Allow setting more parameters from the command line.
370	* Split name/use and indirect magic recursion limits.
371
3722014-11-27  11:12  Christos Zoulas <christos@zoulas.com>
373
374	* Adjust ELF parameters and the default recursion
375	  level.
376	* Allow setting the recursion level dynamically.
377
3782014-11-24   8:55  Christos Zoulas <christos@zoulas.com>
379
380	* The following fixes resulted from Thomas Jarosch's fuzzing
381	  tests that revealed severe performance issues on pathological
382	  input:
383	    - limit number of elf program and sections processing
384	    - abort elf note processing quickly
385	    - reduce the number of recursion levels from 20 to 10
386	    - preserve error messages in indirect magic handling
387
388	This is tracked as CVE-2014-8116 and CVE-2014-8117
389
3902014-11-12  10:30  Christos Zoulas <christos@zoulas.com>
391
392	* fix bogus free in the user buffer case.
393
3942014-11-11  12:35  Christos Zoulas <christos@zoulas.com>
395
396	* fix out of bounds read for pascal strings
397	* fix memory leak (not freeing the head of each mlist)
398
3992014-11-07  10:25  Christos Zoulas <christos@zoulas.com>
400
401	* When printing strings from a file, convert them to printable
402	  on a byte by byte basis, so that we don't get issues with
403	  locale's trying to interpret random byte streams as UTF-8 and
404	  having printf error out with EILSEQ.
405
4062014-10-17  11:48  Christos Zoulas <christos@zoulas.com>
407
408	* fix bounds in note reading (Francisco Alonso / Red Hat)
409
4102014-10-11  15:02  Christos Zoulas <christos@zoulas.com>
411
412	* fix autoconf glue for setlocale and locale_t; some OS's
413	  have locale_t in xlocale.h
414
4152014-10-10  15:01  Christos Zoulas <christos@zoulas.com>
416
417	* release 5.20
418
4192014-08-17  10:01  Christos Zoulas <christos@zoulas.com>
420
421	* recognize encrypted CDF documents
422
4232014-08-04   9:18  Christos Zoulas <christos@zoulas.com>
424
425	* add magic_load_buffers from Brooks Davis
426
4272014-07-24  16:40  Christos Zoulas <christos@zoulas.com>
428
429	* add thumbs.db support
430
4312014-06-12  12:28  Christos Zoulas <christos@zoulas.com>
432
433	* release 5.19
434
4352014-06-09   9:04  Christos Zoulas <christos@zoulas.com>
436
437	* Misc buffer overruns and missing buffer size tests in cdf parsing
438	  (Francisco Alonso, Jan Kaluza)
439
4402014-06-02  14:50  Christos Zoulas <christos@zoulas.com>
441
442	* Enforce limit of 8K on regex searches that have no limits
443	* Allow the l modifier for regex to mean line count. Default
444	  to byte count. If line count is specified, assume a max
445	  of 80 characters per line to limit the byte count.
446	* Don't allow conversions to be used for dates, allowing
447	  the mask field to be used as an offset.
448
4492014-05-30  12:51  Christos Zoulas <christos@zoulas.com>
450
451	* Make the range operator limit the length of the
452	  regex search.
453
4542014-05-14  19:23  Christos Zoulas <christos@zoulas.com>
455
456	* PR/347: Windows fixes
457	* PR/352: Hangul word processor recognition
458	* PR/354: Encoding irregularities in text files
459
4602014-05-06  6:12  Christos Zoulas <christos@zoulas.com>
461
462	* Fix uninitialized title in CDF files (Jan Kaluza)
463
4642014-05-04  14:55  Christos Zoulas <christos@zoulas.com>
465
466	* PR/351: Fix compilation of empty files
467
4682014-04-30  17:39  Christos Zoulas <christos@zoulas.com>
469
470	* Fix integer formats: We don't specify 'l' or
471	  'h' and 'hh' specifiers anymore, only 'll' for
472	  quads and nothing for the rest. This is so that
473	  magic writing is simpler.
474
4752014-04-01  15:25  Christos Zoulas <christos@zoulas.com>
476
477	* PR/341: Jan Kaluza, fix memory leak
478	* PR/342: Jan Kaluza, fix out of bounds read
479
4802014-03-28  15:25  Christos Zoulas <christos@zoulas.com>
481
482	* Fix issue with long formats not matching fmtcheck
483
4842014-03-26  11:25  Christos Zoulas <christos@zoulas.com>
485
486	* release 5.18
487
4882014-03-15  17:45  Christos Zoulas <christos@zoulas.com>
489
490	* add fmtcheck(3) for those who don't have it
491
4922014-03-14  15:12  Christos Zoulas <christos@zoulas.com>
493
494	* prevent mime entries from being attached to magic
495	  entries with no descriptions
496
497	* adjust magic strength for regex type
498
499	* remove superfluous ascmagic with encoding test
500
5012014-03-06  12:01  Christos Zoulas <christos@zoulas.com>
502
503	* fix regression fix echo -ne "\012\013\014" | file -i -
504	  which printed "binary" instead of "application/octet-stream"
505
506	* add size_t overflow check for magic file size
507
5082014-02-27  16:01  Christos Zoulas <christos@zoulas.com>
509
510	* experimental support for matching with CFD CLSID
511
5122014-02-18  13:04  Kimmo Suominen (kimmo@suominen.com)
513
514	* Cache old LC_CTYPE locale before setting it to "C", so
515	  we can use it to restore LC_CTYPE instead of asking
516	  setlocale() to scan the environment variables.
517
5182014-02-12  18:21  Christos Zoulas <christos@zoulas.com>
519
520	* Count recursion levels through indirect magic
521
5222014-02-11  10:40  Christos Zoulas <christos@zoulas.com>
523
524	* Prevent infinite recursion on files with indirect offsets of 0
525
5262014-01-30  21:00  Christos Zoulas <christos@zoulas.com>
527
528	* Add -E flag that makes file print filesystem errors to stderr
529	  and exit.
530
5312014-01-08  17:20  Christos Zoulas <christos@zoulas.com>
532
533	* mime printing could print results from multiple magic entries
534	  if there were multiple matches.
535	* in some cases overflow was not detected when computing offsets
536	  in softmagic.
537
5382013-12-05  12:00  Christos Zoulas <christos@zoulas.com>
539
540	* use strcasestr() to for cdf strings
541	* reset to the "C" locale while doing regex operations, or case
542	  insensitive comparisons; this is provisional
543
5442013-11-19  20:10  Christos Zoulas <christos@zoulas.com>
545
546	* always leave magic file loaded, don't unload for magic_check, etc.
547	* fix default encoding to binary instead of unknown which broke recently
548	* handle empty and one byte files, less specially so that
549	  --mime-encoding does not break completely.
550		`
5512013-11-06  14:40  Christos Zoulas <christos@zoulas.com>
552
553	* fix erroneous non-zero exit code from non-existent file and message
554
5552013-10-29  14:25  Christos Zoulas <christos@zoulas.com>
556
557	* add CDF MSI file detection (Guy Helmer)
558
5592013-09-03  11:56  Christos Zoulas <christos@zoulas.com>
560
561	* Don't mix errors and regular output if there was an error
562	* in magic_descriptor() don't close the file and try to restore
563	  its position
564
5652013-05-30  17:25  Christos Zoulas <christos@zoulas.com>
566
567	* Don't treat magic as an error if offset was past EOF (Christoph Biedl)
568
5692013-05-28  17:25  Christos Zoulas <christos@zoulas.com>
570
571	* Fix spacing issues in softmagic and elf (Jan Kaluza)
572
5732013-05-02  18:00  Christos Zoulas <christos@zoulas.com>
574
575	* Fix segmentation fault with multiple magic_load commands.
576
5772013-04-22  11:20  Christos Zoulas <christos@zoulas.com>
578
579	* The way "default" was implemented was not very useful
580	  because the "if something was printed at that level"
581	  was not easily controlled by the user, and the format
582	  was bound to a string which is too restrictive. Add
583	  a "clear" for that level keyword and make "default"
584	  void. This way one can do:
585
586		>>13	clear	x
587		>>13	lelong	1	foo
588		>>13	lelong	2	bar
589		>>13	default	x
590		>>>13	lelong	x	unknown %x
591
5922013-03-25  13:20  Christos Zoulas <christos@zoulas.com>
593
594	* disallow strength setting in "name" entries
595
5962013-03-06  21:24  Christos Zoulas <christos@zoulas.com>
597
598	* fix recursive magic separator printing
599
6002013-02-26  19:28  Christos Zoulas <christos@zoulas.com>
601
602	* limit recursion level for mget
603	* fix pread() related breakage in cdf
604	* handle offsets properly in recursive "use"
605
6062013-02-18  10:39  Christos Zoulas <christos@zoulas.com>
607
608	* add elf reading of debug info to determine if file is stripped
609	  (Jan Kaluza)
610	* use pread()
611
6122013-01-25  18:05  Christos Zoulas <christos@zoulas.com>
613
614	* change mime description size from 64 to 80 to accommodate OOXML.
615
6162013-01-11  14:50  Christos Zoulas <christos@zoulas.com>
617
618	* Warn about inconsistent continuation levels.
619	* Change fsmagic to add a space after it prints.
620
6212013-01-10  21:00  Christos Zoulas <christos@zoulas.com>
622
623	* Make getline public so that file can link against it.
624	  Perhaps it is better to rename it, or hide it differently.
625	  Fixes builds on platforms that do not provide it.
626
6272013-01-07  16:30  Christos Zoulas <christos@zoulas.com>
628
629	* Add SuS d{,1,2,4,8}, u{,1,2,4,8} and document
630	  what long, int, short, etc is (Guy Harris)
631
6322013-01-06  11:20  Christos Zoulas <christos@zoulas.com>
633
634	* add magic_version function and constant
635	* Redo memory allocation and de-allocation.
636	  (prevents double frees on non mmap platforms)
637	* Fix bug with name/use having to do with passing
638	  found state from the parent to the child and back.
639
6402012-12-19   8:47  Christos Zoulas <christos@zoulas.com>
641
642	* Only print elf capabilities for archs we know (Jan Kaluza)
643
6442012-10-30  19:14  Christos Zoulas <christos@zoulas.com>
645
646	* Add "name" and "use" file types in order to look
647	  inside mach-o files.
648
6492012-09-06  10:40  Christos Zoulas <christos@zoulas.com>
650
651	* make --version exit 0 (Matthew Schultz)
652	* add string/T (Jan Kaluza)
653
6542012-08-09  2:15  Christos Zoulas <christos@zoulas.com>
655
656	* add z and t modifiers for our own vasprintf
657	* search for $HOME/.magic.mgc if it is there first
658	* fix reads from a pipe, and preserve errno
659
6602012-05-15  13:12  Christos Zoulas <christos@zoulas.com>
661
662	* use ctime_r, asctime_r
663
6642012-04-06  17:18  Christos Zoulas <christos@zoulas.com>
665
666	* Fixes for indirect offsets to handle apple disk formats
667
6682012-04-03  18:26  Christos Zoulas <christos@zoulas.com>
669
670	* Add windows date field types
671	* More info for windows shortcuts (incomplete)
672
6732012-02-20  17:33  Christos Zoulas <christos@zoulas.com>
674
675	* Fix CDF parsing issues found by CERT's fuzzing tool (Will Dormann)
676
6772011-12-15  12:17  Chris Metcalf <cmetcalf@tilera.com>
678
679	* Support Tilera architectures (tile64, tilepro, tilegx).
680
6812011-12-16  16:33  Reuben Thomas <rrt@sc3d.org>
682
683	* Add magic for /usr/bin/env Perl scripts
684	* Weaken generic script magic to avoid clashing with
685	language-specific magic.
686
6872011-12-08  13:37  Reuben Thomas <rrt@sc3d.org>
688
689	* Simplify if (p) free(p) to free(p).
690
6912011-12-08  13:07  Reuben Thomas <rrt@sc3d.org>
692
693	* Remove hardwired token finding (names.h), turning it into soft
694	magic. Patterns are either anchored regexs or search/8192. English
695	language detection and PL/1 detection have been removed as they
696	were too fragile. -e tokens is still accepted for backwards
697	compatibility.
698	* Move 3ds patterns (which are commented out anyway) into autodesk
699	(they were, oddly, in c-lang).
700
7012011-12-06  00:16  Reuben Thomas <rrt@sc3d.org>
702
703	* Tweak strength of generic hash-bang detectors to be less than
704	specific ones.
705	* Make an inconsistent description of Python scripts consistent.
706
7072011-12-05  23:58  Reuben Thomas <rrt@sc3d.org>
708
709	* Fix minor error in file(1).
710
7112011-11-05  00:00  Reuben Thomas <rrt@sc3d.org>
712
713	* Fix issue #150 (I hope).
714
7152011-09-22  12:57  Christos Zoulas <christos@zoulas.com>
716
717	* Python3 binding fixes from Kelly Anderson
718
7192011-09-20  11:32  Christos Zoulas <christos@zoulas.com>
720
721	* If a string type magic entry is marked as text or binary
722	  only match text files against text entries and binary
723	  files against binary entries.
724
7252011-09-01  12:12  Christos Zoulas <christos@zoulas.com>
726
727	* Don't wait for any subprocess, just the one we forked.
728
7292011-08-26  16:40  Christos Zoulas <christos@zoulas.com>
730
731	* If the application name is not set in a cdf file, try to see
732	  if it has a directory with the application name on it.
733
7342011-08-17  14:32  Christos Zoulas <christos@zoulas.com>
735
736	* Fix ELF lseek(2) madness. Inspired by PR/134 by Jan Kaluza
737
7382011-08-14  09:03  Christos Zoulas <christos@zoulas.com>
739
740	* Don't use variable string formats.
741
7422011-07-12  12:32  Reuben Thomas <rrt@sc3d.org>
743
744	* Fix detection of Zip files (Mantis #128).
745	* Make some minor improvements to file(1).
746	* Rename MIME types for filesystem objects for consistency with
747	  xdg-utils. Typically this means that application/x-foo becomes
748	  inode/foo, but some names also change slightly, e.g.
749	  application/x-character-device becomes inode/chardevice.
750
7512011-05-10  20:57  Christos Zoulas <christos@zoulas.com>
752
753	* fix mingw compilation (Abradoks)
754
7552011-05-10  20:57  Christos Zoulas <christos@zoulas.com>
756
757	* remove patchlevel.h
758	* Fix read past allocated memory caused by double-incrementing
759	  a pointer in a loop (reported by Roberto Maar)
760
7612011-03-30  15:45  Christos Zoulas <christos@zoulas.com>
762
763	* Fix cdf string buffer setting (Sven Anders)
764
7652011-03-20  16:35  Christos Zoulas <christos@zoulas.com>
766
767	* Eliminate MAXPATHLEN and use dynamic allocation for
768	  path and file buffers.
769
7702011-03-15  18:15  Christos Zoulas <christos@zoulas.com>
771
772	* binary tests on magic entries with masks could spuriously
773	  get converted to ascii.
774
7752011-03-12  18:06  Reuben Thomas <rrt@sc3d.org>
776
777	* Improve file.man (remove BUGS, present email addresses consistently).
778
7792011-03-07  19:38  Christos Zoulas <christos@zoulas.com>
780
781	* add lrzip support (from Ville Skytta)
782
7832011-02-10  16:36  Christos Zoulas <christos@zoulas.com>
784
785	* fix CDF bounds checking (Guy Helmer)
786
7872011-02-10  12:03  Christos Zoulas <christos@zoulas.com>
788
789	* add cdf_ctime() that prints a meaningful error when time cannot
790	  be converted.
791
7922011-02-02  20:40  Christos Zoulas <christos@zoulas.com>
793
794	* help and version output to stdout.
795
796	* When matching softmagic for ascii files, don't just print
797	  the softmagic classification, keep going and print the
798	  text classification too. This fixes broken troff files when
799	  we moved them from keyword recognition to softmagic
800	  (they stopped printing "with CRLF" etc.)
801	  Reported by Doug McIlroy.
802
8032011-01-16  19:31  Reuben Thomas <rrt@sc3d.org>
804
805	* Fix two potential buffer overruns in apprentice_list.
806
8072011-01-14  22:33  Reuben Thomas <rrt@sc3d.org>
808
809	* New Python binding in pure Python.
810	* Update libmagic(3).
811
8122011-01-06  21:40  Reuben Thomas <rrt@sc3d.org>
813
814	* Fix Python bindings (including recent Python 3 compatibility
815	  update).
816
8172011-01-04  18:43  Reuben Thomas <rrt@sc3d.org>
818
819	* magic/Makefile.am: make it easier to recover from magic build failures.
820	* Fix pstring length specifier parsing to avoid generating invalid
821	  magic files.
822	* Add pstring length "J" (for "JPEG") to specify that the length
823	  include itself.
824	* Fix JPEG comment parsing at last using pstring/HJ!
825	* Ignore section 5 man pages in doc/.cvsignore.
826
8272010-12-22  13:12  Christos Zoulas <christos@zoulas.com>
828
829	* Add pstring/BHhLl to specify the type of the length of pascal
830	  strings.
831
8322010-11-26  18:39  Reuben Thomas <rrt@sc3d.org>
833
834	* Fix "-e soft": it was ignored when softmagic was called
835	  during asciimagic.
836	* Improve comments and use "unsigned char" in tar.h/is_tar.c.
837
8382010-11-05  17:26  Reuben Thomas <rrt@sc3d.org>
839
840	* Make bug reporting addresses more visible.
841
8422010-11-01  18:35  Reuben Thomas <rrt@sc3d.org>
843
844	* Add tcl magic from Gustaf Neumann
845
8462010-10-24  10:42  Christos Zoulas <christos@zoulas.com>
847
848	* Fix the whitespace comparing code (Christopher Chittleborough)
849
8502010-10-06  21:05  Christos Zoulas <christos@zoulas.com>
851
852	* allow string/t to work (Jan Kaluza)
853
8542010-09-20  22:11  Reuben Thomas <rrt@sc3d.org>
855
856	* Apply some patches from Ubuntu and Fedora.
857
8582010-09-20  21:16  Reuben Thomas <rrt@sc3d.org>
859
860	* Apply all patches from Debian package 5.04-6 which have not
861	  already been applied and are not Debian-specific.
862
8632010-09-20  15:24  Reuben Thomas <rrt@sc3d.org>
864
865	* Minor security fix to softmagic.c (don't use untrusted
866	  string as printf format).
867
8682010-07-21  12:20  Christos Zoulas <christos@zoulas.com>
869
870	* MINGW32 portability from LRN
871
872	* Don't warn about escaping magic regex chars when we are in a regex.
873
8742010-07-19  10:55  Christos Zoulas <christos@zoulas.com>
875
876	* Only try to print prpsinfo for core files. (Jan Kaluza)
877
8782010-04-22  12:55  Christos Zoulas <christos@zoulas.com>
879
880	* Try more elf offsets for Debian core files.  (Arnaud Giersch)
881
8822010-02-20  15:18  Reuben Thomas <rrt@sc3d.org>
883
884	* Clarify which sort of CDF we mean.
885
8862010-02-14  22:58  Reuben Thomas <rrt@sc3d.org>
887
888	* Re-jig Zip file type magic so that unsupported special
889	  Zip types (those with "mimetype" at offset 30) can be
890	  recognized.
891
8922010-02-02  21:50  Reuben Thomas <rrt@sc3d.org>
893
894	* Add support for OCF (EPUB) files (application/epub+zip)
895
8962010-01-28  18:25  Christos Zoulas <christos@zoulas.com>
897
898	* Fix core-dump from unbound loop:
899	  https://bugzilla.redhat.com/show_bug.cgi?id=533245
900
9012010-01-22  15:45  Christos Zoulas <christos@zoulas.com>
902
903	* print proper mime for crystal reports file
904
905	* print the last summary information of a cdf document, not the
906	  first so that nested documents print the right info
907
9082010-01-16  18:42  Charles Longeau <chl@tuxfamily.org>
909
910	* bring back some fixes from OpenBSD:
911		- make gcc2 builds file
912		- fix typos in a magic file comment
913
9142009-11-17  18:35  Christos Zoulas <christos@zoulas.com>
915
916	* ctime/asctime can return NULL on some OS's although
917	  they should not (Toshit Antani)
918
9192009-09-14  13:49  Christos Zoulas <christos@zoulas.com>
920
921	* Centralize magic path handling routines and remove the
922	  special-casing from file.c so that the python module for
923	  example comes up with the same magic path (Fixes ~/.magic
924	  handling) (from Gab)
925
9262009-09-11  23:38  Reuben Thomas <rrt@sc3d.org>
927
928	* When magic argument is a directory, read the files in
929	  strcmp-sorted order (fixes Debian bug #488562 and our own FIXME).
930
9312009-09-11  13:11  Reuben Thomas <rrt@sc3d.org>
932
933	* Combine overlapping epoc and psion magic files into one (epoc).
934
935	* Add some more EPOC MIME types.
936
9372009-08-19  15:55  Christos Zoulas <christos@zoulas.com>
938
939	* Fix 3 bugs (From Ian Darwin):
940	    - file_showstr could move one past the end of the array
941	    - parse_apple did not nul terminate the string in the overflow case
942	    - parse_mime truncated the wrong string in the overflow case
943
9442009-08-12  12:28  Robert Byrnes  <byrnes@wildpumpkin.net>
945
946	* Include Localstuff when compiling magic.
947
9482009-07-15  10:05  Christos Zoulas <christos@zoulas.com>
949
950	* Fix logic for including mygetopts.h
951
952	* Make cdf.c compile again with debugging
953
954	* Add the necessary field handling for crystal reports files to work
955
9562009-06-23 01:34  Reuben Thomas <rrt@sc3d.org>
957
958	* Stop "(if" identifying Lisp files, that's plain dumb!
959
9602009-06-09 22:13  Reuben Thomas <rrt@sc3d.org>
961
962	* Add a couple of missing MP3 MIME types.
963
9642009-05-27 23:00  Reuben Thomas <rrt@sc3d.org>
965
966	* Add full range of hash-bang tests for Python and Ruby.
967
968	* Add MIME types for Python and Ruby scripts.
969
9702009-05-13  10:44  Christos Zoulas <christos@zoulas.com>
971
972	* off by one in parsing hw capabilities in elf
973	  (Cheng Renquan)
974
9752009-05-08  13:40  Christos Zoulas <christos@zoulas.com>
976
977	* lint fixes and more from NetBSD
978
9792009-05-06  10:25  Christos Zoulas <christos@zoulas.com>
980
981	* Avoid null dereference in cdf code (Drew Yao)
982
983	* More cdf bounds checks and overflow checks
984
9852009-05-01  18:37  Christos Zoulas <christos@zoulas.com>
986
987	* Buffer overflow fixes from Drew Yao
988
9892009-04-30  17:10  Christos Zoulas <christos@zoulas.com>
990
991	* Fix more cdf lossage. All the documents I have
992	  right now print the correct information.
993
9942009-03-27  18:43  Christos Zoulas <christos@zoulas.com>
995
996	* don't print \012- separators in the same magic entry
997	  if it consists of multiple magic printing lines.
998
9992009-03-23  10:20  Christos Zoulas <christos@zoulas.com>
1000
1001	* Avoid file descriptor leak in compress code from
1002	  (Daniel Novotny)
1003
10042009-03-18  16:50  Christos Zoulas <christos@zoulas.com>
1005
1006	* Allow escaping of relation characters, so that we can say \^[A-Z]
1007	  and the ^ is not eaten as a relation char.
1008
1009	* Fix troff and fortran to their previous glory using
1010	  regex. This was broken since their removel from ascmagic.
1011
10122009-03-10  16:50  Christos Zoulas <christos@zoulas.com>
1013
1014	* don't use strlen in strndup() (Toby Peterson)
1015
10162009-03-10  7:45  Christos Zoulas <christos@zoulas.com>
1017
1018	* avoid c99 syntax.
1019
10202009-02-23 15:45  Christos Zoulas <christos@zoulas.com>
1021
1022	* make the cdf code use the buffer first if available,
1023	  and then the fd code.
1024
10252009-02-13 13:45  Christos Zoulas <christos@zoulas.com>
1026
1027	* look for struct option to determine if getopt.h is usable for IRIX.
1028
1029	* sanitize cdf document strings
1030
10312009-02-04 13:25  Christos Zoulas <christos@zoulas.com>
1032
1033	* fix OS/2 warnings.
1034
10352008-12-12 15:50  Christos Zoulas <christos@zoulas.com>
1036
1037	* fix initial offset calculation for non 4K sector files
1038
1039	* add loop limits to avoid DoS attacks by constructing
1040	  looping sector references.
1041
10422008-12-03 13:05  Christos Zoulas <christos@zoulas.com>
1043
1044	* fix memory botches on cdf file parsing.
1045
1046	* exit with non-zero value for any error, not just for the last
1047	  file processed.
1048
10492008-11-09 20:42  Charles Longeau <chl@tuxfamily.org>
1050
1051	* Replace all str{cpy,cat} functions with strl{cpy,cat}
1052	* Ensure that strl{cpy,cat} are included in libmagic,
1053	  as needed.
1054
10552008-11-06 18:18  Christos Zoulas <christos@zoulas.com>
1056
1057	* Handle ID3 format files.
1058
10592008-11-06 23:00  Reuben Thomas <rrt@sc3d.org>
1060
1061	* Fix --mime, --mime-type and --mime-encoding under new scheme.
1062
1063	* Rename "ascii" to "text" and add "encoding" test.
1064
1065	* Return a precise ("utf-16le" or "utf-16be") MIME charset for
1066	  UTF-16.
1067
1068	* Fix error in comment caused by automatic indentation adding
1069	  words!
1070
10712008-11-06 10:35  Christos Zoulas <christos@astron.com>
1072
1073	* use memchr instead of strchr because the string
1074	  might not be NUL terminated (Scott MacVicar)
1075
10762008-11-03 07:31  Reuben Thomas <rrt@sc3d.org>
1077
1078	* Fix a printf with a non-literal format string.
1079
1080	* Fix formatting and punctuation of help for "--apple".
1081
10822008-10-30 11:00  Reuben Thomas <rrt@sc3d.org>
1083
1084	* Correct words counts in comments of struct magic.
1085
1086	* Fix handle_annotation to allow both Apple and MIME types to be
1087	  printed, and to return correct code if MIME type is
1088	  printed (1, not 0) or if there's an error (-1 not 1).
1089
1090	* Fix output of charset for MIME type (precede with semi-colon;
1091	  fixes Debian bug #501460).
1092
1093	* Fix potential attacks via conversion specifications in magic
1094	  strings.
1095
1096	* Add a FIXME for Debian bug #488562 (magic files should be
1097	  read in a defined order, by sorting the names).
1098
10992008-10-18 16:45  Christos Zoulas <christos@astron.com>
1100
1101	* Added APPLE file creator/type
1102
11032008-10-12 10:20  Christos Zoulas <christos@astron.com>
1104
1105	* Added CDF parsing
1106
11072008-10-09 16:40  Christos Zoulas <christos@astron.com>
1108
1109	* filesystem and msdos patches (Joerg Jenderek)
1110
11112008-10-09 13:20  Christos Zoulas <christos@astron.com>
1112
1113	* correct --exclude documentation issues: remove troff and fortran
1114	  and rename "token" to "tokens". (Randy McMurchy)
1115
11162008-10-01 10:30  Christos Zoulas <christos@astron.com>
1117
1118	* Read ~/.magic in addition to the default magic file not instead
1119	  of, as documented in the man page.
1120
11212008-09-10 21:30  Reuben Thomas  <rrt@sc3d.org>
1122
1123	* Comment out graphviz patterns, as they match too many files.
1124
11252008-08-30 12:54  Christos Zoulas <christos@astron.com>
1126
1127	* Don't eat trailing \n in magic enties.
1128
1129	* Cast defines to allow compilation using a c++ compiler.
1130
11312008-08-25 23:56  Reuben Thomas  <rrt@sc3d.org>
1132
1133	* Add text/x-lua MIME type for Lua scripts.
1134
1135	* Escape { in regex in graphviz patterns.
1136
11372008-07-26 00:59  Reuben Thomas  <rrt@sc3d.org>
1138
1139	* Add MIME types for special files.
1140
1141	* Use access to give more accurate information for files that
1142	  can't be opened.
1143
1144	* Add a TODO list.
1145
11462008-07-02 11:15  Christos Zoulas  <christos@astron.com>
1147
1148	* add !:strength op to adjust magic strength (experimental)
1149
11502008-06-16 21:41  Reuben Thomas  <rrt@sc3d.org>
1151
1152	* Fix automake error in configure.ac.
1153
1154	* Add MIME type for Psion Sketch files.
1155
11562008-06-05 08:59  Christos Zoulas  <christos@astron.com>
1157
1158	* Don't print warnings about bad namesize in stripped
1159	  binaries with PT_NOTE is still there, and the actual
1160	  note is gone (Jakub Jelinek)
1161
11622008-05-28 15:12  Robert Byrnes  <byrnes@wildpumpkin.net>
1163
1164	* magic/Magdir/elf:
1165	  Note invalid byte order for little-endian SPARC32PLUS.
1166	  Add SPARC V9 vendor extensions and memory model.
1167
1168	* src/elfclass.h:
1169	  Pass target machine to doshn (for Solaris hardware capabilities).
1170
1171	* src/readelf.c (doshn):
1172	  Add support for Solaris hardware/software capabilities.
1173
1174	* src/readelf.h:
1175	  Ditto.
1176
1177	* src/vasprintf.c (dispatch):
1178	  Add support for ll modifier.
1179
11802008-05-16 10:25  Christos Zoulas  <christos@astron.com>
1181
1182	* Fix compiler warnings.
1183
1184	* remove stray printf, and fix a vprintf bug. (Martin Dorey)
1185
11862008-05-06 00:13  Robert Byrnes  <byrnes@wildpumpkin.net>
1187
1188	* src/Makefile.am:
1189	  Ensure that getopt_long and [v]asprintf are included in libmagic,
1190	  as needed.
1191
1192	  Remove unnecessary EXTRA_DIST.
1193
1194	* src/Makefile.in:
1195	  Rerun automake.
1196
1197	* src/vasprintf.c (dispatch):
1198	  Fix variable precision bug: be sure to step past '*'.
1199
1200	* src/vasprintf.c (core):
1201	  Remove unreachable code.
1202
1203	* src/apprentice.c (set_test_type):
1204	  Add cast to avoid compiler warning.
1205
12062008-04-22 23:45  Christos Zoulas  <christos@astron.com>
1207
1208	* Add magic submission guidelines (Abel Cheung)
1209
1210	* split msdos and windows magic (Abel Cheung)
1211
12122008-04-04 11:00  Christos Zoulas  <christos@astron.com>
1213
1214	* >= <= is not supported, so fix the magic and warn about it.
1215	  reported by: Thien-Thi Nguyen <ttn@gnuvola.org>
1216
12172008-03-27 16:16  Robert Byrnes  <byrnes@wildpumpkin.net>
1218
1219	* src/readelf.c (donote):
1220	  ELF core file command name/line bug fixes and enhancements:
1221
1222	  Try larger offsets first to avoid false matches
1223	  from earlier data that happen to look like strings;
1224	  this primarily affected SunOS 5.x 32-bit Intel core files.
1225
1226	  Add support for command line (instead of just short name)
1227	  for SunOS 5.x.
1228
1229	  Add information about NT_PSINFO for SunOS 5.x.
1230
1231	  Only trim whitespace from end of command line.
1232
12332007-02-11 01:36 Reuben Thomas <rrt@sc3d.org>
1234
1235	* Change strength of ! from MULT to 0, as it matches almost
1236		  anything (Reuben Thomas)
1237
1238	* Debian fixes (Reuben Thomas)
1239
12402007-02-11 00:17 Reuben Thomas <rrt@sc3d.org>
1241
1242	* Clarify UTF-8 BOM message (Reuben Thomas)
1243
1244	* Add HTML comment to token list in names.h
1245
12462007-02-04 15:50 Christos Zoulas <christos@astron.com>
1247
1248	* Debian fixes (Reuben Thomas)
1249
12502007-02-04 11:31 Christos Zoulas <christos@astron.com>
1251
1252	* !:mime annotations in magic files (Reuben Thomas)
1253
12542007-01-29 15:35 Christos Zoulas <christos@astron.com>
1255
1256	* zero out utime/utimes structs (Gavin Atkinson)
1257
12582007-01-26 13:45 Christos Zoulas <christos@astron.com>
1259
1260	* reduce writable data from Diego "Flameeyes" Petten
1261
12622007-12-28 15:06 Christos Zoulas <christos@astron.com>
1263
1264	* strtof detection
1265
1266	* remove bogus regex magic that could cause a DoS
1267
1268	* better mismatch version message
1269
12702007-12-27 11:35 Christos Zoulas <christos@astron.com>
1271
1272	* bring back some fixes from OpenBSD
1273
1274	* treat ELF dynamic objects as executables
1275
1276	* fix gcc warnings
1277
12782007-12-01 19:55 Christos Zoulas <christos@astron.com>
1279
1280	* make sure we have zlib.h and libz to compile the builtin
1281	  decompress code
1282
12832007-10-28 20:48 Christos Zoulas <christos@astron.com>
1284
1285 	* float and double magic support (Behan Webster)
1286
12872007-10-28 20:48 Christos Zoulas <christos@astron.com>
1288
1289	* Convert fortran to a soft test (Reuben Thomas)
1290
12912007-10-23  5:25 Christos Zoulas <christos@astron.com>
1292
1293	* Add --with-filename, and --no-filename (Reuben Thomas)
1294
12952007-10-23  3:59 Christos Zoulas <christos@astron.com>
1296
1297	* Rest of the mime split (Reuben Thomas)
1298
1299	* Make usage message generated from the flags so that
1300	  they stay consistent (Reuben Thomas)
1301
13022007-10-20  3:06 Christos Zoulas <christos@astron.com>
1303
1304	* typo in comment, missing ifdef QUICK, remove unneeded code
1305		(Charles Longeau)
1306
13072007-10-17  3:33 Christos Zoulas <christos@astron.com>
1308
1309	* Fix problem printing -\012 in some entries
1310
1311	* Separate magic type and encoding flags (Reuben Thomas)
1312
13132007-10-09  3:55 Christos Zoulas <christos@astron.com>
1314
1315	* configure fix for int64 and strndup (Reuben Thomas)
1316
13172007-09-26  4:45 Christos Zoulas <christos@astron.com>
1318
1319	* Add magic_descriptor() function.
1320
1321	* Fix regression in elf reading code where the core name was
1322	  not being printed.
1323
1324	* Don't convert NUL's to spaces in {l,b}estring16 (Daniel Dawson)
1325
13262007-08-19  6:30 Christos Zoulas <christos@astron.com>
1327
1328	* Make mime format consistent so that it can
1329	  be easily parsed:
1330	      mimetype [charset=character-set] [encoding=encoding-mime-type]
1331
1332	  Remove spurious extra text from some MIME type printouts
1333	  (mostly in is_tar).
1334
1335	  Fix one case where -i produced nothing at all (for a 1-byte file,
1336	  which is now classed as application/octet-stream).
1337
1338	  Remove 7/8bit classifications, since they were arbitrary
1339	  and not based on the file data.
1340
1341	  This work was done by Reuben Thomas
1342
13432007-05-24 10:00 Christos Zoulas <christos@astron.com>
1344
1345	* Fix another integer overflow (Colin Percival)
1346
13472007-03-26 13:58 Christos Zoulas <christos@astron.com>
1348
1349	* make sure that all of struct magic_set is initialized appropriately
1350	  (Brett)
1351
13522007-03-25 17:44 Christos Zoulas <christos@astron.com>
1353
1354	* reset left bytes in the buffer (Dmitry V. Levin)
1355
1356	* compilation failed with COMPILE_ONLY and ENABLE_CONDITIONALS
1357	  (Peter Avalos)
1358
13592007-03-15 10:51 Christos Zoulas <christos@astron.com>
1360
1361	* fix fortran and nroff reversed tests (Dmitry V. Levin)
1362
1363	* fix exclude option (Dmitry V. Levin)
1364
13652007-02-08 17:30 Christos Zoulas <christos@astron.com>
1366
1367	* fix integer underflow in file_printf which can lead to
1368	  to exploitable heap overflow (Jean-Sebastien Guay-Lero)
1369
13702007-02-05 11:35 Christos Zoulas <christos@astron.com>
1371
1372	* make socket/pipe reading more robust
1373
13742007-01-25 16:01 Christos Zoulas <christos@astron.com>
1375
1376	* Centralize all the tests in file_buffer.
1377
1378	* Add exclude flag.
1379
13802007-01-18 05:29 Anon Ymous <do@not.spam.me>
1381
1382	* Move the "type" detection code from parse() into its own table
1383	  driven routine.  This avoids maintaining multiple lists in
1384	  file.h.
1385
1386	* Add an optional conditional field (ust before the type field).
1387	  This code is wrapped in "#ifdef ENABLE_CONDITIONALS" as it is
1388	  likely to go away.
1389
13902007-01-16 23:24 Anon Ymous <do@not.spam.me>
1391
1392	* Fix an initialization bug in check_mem().
1393
13942007-01-16 14:58 Anon Ymous <do@not.spam.me>
1395
1396	* Add a "default" type to print a message if nothing previously
1397	  matched at that level or since the last default at that
1398	  level.  This is useful for setting up switch-like statements.
1399	  It can also be used to do if/else constructions without a
1400	  redundant second test.
1401
1402	* Fix the "x" special case test so that one can test for that
1403	  string with "=x".
1404
1405	* Allow "search" to search the entire buffer if the "/N"
1406	  search count is missing.
1407
1408	* Make "regex" work!  It now starts its search at the
1409	  specified offset and takes an (optional) "/N" line count to
1410	  specify the search range; otherwise it searches to the end
1411	  of the file.  The match is now grabbed correctly for format
1412	  strings and the offset set to the end of the match.
1413
1414	* Add a "/s" flag to "regex" and "search" to set the offset to
1415	  the start of the match.  By default the offset is set to the
1416	  end of the match, as it is with other tests.  This is mostly
1417	  useful for "regex".
1418
1419	* Make "search", "string" and "pstring" use the same
1420	  file_strncmp() routine so that they support the same flags;
1421	  "bestring16" and "lestring16" call the same routine, but
1422	  with flags = 0.  Also add a "/C" flag (in analogy to "/c")
1423	  to ignore the case on uppercase (lowercase) characters in
1424	  the test string.
1425
1426	* Strict adherence to C style string escapes.  A warnings are
1427	  printed when compiling.  Note: previously "\a" was
1428	  incorrectly translated to 'a' instead of an <alert> (i.e.,
1429	  BELL, typically 0x07).
1430
1431	* Make this compile with "-Wall -Wextra" and all the warning
1432	  flags used with WARNS=4 in the NetBSD source.  Also make it
1433	  pass lint.
1434
1435	* Many "cleanups" and hopefully not too many new bugs!
1436
14372007-01-16 14:56 Anon Ymous <do@not.spam.me>
1438
1439	* make several more files compile with gcc warnings
1440	  on and also make them pass lint.
1441
14422007-01-16 14:54 Anon Ymous <do@not.spam.me>
1443
1444	* fix a puts()/putc() usage goof in file.c
1445
1446	* make file.c compile with gcc warnings and pass lint
1447
14482006-12-11 16:49 Christos Zoulas <christos@astron.com>
1449
1450	* fix byteswapping issue
1451
1452	* report the number of bytes we tried to
1453	  allocate when allocation fails
1454
1455	* add a few missed cases in the strength routine
1456
14572006-12-08 16:32 Christos Zoulas <christos@astron.com>
1458
1459	* store and print the line number of the magic
1460	  entry for debugging.
1461
1462	* if the magic entry did not print anything,
1463	  don't treat it as a match
1464
1465	* change the magic strength algorithm to take
1466	  into account the relationship op.
1467
1468	* fix a bug in search where we could accidentally
1469	  return a match.
1470
1471	* propagate the error return from match to
1472	  file_softmagic.
1473
14742006-11-25 13:35 Christos Zoulas <christos@astron.com>
1475
1476	* Don't store the current offset in the magic
1477	  struct, because it needs to be restored and
1478	  it was not done properly all the time. Bug
1479	  found by: Arkadiusz Miskiewicz
1480
1481	* Fix problem in the '\0' separator; and don't
1482	  print it as an additional separator; print
1483	  it as the only separator.
1484
14852006-11-17 10:51 Christos Zoulas <christos@astron.com>
1486
1487	* Added a -0 option to print a '\0' separator
1488	  Etienne Buira <etienne.buira@free.fr>
1489
14902006-10-31 15:14 Christos Zoulas <christos@astron.com>
1491
1492	* Check offset before copying (Mike Frysinger)
1493
1494	* merge duplicated code
1495
1496	* add quad date support
1497
1498	* make sure that we nul terminate desc (Ryoji Kanai)
1499
1500	* don't process elf notes multiple times
1501
1502	* allow -z to report empty compressed files
1503
1504	* use calloc to initialize the ascii buffers (Jos van den Oever)
1505
15062006-06-08 11:11 Christos Zoulas <christos@astron.com>
1507
1508	* QNX fixes (Mike Gorchak)
1509
1510	* Add quad support.
1511
1512	* FIFO checks (Dr. Werner Fink)
1513
1514	* Linux ELF fixes (Dr. Werner Fink)
1515
1516	* Magic format checks (Dr. Werner Fink)
1517
1518	* Magic format function improvent (Karl Chen)
1519
15202006-05-03 11:11 Christos Zoulas <christos@astron.com>
1521
1522	* Pick up some elf changes and some constant fixes from SUSE
1523
1524	* Identify gnu tar vs. posix tar
1525
1526	* When keep going, don't print spurious newlines (Radek Vokal)
1527
15282006-04-01 12:02 Christos Zoulas <christos@astron.com>
1529
1530	* Use calloc instead of malloc (Mike Frysinger)
1531
1532	* Fix configure script to detect wctypes.h (Mike Frysinger)
1533
15342006-03-02 16:06 Christos Zoulas <christos@astron.com>
1535
1536	* Print empty if the file is (Mike Frysinger)
1537
1538	* Don't try to read past the end of the buffer (Mike Frysinger)
1539
1540	* Sort magic entries by strength [experimental]
1541
15422005-11-29 13:26 Christos Zoulas <christos@astron.com>
1543
1544	* Use iswprint() to convert the output string.
1545	    (Bastien Nocera)
1546
15472005-10-31 8:54 Christos Zoulas <christos@astron.com>
1548
1549	* Fix regression where the core info was not completely processed
1550	    (Radek Vokal)
1551
15522005-10-20 11:15 Christos Zoulas <christos@astron.com>
1553
1554	* Middle Endian magic (Diomidis Spinellis)
1555
15562005-10-17 11:15 Christos Zoulas <christos@astron.com>
1557
1558	* Open with O_BINARY for CYGWIN (Corinna Vinschen)
1559
1560	* Don't close stdin (Arkadiusz Miskiewicz)
1561
1562	* Look for note sections in non executables.
1563
15642005-09-20 13:33 Christos Zoulas <christos@astron.com>
1565
1566	* Don't print SVR4 Style in core files multiple times
1567	    (Radek Vokal)
1568
15692005-08-27 04:09 Christos Zoulas <christos@astron.com>
1570
1571	* Cygwin changes Corinna Vinschen
1572
15732005-08-18 09:53 Christos Zoulas <christos@astron.com>
1574
1575	* Remove erroreous mention of /etc/magic in the file man page
1576	  This is gentoo bug 101639. (Mike Frysinger)
1577
1578	* Cross-compile support and detection (Mike Frysinger)
1579
15802005-08-12 10:17 Christos Zoulas <christos@astron.com>
1581
1582	* Add -h flag and dereference symlinks if POSIXLY_CORRECT
1583	  is set.
1584
15852005-07-29 13:57 Christos Zoulas <christos@astron.com>
1586
1587	* Avoid search and regex buffer overflows (Kelledin)
1588
15892005-07-12 11:48 Christos Zoulas <christos@astron.com>
1590
1591	* Provide stub implementations for {v,}nsprintf() for older
1592	  OS's that don't have them.
1593	* Change mbstate_t autoconf detection macro from AC_MBSTATE_T
1594	  to AC_TYPE_MBSTATE_T.
1595
15962005-06-25 11:48 Christos Zoulas <christos@astron.com>
1597
1598	* Dynamically allocate the string buffers and make the
1599	  default read size 256K.
1600
16012005-06-01 00:00 Joerg Sonnenberger <joerg@britannica.bec.de>
1602
1603	* Dragonfly ELF note support
1604
16052005-03-14 00:00 Giuliano Bertoletti <gb@symbolic.it>
1606
1607	* Avoid NULL pointer dereference in time conversion.
1608
16092005-03-06 00:00  Joerg Walter <jwalt@mail.garni.ch>
1610
1611	* Add indirect magic offset support, and search mode.
1612
16132005-01-12 00:00  Stepan Kasal  <kasal@ucw.cz>
1614
1615	* src/ascmagic.c (file_ascmagic): Fix three bugs about text files:
1616	  If a CRLF text file happens to have CR at offset HOWMANY - 1
1617	  (currently 0xffff), it should not be counted as CR line
1618	  terminator.
1619	  If a line has length exactly MAXLINELEN, it should not yet be
1620	  treated as a ``very long line'', as MAXLINELEN is ``longest sane
1621	  line length''.
1622	  With CRLF, the line length was not computed correctly, and even
1623	  lines of length MAXLINELEN - 1 were treated as ``very long''.
1624
16252004-12-07 14:15  Christos Zoulas  <christos@astron.com>
1626
1627	* bzip2 needs a lot of input buffer space on some files
1628	  before it can begin uncompressing. This makes file -z
1629	  fail on some bz2 files. Fix it by giving it a copy of
1630	  the file descriptor to read as much as it wants if we
1631	  have access to it. <christos@astron.com>
1632
16332004-11-24 12:39  Christos Zoulas  <christos@astron.com>
1634
1635	* Stack smash fix, and ELF more conservative reading.
1636	  Jakub Bogusz <qboosh@pld-linux.org>
1637
16382004-11-20 18:50  Christos Zoulas  <christos@astron.com>
1639
1640	* New FreeBSD version parsing code:
1641	  Jon Noack <noackjr@alumni.rice.edu>
1642
1643	* Hackish support for ucs16 strings <christos@astron.com>
1644
16452004-11-13 03:07  Christos Zoulas  <christos@astron.com>
1646
1647	* print the file name and line number in syntax errors.
1648
16492004 10-12 10:50  Christos Zoulas  <christos@astron.com>
1650
1651	* Fix stack overwriting on 0 length strings: Tim Waugh
1652	    <twaugh@redhat.com> Ned Ludd <solar@gentoo.org>
1653
16542004-09-27 11:30  Christos Zoulas  <christos@astron.com>
1655
1656	* Remove 3rd and 4th copyright clause; approved by Ian Darwin.
1657
1658	* Fix small memory leaks; caught by: Tamas Sarlos
1659	    <stamas@csillag.ilab.sztaki.hu>
1660
16612004-07-24 16:33  Christos Zoulas  <christos@astron.com>
1662
1663	* magic.mime update Danny Milosavljevic <danny.milo@gmx.net>
1664
1665	* FreeBSD version update Oliver Eikemeier <eikemeier@fillmore-labs.com>
1666
1667	* utime/utimes detection Ian Lance Taylor <ian@wasabisystems.com>
1668
1669  	* errors reading elf magic Jakub Bogusz <qboosh@pld-linux.org>
1670
16712004-04-12 10:55  Christos Zoulas  <christos@astron.com>
1672
1673	* make sure that magic formats match magic types during compilation
1674
1675	* fix broken sgi magic file
1676
16772004-04-06 20:36  Christos Zoulas  <christos@astron.com>
1678
1679	* detect present of mbstate_t Petter Reinholdtsen <pere@hungry.com>
1680
1681	* magic fixes
1682
16832004-03-22 15:25  Christos Zoulas  <christos@astron.com>
1684
1685	* Lots of mime fixes
1686	  (Joerg Ostertag) <ostertag@rechengilde.de>
1687
1688	* FreeBSD ELF version handling
1689	  (Edwin Groothuis) <edwin@mavetju.org>
1690
1691	* correct cleanup in all cases; don't just close the file.
1692	  (Christos Zoulas) <christos@astron.com>
1693
1694	* add gettext message catalogue support
1695	  (Michael Piefel) <piefel@debian.org>
1696
1697	* better printout for unreadable files
1698	  (Michael Piefel) <piefel@debian.org>
1699
1700	* compensate for missing MAXPATHLEN
1701	  (Michael Piefel) <piefel@debian.org>
1702
1703	* add wide character string length computation
1704	  (Michael Piefel) <piefel@debian.org>
1705
1706	* Avoid infinite loops caused by bad elf alignments
1707	  or name and description note sizes. Reported by
1708	  (Mikael Magnusson) <mmikael@comhem.se>
1709
17102004-03-09 13:55  Christos Zoulas  <christos@astron.com>
1711
1712	* Fix possible memory leak on error and add missing regfree
1713	  (Dmitry V. Levin) <ldv@altlinux.org>
1714
17152003-12-23 12:12  Christos Zoulas  <christos@astron.com>
1716
1717	* fix -k flag (Maciej W. Rozycki)
1718
17192003-11-18 14:10  Christos Zoulas  <christos@astron.com>
1720
1721	* Try to give us much info as possible on corrupt elf files.
1722	  (Willy Tarreau) <willy@w.ods.org>
1723	* Updated python bindings (Brett Funderburg)
1724	   <brettf@deepfile.com>
1725
17262003-11-11 15:03  Christos Zoulas  <christos@astron.com>
1727
1728	* Include file.h first, because it includes config.h
1729	  breaks largefile test macros otherwise.
1730	  (Paul Eggert <eggert@CS.UCLA.EDU> via
1731	   Lars Hecking <lhecking@nmrc.ie>)
1732
17332003-10-14 21:39  Christos Zoulas  <christos@astron.com>
1734
1735	* Python bindings (Brett Funderburg) <brettf@deepfile.com>
1736	* Don't lookup past the end of the buffer
1737	  (Chad Hanson) <chanson@tcs-sec.com>
1738	* Add MAGIC_ERROR and api on magic_errno()
1739
17402003-10-08 12:40  Christos Zoulas  <christos@astron.com>
1741
1742	* handle error conditions from compile as fatal
1743	  (Antti Kantee) <pooka@netbsd.org>
1744	* handle magic filename parsing sanely
1745	* more magic fixes.
1746	* fix a memory leak (Illes Marton) <illes.marton@balabit.hu>
1747	* describe magic file handling
1748	  (Bryan Henderson) <bryanh@giraffe-data.com>
1749
17502003-09-12 15:09  Christos Zoulas  <christos@astron.com>
1751
1752	* update magic files.
1753	* remove largefile support from file.h; it breaks things on most OS's
1754
17552003-08-10 10:25  Christos Zoulas  <christos@astron.com>
1756
1757	* fix unmapping'ing of mmaped files.
1758
17592003-07-10 12:03  Christos Zoulas  <christos@astron.com>
1760
1761	* don't exit with -1 on error; always exit 1 (Marty Leisner)
1762	* restore utimes code.
1763
17642003-06-10 17:03  Christos Zoulas  <christos@astron.com>
1765
1766	* make sure we don't access uninitialized memory.
1767	* pass lint
1768	* #ifdef __cplusplus in magic.h
1769
17702003-05-25 19:23  Christos Zoulas  <christos@astron.com>
1771
1772	* rename cvs magic file to revision to deal with
1773	  case insensitive filesystems.
1774
17752003-05-23 17:03  Christos Zoulas  <christos@astron.com>
1776
1777	* documentation fixes from Michael Piefel <piefel@debian.org>
1778	* magic fixes (various)
1779	* revert basename magic in .mgc name determination
1780	* buffer protection in uncompress,
1781	  signness issues,
1782	  close files
1783	  Maciej W. Rozycki <macro@ds2.pg.gda.pl
1784
17852003-04-21 20:12  Christos Zoulas  <christos@astron.com>
1786
1787	* fix zsh magic
1788
17892003-04-04 16:59  Christos Zoulas  <christos@astron.com>
1790
1791	* fix operand sort order in string.
1792
17932003-04-02 17:30  Christos Zoulas  <christos@astron.com>
1794
1795	* cleanup namespace in magic.h
1796
17972003-04-02 13:50  Christos Zoulas  <christos@astron.com>
1798
1799	* Magic additions (Alex Ott)
1800	* Fix bug that broke VPATH compilation (Peter Breitenlohner)
1801
18022003-03-28 16:03  Christos Zoulas  <christos@astron.com>
1803
1804	* remove packed attribute from magic struct.
1805	* make the magic struct properly aligned.
1806	* bump version number of compiled files to 2.
1807
18082003-03-27 13:10  Christos Zoulas  <christos@astron.com>
1809
1810	* separate tar detection and run it before softmagic.
1811	* fix reversed symlink test.
1812	* fix version printing.
1813	* make separator a string instead of a char.
1814	* update manual page and sort options.
1815
18162003-03-26 11:00  Christos Zoulas  <christos@astron.com>
1817
1818	* Pass lint
1819	* make NULL in magic_file mean stdin
1820	* Fix "-" argument to file to pass NULL to magic_file
1821	* avoid pointer casts by using memcpy
1822	* rename magic_buf -> magic_buffer
1823	* keep only the first error
1824	* manual page: new sentence, new line
1825	* fix typo in api function (magic_buf -> magic_buffer)
1826