]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - contrib/file/ChangeLog
file: upgrade to 5.41.
[FreeBSD/FreeBSD.git] / contrib / file / ChangeLog
1 2021-10-18  11:57  Christos Zoulas <christos@zoulas.com>
2
3         * release 5.41
4
5 2021-09-23  03:51  Christos Zoulas <christos@zoulas.com>
6
7         * Avinash Sonawane: Fix tzname detection
8
9 2021-09-03  09:17  Christos Zoulas <christos@zoulas.com>
10
11         * Fix relationship tests with "search" magic, don't short circuit
12           logic
13
14 2021-07-13  01:06  Christos Zoulas <christos@zoulas.com>
15
16         * Fix memory leak in compile mode
17
18 2021-07-01  03:51  Christos Zoulas <christos@zoulas.com>
19
20         * PR/272: kiefermat: Only set returnval = 1 when we printed something
21           (in all cases print or !print). This simplifies the logic and fixes
22           the issue in the PR with -k and --mime-type there was no continuation
23           printed before the default case.
24
25 2021-06-30  13:07  Christos Zoulas <christos@zoulas.com>
26
27         * PR/270: Don't translate unprintable characters in %s magic formats
28           when -r
29         * PR/269: Avoid undefined behavior with clang (adding offset to NULL)
30
31 2021-05-09  18:38  Christos Zoulas <christos@zoulas.com>
32
33         * Add a new flag (f) that requires that the match is a full word,
34            not a partial word match.
35         * Add varint types (unused)
36
37 2021-04-19  17:17  Christos Zoulas <christos@zoulas.com>
38
39         * PR/256: mutableVoid: If the file is less than 3 bytes, use the file
40           length to determine type
41         * PR/259: aleksandr.v.novichkov: mime printing through indirect magic
42           is not taken into account, use match directly so that it does.
43
44 2021-04-04  17:02  Christos Zoulas <christos@zoulas.com>
45
46         * count the total bytes found not the total byte positions
47           in order to determine encoding (Anatol Belski)
48
49 2021-03-30  20:21  Christos Zoulas <christos@zoulas.com>
50
51         * release 5.40
52
53 2021-02-05  16:31  Christos Zoulas <christos@zoulas.com>
54
55         * PR/234: Add limit to the number of bytes to scan for encoding
56         * PR/230: Fix /T (trim flag) for regex
57
58 2021-02-01  12:31  Christos Zoulas <christos@zoulas.com>
59         * PR/77: Trim trailing separator.
60
61 2020-12-17  15:44  Christos Zoulas <christos@zoulas.com>
62
63         * PR/211: Convert system read errors from corrupt ELF
64           files into human readable error messages
65
66 2020-12-08  16:24  Christos Zoulas <christos@zoulas.com>
67         
68         * fix multithreaded decompression file descriptor issue
69           by using close-on-exec (Denys Vlasenko)
70
71 2020-06-27  11:58  Christos Zoulas <christos@zoulas.com>
72
73         * Exclude surrogate pairs from utf-8 detection (Michael Liu)
74
75 2020-06-25  12:53  Christos Zoulas <christos@zoulas.com>
76         
77         * Include # to the list of ignored format chars (Werner Fink)
78
79 2020-06-14  20:02  Christos Zoulas <christos@zoulas.com>
80
81         * release 5.39
82
83 2020-06-07  20:00  Christos Zoulas <christos@zoulas.com>
84
85         * Remove unused subtype_mime (Steve Grubb)
86         * Remove unused check in okstat (Steve Grubb)
87         * Fix mime-type in elf binaries by making sure $x is set
88         * Fix indirect negative offsets broken by OFFNEGATIVE
89         * Fix GUID equality check
90         * PR/165: Handle empty array and strings in JSON
91         * PR/162: Add --exclude-quiet
92
93 2020-06-06  15:33  Christos Zoulas <christos@zoulas.com>
94
95         * Fix memory leak in ascmagic (Steve Grubb)
96
97 2020-06-04  00:21  Christos Zoulas <christos@zoulas.com>
98
99         * Fix string comparison length with ignore whitespace
100
101 2020-05-31  00:11  Christos Zoulas <christos@zoulas.com>
102
103         * Fix mingwin 64 compilation
104
105 2020-05-30  23:56  Christos Zoulas <christos@zoulas.com>
106
107         * PR/159: whitelist getpid needed for file_pipe2file()
108
109 2020-05-09  18:57  Christos Zoulas <christos@zoulas.com>
110
111         * Indicate negative offsets with a flag OFFNEGATIVE
112           so that -0 works.
113         * Introduce "offset" magic type that can be used to
114           detect the file size, and bail on short files.
115         * document DER better in the magic man page.
116
117 2020-03-11  21:53  Christos Zoulas <christos@zoulas.com>
118
119         * fix memory leaks (SonarQube)
120
121 2020-03-08  21:33  Christos Zoulas <christos@zoulas.com>
122
123         * fix memory leaks (SonarQube)
124         * rewrite confusing loops (SonarQube)
125         * fix bogus test (SonarQube)
126         * pass a sized buffer to file_fmttime() (SonarQube)
127
128         * fix memory leaks (SonarQube)
129
130 2020-02-20  15:50  Christos Zoulas <christos@zoulas.com>
131
132         * Don't allow * in printf formats, or the code itself (Christoph Biedl)
133         * Introduce a printf output size checker to avoid DoS attacks
134
135 2020-02-17  17:22  Christos Zoulas <christos@zoulas.com>
136
137         * Avoid memory leak on error (oss-fuzz)
138         * Check length of string on DER before derefercing and add new types
139         * Add missing DER string (oss-fuzz)
140
141 2020-02-16  20:45  Christos Zoulas <christos@zoulas.com>
142
143         * Add missing DER types, and debugging
144
145 2020-02-13  13:10  Christos Zoulas <christos@zoulas.com>
146
147         * PR/140: Avoid abort with hand-crafted magic file (gockelhahn)
148         * PR/139  Avoid DoS in printf with hand-crafted magic file (gockelhahn)
149         * PR/138: Avoid crash with hand-crafted magic file (gockelhahn)
150
151 2020-02-12  17:30  Christos Zoulas <christos@zoulas.com>
152
153         * PR/136: Fix static build by adding a libmagic.pc (Fabrice Fontaine)
154
155 2019-12-24  14:16  Christos Zoulas <christos@zoulas.com>
156
157         * add guid support
158
159 2019-12-16  21:11  Christos Zoulas <christos@zoulas.com>
160
161         * release 5.38
162
163 2019-12-15  22:13  Christos Zoulas <christos@zoulas.com>
164     Document changes since the previous release:
165         - Always accept -S (no sandbox) even if we don't support sandboxing
166         - More syscalls elided for sandboxiing
167         - For ELF dynamic means having an interpreter not just PT_DYNAMIC
168         - Check for large ELF session header offset
169         - When saving and restoring a locale, keep the locale name in our
170           own storage.
171         - Add a flag to disable CSV file detection.
172         - Don't pass NULL/0 to memset to appease sanitizers.
173         - Avoid spurious prints when looks for extensions or apple strings
174           in fsmagic.
175         - Add builtin decompressors for xz and and bzip.
176         - Add a limit for the number of CDF elements.
177         - More checks for overflow in CDF.
178
179 2019-05-14  22:26  Christos Zoulas <christos@zoulas.com>
180
181         * release 5.37
182
183 2019-05-09  22:27  Christos Zoulas <christos@zoulas.com>
184         
185         * Make sure that continuation separators are printed
186           with -k within softmagic
187
188 2019-05-06  22:27  Christos Zoulas <christos@zoulas.com>
189
190         * Change SIGPIPE saving and restoring during compression to use
191           sigaction(2) instead of signal(3) and cache it. (Denys Vlasenko)
192         * Cache stat(2) calls more to reduce number of calls (Denys Vlasenko)
193
194 2019-05-06  17:25  Christos Zoulas <christos@zoulas.com>
195
196         * PR/77: Handle --mime-type and -k correctly.
197
198 2019-05-03  15:26  Christos Zoulas <christos@zoulas.com>
199
200         * Switch decompression code to use vfork() because
201           tools like rpmdiff and rpmbuild call libmagic
202           with large process footprints (Denys Vlasenko)
203
204 2019-04-07  14:05  Christos Zoulas <christos@zoulas.com>
205
206         * PR/75: --enable-zlib, did not work.
207
208 2019-02-27  11:54  Christos Zoulas <christos@zoulas.com>
209
210         * Improve regex efficiency (Michael Schroeder) by:
211                 1. Prefixing regex searches with regular search
212                    for keywords where possible
213                 2. Using memmem(3) where available
214
215 2019-02-20  10:16  Christos Zoulas <christos@zoulas.com>
216
217         * release 5.36
218
219 2019-02-19  15:30  Christos Zoulas <christos@zoulas.com>
220
221         * Fix cast to use cast macros
222         * Add UCS-32 builtin detection (PR/61) reported by tmc
223
224 2019-02-18  18:24  Christos Zoulas <christos@zoulas.com>
225
226         * Fix stack read (PR/62) and write (PR/64) stack overflows
227           reported by spinpx 
228
229 2018-10-18  19:32  Christos Zoulas <christos@zoulas.com>
230
231         * release 5.35
232
233 2018-09-10  20:38  Christos Zoulas <christos@zoulas.com>
234
235         * Add FreeBSD ELF core file support (John Baldwin)
236
237 2018-08-20  18:40  Christos Zoulas <christos@zoulas.com>
238
239         * PR/30: Allow all parameter values to be set (don't treat 0 specially)
240         * handle default annotations on the softmagic match instead at the
241           end.
242
243 2018-07-25  10:17  Christos Zoulas <christos@zoulas.com>
244
245         * PR/23: Recognize JSON files
246
247 2018-07-25  10:17  Christos Zoulas <christos@zoulas.com>
248
249         * PR/18: file --mime-encoding should not print mime-type
250
251 2018-07-25   8:50  Christos Zoulas <christos@zoulas.com>
252
253         * release 5.34
254
255 2018-06-22  16:38  Christos Zoulas <christos@zoulas.com>
256
257         * Add Quad indirect offsets
258
259 2018-05-24  14:10  Christos Zoulas <christos@zoulas.com>
260
261         * Enable parsing of ELF dynamic sections to handle PIE better
262
263 2018-04-15  14:52  Christos Zoulas <christos@zoulas.com>
264
265         * release 5.33
266
267 2018-02-24  14:50  Christos Zoulas <christos@zoulas.com>
268
269         * extend the support for ${x?:} expansions for magic descriptions
270
271 2018-02-21  16:25  Christos Zoulas <christos@zoulas.com>
272
273         * add support for ${x?:} in mime types to handle
274           pie binaries.
275
276 2017-11-03   9:23  Christos Zoulas <christos@zoulas.com>
277
278         * add support for negative offsets (offsets from the end of file)
279
280 2017-09-26   8:22  Christos Zoulas <christos@zoulas.com>
281
282         * close the file on error when writing magic (Steve Grubb)
283
284 2017-09-24  12:02  Christos Zoulas <christos@zoulas.com>
285
286         * seccomp support (Paul Moore)
287
288 2017-09-02  11:53  Christos Zoulas <christos@zoulas.com>
289
290         * release 5.32
291
292 2017-08-28  16:37  Christos Zoulas <christos@zoulas.com>
293
294         * Always reset state in {file,buffer}_apprentice (Krzysztof Wilczynski)
295
296 2017-08-27  03:55  Christos Zoulas <christos@zoulas.com>
297
298         * Fix always true condition (Thomas Jarosch)
299
300 2017-05-24  17:30  Christos Zoulas <christos@zoulas.com>
301
302         * pickier parsing of numeric values in magic files.
303
304 2017-05-23  17:55  Christos Zoulas <christos@zoulas.com>
305
306         * PR/615 add magic_getflags()
307
308 2017-05-23  13:55  Christos Zoulas <christos@zoulas.com>
309
310         * release 5.31
311
312 2017-03-17  20:32  Christos Zoulas <christos@zoulas.com>
313
314         * remove trailing spaces from magic files
315         * refactor is_tar
316         * better bounds checks for cdf
317
318 2017-02-10  12:24  Christos Zoulas <christos@zoulas.com>
319
320         * release 5.30
321
322 2017-02-07  23:27  Christos Zoulas <christos@zoulas.com>
323
324         * If we exceeded the offset in a search return no match
325           (Christoph Biedl)
326         * Be more lenient on corrupt CDF files (Christoph Biedl)
327
328 2017-02-04  16:46  Christos Zoulas <christos@zoulas.com>
329
330         * pacify ubsan sign extension (oss-fuzz/524)
331
332 2017-02-01  12:42  Christos Zoulas <christos@zoulas.com>
333
334         * off by one in cdf parsing (PR/593)
335         * report debugging sections in elf (PR/591)
336
337 2016-11-06  10:52  Christos Zoulas <christos@zoulas.com>
338
339         * Allow @@@ in extensions
340         * Add missing overflow check in der magic (Jonas Wagner)
341
342 2016-10-25  10:40  Christos Zoulas <christos@zoulas.com>
343
344         * release 5.29
345
346 2016-10-24  11:20  Christos Zoulas <christos@zoulas.com>
347
348         * der getlength overflow (Jonas Wagner)
349         * multiple magic file load failure (Christoph Biedl)
350
351 2016-10-17  11:26  Christos Zoulas <christos@zoulas.com>
352
353         * CDF parsing improvements (Guy Helmer)
354
355 2016-07-20   7:26  Christos Zoulas <christos@zoulas.com>
356
357         * Add support for signed indirect offsets
358
359 2016-07-18   7:41  Christos Zoulas <christos@zoulas.com>
360
361         * cat /dev/null | file - should print empty (Christoph Biedl)
362
363 2016-07-05  15:20  Christos Zoulas <christos@zoulas.com>
364
365         * Bump string size from 64 to 96.
366
367 2016-06-13  20:20  Christos Zoulas <christos@zoulas.com>
368
369         * PR/556: Fix separators on annotations.
370
371 2016-06-13  19:40  Christos Zoulas <christos@zoulas.com>
372
373         * release 5.28
374         * fix leak on allocation failure
375
376 2016-06-01   1:20  Christos Zoulas <christos@zoulas.com>
377
378         * PR/555: Avoid overflow for offset > nbytes
379         * PR/550: Segv on DER parsing:
380             - use the correct variable for length
381             - set offset to 0 on failure.
382
383 2016-05-13  12:00  Christos Zoulas <christos@zoulas.com>
384
385         * release 5.27
386
387 2016-04-18   9:35  Christos Zoulas <christos@zoulas.com>
388
389         * Errors comparing DER entries or computing offsets
390           are just indications of malformed non-DER files.
391           Don't print them.
392         * Offset comparison was off-by-one.
393         * Fix compression code (Werner Fink)
394         * Put new bytes constant in the right file (not the generated one)
395
396 2016-04-16  18:34  Christos Zoulas <christos@zoulas.com>
397
398         * release 5.26
399
400 2016-03-31  13:50  Christos Zoulas <christos@zoulas.com>
401
402         * make the number of bytes read from files configurable.
403
404 2016-03-21  13:40  Christos Zoulas <christos@zoulas.com>
405
406         * Add bounds checks for DER code (discovered by Thomas Jarosch)
407         * Change indirect recursion limit to indirect use count and
408           bump from 15 to 50 to prevent abuse.
409
410 2016-03-13  20:39  Christos Zoulas <christos@zoulas.com>
411
412         * Add -00 which prints filename\0description\0
413
414 2016-03-01  13:28  Christos Zoulas <christos@zoulas.com>
415
416         * Fix ID3 indirect parsing
417
418 2016-01-19  10:18  Christos Zoulas <christos@zoulas.com>
419
420         * add DER parsing capability
421
422 2015-11-13  10:35  Christos Zoulas <christos@zoulas.com>
423
424         * provide dprintf(3) for the OS's that don't have it.
425
426 2015-11-11  16:25  Christos Zoulas <christos@zoulas.com>
427
428         * redo the compression code report decompression errors
429
430 2015-11-10  23:25  Christos Zoulas <christos@zoulas.com>
431
432         * REG_STARTEND code is not working as expected, delete it.
433
434 2015-11-09  16:05  Christos Zoulas <christos@zoulas.com>
435
436         * Add zlib support if we have it.
437
438 2015-11-05  11:22  Christos Zoulas <christos@zoulas.com>
439
440         * PR/492: compression forking was broken with magic_buffer.
441
442 2015-09-16   9:50  Christos Zoulas <christos@zoulas.com>
443
444         * release 5.25
445
446 2015-09-11  13:25  Christos Zoulas <christos@zoulas.com>
447
448         * add a limit to the length of regex searches
449
450 2015-09-08   9:50  Christos Zoulas <christos@zoulas.com>
451
452         * fix problems with --parameter (Christoph Biedl)
453
454 2015-07-11  10:35  Christos Zoulas <christos@zoulas.com>
455
456         * Windows fixes PR/466 (Jason Hood)
457
458 2015-07-09  10:35  Christos Zoulas <christos@zoulas.com>
459
460         * release 5.24
461
462 2015-06-11   8:52  Christos Zoulas <christos@zoulas.com>
463
464         * redo long option encoding to fix off-by-one in 5.23
465
466 2015-06-10  13:50  Christos Zoulas <christos@zoulas.com>
467
468         * release 5.23
469
470 2015-06-09  16:10  Christos Zoulas <christos@zoulas.com>
471
472         * Fix issue with regex range for magic with offset
473         * Always return true from mget with USE (success to mget not match
474           indication). Fixes mime evaluation after USE magic
475         * PR/459: Don't insert magic entries to the list if there are parsing
476           errors for them.
477
478 2015-06-03  16:00  Christos Zoulas <christos@zoulas.com>
479
480         * PR/455: Add utf-7 encoding
481
482 2015-06-03  14:30  Christos Zoulas <christos@zoulas.com>
483
484         * PR/455: Implement -Z, look inside, but don't report on compression
485         * PR/454: Fix allocation error on bad magic.
486
487 2015-05-29  10:30  Christos Zoulas <christos@zoulas.com>
488
489         * handle MAGIC_CONTINUE everywhere, not just in softmagic
490
491 2015-05-21  14:30  Christos Zoulas <christos@zoulas.com>
492
493         * don't print descriptions for NAME types when mime.
494
495 2015-04-09  15:59  Christos Zoulas <christos@zoulas.com>
496
497         * Add --extension to list the known extensions for this file type
498           Idea by Andrew J Roazen
499
500 2015-02-14  12:23  Christos Zoulas <christos@zoulas.com>
501
502         * Bump file search buffer size to 1M.
503
504 2015-01-09  14:35  Christos Zoulas <christos@zoulas.com>
505
506         * Fix multiple issues with date formats reported by Christoph Biedl:
507                 - T_LOCAL meaning was reversed
508                 - Arithmetic did not work
509           Also stop adjusting daylight savings for gmt printing.
510
511 2015-01-05  13:00  Christos Zoulas <christos@zoulas.com>
512
513         * PR/411: Fix memory corruption from corrupt cdf file.
514
515 2015-01-02  15:15  Christos Zoulas <christos@zoulas.com>
516
517         * release 5.22
518
519 2015-01-01  12:01  Christos Zoulas <christos@zoulas.com>
520
521         * add indirect relative for TIFF/Exif
522
523 2014-12-16  18:10  Christos Zoulas <christos@zoulas.com>
524
525         * restructure elf note printing to avoid repeated messages
526         * add note limit, suggested by Alexander Cherepanov
527
528 2014-12-16  16:53  Christos Zoulas <christos@zoulas.com>
529
530         * Bail out on partial pread()'s (Alexander Cherepanov)
531         * Fix incorrect bounds check in file_printable (Alexander Cherepanov)
532
533 2014-12-11  20:01  Christos Zoulas <christos@zoulas.com>
534
535         * PR/405: ignore SIGPIPE from uncompress programs
536         * change printable -> file_printable and use it in
537           more places for safety
538         * in ELF, instead of "(uses dynamic libraries)" when PT_INTERP
539           is present print the interpreter name.
540
541 2014-12-10  20:01  Christos Zoulas <christos@zoulas.com>
542
543         * release 5.21
544
545 2014-11-27  18:40  Christos Zoulas <christos@zoulas.com>
546
547         * Allow setting more parameters from the command line.
548         * Split name/use and indirect magic recursion limits.
549
550 2014-11-27  11:12  Christos Zoulas <christos@zoulas.com>
551
552         * Adjust ELF parameters and the default recursion
553           level.
554         * Allow setting the recursion level dynamically.
555
556 2014-11-24   8:55  Christos Zoulas <christos@zoulas.com>
557
558         * The following fixes resulted from Thomas Jarosch's fuzzing
559           tests that revealed severe performance issues on pathological
560           input:
561             - limit number of elf program and sections processing
562             - abort elf note processing quickly
563             - reduce the number of recursion levels from 20 to 10
564             - preserve error messages in indirect magic handling
565
566         This is tracked as CVE-2014-8116 and CVE-2014-8117
567
568 2014-11-12  10:30  Christos Zoulas <christos@zoulas.com>
569
570         * fix bogus free in the user buffer case.
571
572 2014-11-11  12:35  Christos Zoulas <christos@zoulas.com>
573
574         * fix out of bounds read for pascal strings
575         * fix memory leak (not freeing the head of each mlist)
576
577 2014-11-07  10:25  Christos Zoulas <christos@zoulas.com>
578
579         * When printing strings from a file, convert them to printable
580           on a byte by byte basis, so that we don't get issues with
581           locale's trying to interpret random byte streams as UTF-8 and
582           having printf error out with EILSEQ.
583
584 2014-10-17  11:48  Christos Zoulas <christos@zoulas.com>
585
586         * fix bounds in note reading (Francisco Alonso / Red Hat)
587
588 2014-10-11  15:02  Christos Zoulas <christos@zoulas.com>
589
590         * fix autoconf glue for setlocale and locale_t; some OS's
591           have locale_t in xlocale.h
592
593 2014-10-10  15:01  Christos Zoulas <christos@zoulas.com>
594
595         * release 5.20
596
597 2014-08-17  10:01  Christos Zoulas <christos@zoulas.com>
598
599         * recognize encrypted CDF documents
600
601 2014-08-04   9:18  Christos Zoulas <christos@zoulas.com>
602
603         * add magic_load_buffers from Brooks Davis
604
605 2014-07-24  16:40  Christos Zoulas <christos@zoulas.com>
606
607         * add thumbs.db support
608
609 2014-06-12  12:28  Christos Zoulas <christos@zoulas.com>
610
611         * release 5.19
612
613 2014-06-09   9:04  Christos Zoulas <christos@zoulas.com>
614
615         * Misc buffer overruns and missing buffer size tests in cdf parsing
616           (Francisco Alonso, Jan Kaluza)
617
618 2014-06-02  14:50  Christos Zoulas <christos@zoulas.com>
619
620         * Enforce limit of 8K on regex searches that have no limits
621         * Allow the l modifier for regex to mean line count. Default
622           to byte count. If line count is specified, assume a max
623           of 80 characters per line to limit the byte count.
624         * Don't allow conversions to be used for dates, allowing
625           the mask field to be used as an offset.
626
627 2014-05-30  12:51  Christos Zoulas <christos@zoulas.com>
628
629         * Make the range operator limit the length of the
630           regex search.
631
632 2014-05-14  19:23  Christos Zoulas <christos@zoulas.com>
633
634         * PR/347: Windows fixes
635         * PR/352: Hangul word processor recognition
636         * PR/354: Encoding irregularities in text files
637
638 2014-05-06  6:12  Christos Zoulas <christos@zoulas.com>
639
640         * Fix uninitialized title in CDF files (Jan Kaluza)
641
642 2014-05-04  14:55  Christos Zoulas <christos@zoulas.com>
643
644         * PR/351: Fix compilation of empty files
645
646 2014-04-30  17:39  Christos Zoulas <christos@zoulas.com>
647
648         * Fix integer formats: We don't specify 'l' or
649           'h' and 'hh' specifiers anymore, only 'll' for
650           quads and nothing for the rest. This is so that
651           magic writing is simpler.
652
653 2014-04-01  15:25  Christos Zoulas <christos@zoulas.com>
654
655         * PR/341: Jan Kaluza, fix memory leak
656         * PR/342: Jan Kaluza, fix out of bounds read
657
658 2014-03-28  15:25  Christos Zoulas <christos@zoulas.com>
659
660         * Fix issue with long formats not matching fmtcheck
661
662 2014-03-26  11:25  Christos Zoulas <christos@zoulas.com>
663
664         * release 5.18
665
666 2014-03-15  17:45  Christos Zoulas <christos@zoulas.com>
667
668         * add fmtcheck(3) for those who don't have it
669
670 2014-03-14  15:12  Christos Zoulas <christos@zoulas.com>
671
672         * prevent mime entries from being attached to magic
673           entries with no descriptions
674
675         * adjust magic strength for regex type
676
677         * remove superfluous ascmagic with encoding test
678
679 2014-03-06  12:01  Christos Zoulas <christos@zoulas.com>
680
681         * fix regression fix echo -ne "\012\013\014" | file -i -
682           which printed "binary" instead of "application/octet-stream"
683
684         * add size_t overflow check for magic file size
685
686 2014-02-27  16:01  Christos Zoulas <christos@zoulas.com>
687
688         * experimental support for matching with CFD CLSID
689
690 2014-02-18  13:04  Kimmo Suominen (kimmo@suominen.com)
691
692         * Cache old LC_CTYPE locale before setting it to "C", so
693           we can use it to restore LC_CTYPE instead of asking
694           setlocale() to scan the environment variables.
695
696 2014-02-12  18:21  Christos Zoulas <christos@zoulas.com>
697
698         * Count recursion levels through indirect magic
699
700 2014-02-11  10:40  Christos Zoulas <christos@zoulas.com>
701
702         * Prevent infinite recursion on files with indirect offsets of 0
703
704 2014-01-30  21:00  Christos Zoulas <christos@zoulas.com>
705
706         * Add -E flag that makes file print filesystem errors to stderr
707           and exit.
708
709 2014-01-08  17:20  Christos Zoulas <christos@zoulas.com>
710
711         * mime printing could print results from multiple magic entries
712           if there were multiple matches.
713         * in some cases overflow was not detected when computing offsets
714           in softmagic.
715
716 2013-12-05  12:00  Christos Zoulas <christos@zoulas.com>
717
718         * use strcasestr() to for cdf strings
719         * reset to the "C" locale while doing regex operations, or case
720           insensitive comparisons; this is provisional
721
722 2013-11-19  20:10  Christos Zoulas <christos@zoulas.com>
723
724         * always leave magic file loaded, don't unload for magic_check, etc.
725         * fix default encoding to binary instead of unknown which broke recently
726         * handle empty and one byte files, less specially so that
727           --mime-encoding does not break completely.
728                 `
729 2013-11-06  14:40  Christos Zoulas <christos@zoulas.com>
730
731         * fix erroneous non-zero exit code from non-existent file and message
732
733 2013-10-29  14:25  Christos Zoulas <christos@zoulas.com>
734
735         * add CDF MSI file detection (Guy Helmer)
736
737 2013-09-03  11:56  Christos Zoulas <christos@zoulas.com>
738
739         * Don't mix errors and regular output if there was an error
740         * in magic_descriptor() don't close the file and try to restore
741           its position
742
743 2013-05-30  17:25  Christos Zoulas <christos@zoulas.com>
744
745         * Don't treat magic as an error if offset was past EOF (Christoph Biedl)
746
747 2013-05-28  17:25  Christos Zoulas <christos@zoulas.com>
748
749         * Fix spacing issues in softmagic and elf (Jan Kaluza)
750
751 2013-05-02  18:00  Christos Zoulas <christos@zoulas.com>
752
753         * Fix segmentation fault with multiple magic_load commands.
754
755 2013-04-22  11:20  Christos Zoulas <christos@zoulas.com>
756
757         * The way "default" was implemented was not very useful
758           because the "if something was printed at that level"
759           was not easily controlled by the user, and the format
760           was bound to a string which is too restrictive. Add
761           a "clear" for that level keyword and make "default"
762           void. This way one can do:
763
764                 >>13    clear   x
765                 >>13    lelong  1       foo
766                 >>13    lelong  2       bar
767                 >>13    default x
768                 >>>13   lelong  x       unknown %x
769
770 2013-03-25  13:20  Christos Zoulas <christos@zoulas.com>
771
772         * disallow strength setting in "name" entries
773
774 2013-03-06  21:24  Christos Zoulas <christos@zoulas.com>
775
776         * fix recursive magic separator printing
777
778 2013-02-26  19:28  Christos Zoulas <christos@zoulas.com>
779
780         * limit recursion level for mget
781         * fix pread() related breakage in cdf
782         * handle offsets properly in recursive "use"
783
784 2013-02-18  10:39  Christos Zoulas <christos@zoulas.com>
785
786         * add elf reading of debug info to determine if file is stripped
787           (Jan Kaluza)
788         * use pread()
789
790 2013-01-25  18:05  Christos Zoulas <christos@zoulas.com>
791
792         * change mime description size from 64 to 80 to accommodate OOXML.
793
794 2013-01-11  14:50  Christos Zoulas <christos@zoulas.com>
795
796         * Warn about inconsistent continuation levels.
797         * Change fsmagic to add a space after it prints.
798
799 2013-01-10  21:00  Christos Zoulas <christos@zoulas.com>
800
801         * Make getline public so that file can link against it.
802           Perhaps it is better to rename it, or hide it differently.
803           Fixes builds on platforms that do not provide it.
804
805 2013-01-07  16:30  Christos Zoulas <christos@zoulas.com>
806
807         * Add SuS d{,1,2,4,8}, u{,1,2,4,8} and document
808           what long, int, short, etc is (Guy Harris)
809
810 2013-01-06  11:20  Christos Zoulas <christos@zoulas.com>
811
812         * add magic_version function and constant
813         * Redo memory allocation and de-allocation.
814           (prevents double frees on non mmap platforms)
815         * Fix bug with name/use having to do with passing
816           found state from the parent to the child and back.
817
818 2012-12-19   8:47  Christos Zoulas <christos@zoulas.com>
819
820         * Only print elf capabilities for archs we know (Jan Kaluza)
821
822 2012-10-30  19:14  Christos Zoulas <christos@zoulas.com>
823
824         * Add "name" and "use" file types in order to look
825           inside mach-o files.
826
827 2012-09-06  10:40  Christos Zoulas <christos@zoulas.com>
828
829         * make --version exit 0 (Matthew Schultz)
830         * add string/T (Jan Kaluza)
831
832 2012-08-09  2:15  Christos Zoulas <christos@zoulas.com>
833
834         * add z and t modifiers for our own vasprintf
835         * search for $HOME/.magic.mgc if it is there first
836         * fix reads from a pipe, and preserve errno
837
838 2012-05-15  13:12  Christos Zoulas <christos@zoulas.com>
839
840         * use ctime_r, asctime_r
841
842 2012-04-06  17:18  Christos Zoulas <christos@zoulas.com>
843
844         * Fixes for indirect offsets to handle apple disk formats
845
846 2012-04-03  18:26  Christos Zoulas <christos@zoulas.com>
847
848         * Add windows date field types
849         * More info for windows shortcuts (incomplete)
850
851 2012-02-20  17:33  Christos Zoulas <christos@zoulas.com>
852
853         * Fix CDF parsing issues found by CERT's fuzzing tool (Will Dormann)
854
855 2011-12-15  12:17  Chris Metcalf <cmetcalf@tilera.com>
856
857         * Support Tilera architectures (tile64, tilepro, tilegx).
858
859 2011-12-16  16:33  Reuben Thomas <rrt@sc3d.org>
860
861         * Add magic for /usr/bin/env Perl scripts
862         * Weaken generic script magic to avoid clashing with
863         language-specific magic.
864
865 2011-12-08  13:37  Reuben Thomas <rrt@sc3d.org>
866
867         * Simplify if (p) free(p) to free(p).
868
869 2011-12-08  13:07  Reuben Thomas <rrt@sc3d.org>
870
871         * Remove hardwired token finding (names.h), turning it into soft
872         magic. Patterns are either anchored regexs or search/8192. English
873         language detection and PL/1 detection have been removed as they
874         were too fragile. -e tokens is still accepted for backwards
875         compatibility.
876         * Move 3ds patterns (which are commented out anyway) into autodesk
877         (they were, oddly, in c-lang).
878
879 2011-12-06  00:16  Reuben Thomas <rrt@sc3d.org>
880
881         * Tweak strength of generic hash-bang detectors to be less than
882         specific ones.
883         * Make an inconsistent description of Python scripts consistent.
884
885 2011-12-05  23:58  Reuben Thomas <rrt@sc3d.org>
886
887         * Fix minor error in file(1).
888
889 2011-11-05  00:00  Reuben Thomas <rrt@sc3d.org>
890
891         * Fix issue #150 (I hope).
892
893 2011-09-22  12:57  Christos Zoulas <christos@zoulas.com>
894
895         * Python3 binding fixes from Kelly Anderson
896
897 2011-09-20  11:32  Christos Zoulas <christos@zoulas.com>
898
899         * If a string type magic entry is marked as text or binary
900           only match text files against text entries and binary
901           files against binary entries.
902
903 2011-09-01  12:12  Christos Zoulas <christos@zoulas.com>
904
905         * Don't wait for any subprocess, just the one we forked.
906
907 2011-08-26  16:40  Christos Zoulas <christos@zoulas.com>
908
909         * If the application name is not set in a cdf file, try to see
910           if it has a directory with the application name on it.
911
912 2011-08-17  14:32  Christos Zoulas <christos@zoulas.com>
913
914         * Fix ELF lseek(2) madness. Inspired by PR/134 by Jan Kaluza
915
916 2011-08-14  09:03  Christos Zoulas <christos@zoulas.com>
917
918         * Don't use variable string formats.
919
920 2011-07-12  12:32  Reuben Thomas <rrt@sc3d.org>
921
922         * Fix detection of Zip files (Mantis #128).
923         * Make some minor improvements to file(1).
924         * Rename MIME types for filesystem objects for consistency with
925           xdg-utils. Typically this means that application/x-foo becomes
926           inode/foo, but some names also change slightly, e.g.
927           application/x-character-device becomes inode/chardevice.
928
929 2011-05-10  20:57  Christos Zoulas <christos@zoulas.com>
930
931         * fix mingw compilation (Abradoks)
932
933 2011-05-10  20:57  Christos Zoulas <christos@zoulas.com>
934
935         * remove patchlevel.h
936         * Fix read past allocated memory caused by double-incrementing
937           a pointer in a loop (reported by Roberto Maar)
938
939 2011-03-30  15:45  Christos Zoulas <christos@zoulas.com>
940
941         * Fix cdf string buffer setting (Sven Anders)
942
943 2011-03-20  16:35  Christos Zoulas <christos@zoulas.com>
944
945         * Eliminate MAXPATHLEN and use dynamic allocation for
946           path and file buffers.
947
948 2011-03-15  18:15  Christos Zoulas <christos@zoulas.com>
949
950         * binary tests on magic entries with masks could spuriously
951           get converted to ascii.
952
953 2011-03-12  18:06  Reuben Thomas <rrt@sc3d.org>
954
955         * Improve file.man (remove BUGS, present email addresses consistently).
956
957 2011-03-07  19:38  Christos Zoulas <christos@zoulas.com>
958
959         * add lrzip support (from Ville Skytta)
960
961 2011-02-10  16:36  Christos Zoulas <christos@zoulas.com>
962
963         * fix CDF bounds checking (Guy Helmer)
964
965 2011-02-10  12:03  Christos Zoulas <christos@zoulas.com>
966
967         * add cdf_ctime() that prints a meaningful error when time cannot
968           be converted.
969
970 2011-02-02  20:40  Christos Zoulas <christos@zoulas.com>
971
972         * help and version output to stdout.
973
974         * When matching softmagic for ascii files, don't just print
975           the softmagic classification, keep going and print the
976           text classification too. This fixes broken troff files when
977           we moved them from keyword recognition to softmagic
978           (they stopped printing "with CRLF" etc.)
979           Reported by Doug McIlroy.
980
981 2011-01-16  19:31  Reuben Thomas <rrt@sc3d.org>
982
983         * Fix two potential buffer overruns in apprentice_list.
984
985 2011-01-14  22:33  Reuben Thomas <rrt@sc3d.org>
986
987         * New Python binding in pure Python.
988         * Update libmagic(3).
989
990 2011-01-06  21:40  Reuben Thomas <rrt@sc3d.org>
991
992         * Fix Python bindings (including recent Python 3 compatibility
993           update).
994
995 2011-01-04  18:43  Reuben Thomas <rrt@sc3d.org>
996
997         * magic/Makefile.am: make it easier to recover from magic build failures.
998         * Fix pstring length specifier parsing to avoid generating invalid
999           magic files.
1000         * Add pstring length "J" (for "JPEG") to specify that the length
1001           include itself.
1002         * Fix JPEG comment parsing at last using pstring/HJ!
1003         * Ignore section 5 man pages in doc/.cvsignore.
1004
1005 2010-12-22  13:12  Christos Zoulas <christos@zoulas.com>
1006
1007         * Add pstring/BHhLl to specify the type of the length of pascal
1008           strings.
1009
1010 2010-11-26  18:39  Reuben Thomas <rrt@sc3d.org>
1011
1012         * Fix "-e soft": it was ignored when softmagic was called
1013           during asciimagic.
1014         * Improve comments and use "unsigned char" in tar.h/is_tar.c.
1015
1016 2010-11-05  17:26  Reuben Thomas <rrt@sc3d.org>
1017
1018         * Make bug reporting addresses more visible.
1019
1020 2010-11-01  18:35  Reuben Thomas <rrt@sc3d.org>
1021
1022         * Add tcl magic from Gustaf Neumann
1023
1024 2010-10-24  10:42  Christos Zoulas <christos@zoulas.com>
1025
1026         * Fix the whitespace comparing code (Christopher Chittleborough)
1027
1028 2010-10-06  21:05  Christos Zoulas <christos@zoulas.com>
1029
1030         * allow string/t to work (Jan Kaluza)
1031
1032 2010-09-20  22:11  Reuben Thomas <rrt@sc3d.org>
1033
1034         * Apply some patches from Ubuntu and Fedora.
1035
1036 2010-09-20  21:16  Reuben Thomas <rrt@sc3d.org>
1037
1038         * Apply all patches from Debian package 5.04-6 which have not
1039           already been applied and are not Debian-specific.
1040
1041 2010-09-20  15:24  Reuben Thomas <rrt@sc3d.org>
1042
1043         * Minor security fix to softmagic.c (don't use untrusted
1044           string as printf format).
1045
1046 2010-07-21  12:20  Christos Zoulas <christos@zoulas.com>
1047
1048         * MINGW32 portability from LRN
1049
1050         * Don't warn about escaping magic regex chars when we are in a regex.
1051
1052 2010-07-19  10:55  Christos Zoulas <christos@zoulas.com>
1053
1054         * Only try to print prpsinfo for core files. (Jan Kaluza)
1055
1056 2010-04-22  12:55  Christos Zoulas <christos@zoulas.com>
1057
1058         * Try more elf offsets for Debian core files.  (Arnaud Giersch)
1059
1060 2010-02-20  15:18  Reuben Thomas <rrt@sc3d.org>
1061
1062         * Clarify which sort of CDF we mean.
1063
1064 2010-02-14  22:58  Reuben Thomas <rrt@sc3d.org>
1065
1066         * Re-jig Zip file type magic so that unsupported special
1067           Zip types (those with "mimetype" at offset 30) can be
1068           recognized.
1069
1070 2010-02-02  21:50  Reuben Thomas <rrt@sc3d.org>
1071
1072         * Add support for OCF (EPUB) files (application/epub+zip)
1073
1074 2010-01-28  18:25  Christos Zoulas <christos@zoulas.com>
1075
1076         * Fix core-dump from unbound loop:
1077           https://bugzilla.redhat.com/show_bug.cgi?id=533245
1078
1079 2010-01-22  15:45  Christos Zoulas <christos@zoulas.com>
1080
1081         * print proper mime for crystal reports file
1082
1083         * print the last summary information of a cdf document, not the
1084           first so that nested documents print the right info
1085
1086 2010-01-16  18:42  Charles Longeau <chl@tuxfamily.org>
1087
1088         * bring back some fixes from OpenBSD:
1089                 - make gcc2 builds file
1090                 - fix typos in a magic file comment
1091
1092 2009-11-17  18:35  Christos Zoulas <christos@zoulas.com>
1093
1094         * ctime/asctime can return NULL on some OS's although
1095           they should not (Toshit Antani)
1096
1097 2009-09-14  13:49  Christos Zoulas <christos@zoulas.com>
1098
1099         * Centralize magic path handling routines and remove the
1100           special-casing from file.c so that the python module for
1101           example comes up with the same magic path (Fixes ~/.magic
1102           handling) (from Gab)
1103
1104 2009-09-11  23:38  Reuben Thomas <rrt@sc3d.org>
1105
1106         * When magic argument is a directory, read the files in
1107           strcmp-sorted order (fixes Debian bug #488562 and our own FIXME).
1108
1109 2009-09-11  13:11  Reuben Thomas <rrt@sc3d.org>
1110
1111         * Combine overlapping epoc and psion magic files into one (epoc).
1112
1113         * Add some more EPOC MIME types.
1114
1115 2009-08-19  15:55  Christos Zoulas <christos@zoulas.com>
1116
1117         * Fix 3 bugs (From Ian Darwin):
1118             - file_showstr could move one past the end of the array
1119             - parse_apple did not nul terminate the string in the overflow case
1120             - parse_mime truncated the wrong string in the overflow case
1121
1122 2009-08-12  12:28  Robert Byrnes  <byrnes@wildpumpkin.net>
1123
1124         * Include Localstuff when compiling magic.
1125
1126 2009-07-15  10:05  Christos Zoulas <christos@zoulas.com>
1127
1128         * Fix logic for including mygetopts.h
1129
1130         * Make cdf.c compile again with debugging
1131
1132         * Add the necessary field handling for crystal reports files to work
1133
1134 2009-06-23 01:34  Reuben Thomas <rrt@sc3d.org>
1135
1136         * Stop "(if" identifying Lisp files, that's plain dumb!
1137
1138 2009-06-09 22:13  Reuben Thomas <rrt@sc3d.org>
1139
1140         * Add a couple of missing MP3 MIME types.
1141
1142 2009-05-27 23:00  Reuben Thomas <rrt@sc3d.org>
1143
1144         * Add full range of hash-bang tests for Python and Ruby.
1145
1146         * Add MIME types for Python and Ruby scripts.
1147
1148 2009-05-13  10:44  Christos Zoulas <christos@zoulas.com>
1149
1150         * off by one in parsing hw capabilities in elf
1151           (Cheng Renquan)
1152
1153 2009-05-08  13:40  Christos Zoulas <christos@zoulas.com>
1154
1155         * lint fixes and more from NetBSD
1156
1157 2009-05-06  10:25  Christos Zoulas <christos@zoulas.com>
1158
1159         * Avoid null dereference in cdf code (Drew Yao)
1160
1161         * More cdf bounds checks and overflow checks
1162
1163 2009-05-01  18:37  Christos Zoulas <christos@zoulas.com>
1164
1165         * Buffer overflow fixes from Drew Yao
1166
1167 2009-04-30  17:10  Christos Zoulas <christos@zoulas.com>
1168
1169         * Fix more cdf lossage. All the documents I have
1170           right now print the correct information.
1171
1172 2009-03-27  18:43  Christos Zoulas <christos@zoulas.com>
1173
1174         * don't print \012- separators in the same magic entry
1175           if it consists of multiple magic printing lines.
1176
1177 2009-03-23  10:20  Christos Zoulas <christos@zoulas.com>
1178
1179         * Avoid file descriptor leak in compress code from
1180           (Daniel Novotny)
1181
1182 2009-03-18  16:50  Christos Zoulas <christos@zoulas.com>
1183
1184         * Allow escaping of relation characters, so that we can say \^[A-Z]
1185           and the ^ is not eaten as a relation char.
1186
1187         * Fix troff and fortran to their previous glory using
1188           regex. This was broken since their removel from ascmagic.
1189
1190 2009-03-10  16:50  Christos Zoulas <christos@zoulas.com>
1191
1192         * don't use strlen in strndup() (Toby Peterson)
1193
1194 2009-03-10  7:45  Christos Zoulas <christos@zoulas.com>
1195
1196         * avoid c99 syntax.
1197
1198 2009-02-23 15:45  Christos Zoulas <christos@zoulas.com>
1199
1200         * make the cdf code use the buffer first if available,
1201           and then the fd code.
1202
1203 2009-02-13 13:45  Christos Zoulas <christos@zoulas.com>
1204
1205         * look for struct option to determine if getopt.h is usable for IRIX.
1206
1207         * sanitize cdf document strings
1208
1209 2009-02-04 13:25  Christos Zoulas <christos@zoulas.com>
1210
1211         * fix OS/2 warnings.
1212
1213 2008-12-12 15:50  Christos Zoulas <christos@zoulas.com>
1214
1215         * fix initial offset calculation for non 4K sector files
1216
1217         * add loop limits to avoid DoS attacks by constructing
1218           looping sector references.
1219
1220 2008-12-03 13:05  Christos Zoulas <christos@zoulas.com>
1221
1222         * fix memory botches on cdf file parsing.
1223
1224         * exit with non-zero value for any error, not just for the last
1225           file processed.
1226
1227 2008-11-09 20:42  Charles Longeau <chl@tuxfamily.org>
1228
1229         * Replace all str{cpy,cat} functions with strl{cpy,cat}
1230         * Ensure that strl{cpy,cat} are included in libmagic,
1231           as needed.
1232
1233 2008-11-06 18:18  Christos Zoulas <christos@zoulas.com>
1234
1235         * Handle ID3 format files.
1236
1237 2008-11-06 23:00  Reuben Thomas <rrt@sc3d.org>
1238
1239         * Fix --mime, --mime-type and --mime-encoding under new scheme.
1240
1241         * Rename "ascii" to "text" and add "encoding" test.
1242
1243         * Return a precise ("utf-16le" or "utf-16be") MIME charset for
1244           UTF-16.
1245
1246         * Fix error in comment caused by automatic indentation adding
1247           words!
1248
1249 2008-11-06 10:35  Christos Zoulas <christos@astron.com>
1250
1251         * use memchr instead of strchr because the string
1252           might not be NUL terminated (Scott MacVicar)
1253
1254 2008-11-03 07:31  Reuben Thomas <rrt@sc3d.org>
1255
1256         * Fix a printf with a non-literal format string.
1257
1258         * Fix formatting and punctuation of help for "--apple".
1259
1260 2008-10-30 11:00  Reuben Thomas <rrt@sc3d.org>
1261
1262         * Correct words counts in comments of struct magic.
1263
1264         * Fix handle_annotation to allow both Apple and MIME types to be
1265           printed, and to return correct code if MIME type is
1266           printed (1, not 0) or if there's an error (-1 not 1).
1267
1268         * Fix output of charset for MIME type (precede with semi-colon;
1269           fixes Debian bug #501460).
1270
1271         * Fix potential attacks via conversion specifications in magic
1272           strings.
1273
1274         * Add a FIXME for Debian bug #488562 (magic files should be
1275           read in a defined order, by sorting the names).
1276
1277 2008-10-18 16:45  Christos Zoulas <christos@astron.com>
1278
1279         * Added APPLE file creator/type
1280
1281 2008-10-12 10:20  Christos Zoulas <christos@astron.com>
1282
1283         * Added CDF parsing
1284
1285 2008-10-09 16:40  Christos Zoulas <christos@astron.com>
1286
1287         * filesystem and msdos patches (Joerg Jenderek)
1288
1289 2008-10-09 13:20  Christos Zoulas <christos@astron.com>
1290
1291         * correct --exclude documentation issues: remove troff and fortran
1292           and rename "token" to "tokens". (Randy McMurchy)
1293
1294 2008-10-01 10:30  Christos Zoulas <christos@astron.com>
1295
1296         * Read ~/.magic in addition to the default magic file not instead
1297           of, as documented in the man page.
1298
1299 2008-09-10 21:30  Reuben Thomas  <rrt@sc3d.org>
1300
1301         * Comment out graphviz patterns, as they match too many files.
1302
1303 2008-08-30 12:54  Christos Zoulas <christos@astron.com>
1304
1305         * Don't eat trailing \n in magic enties.
1306
1307         * Cast defines to allow compilation using a c++ compiler.
1308
1309 2008-08-25 23:56  Reuben Thomas  <rrt@sc3d.org>
1310
1311         * Add text/x-lua MIME type for Lua scripts.
1312
1313         * Escape { in regex in graphviz patterns.
1314
1315 2008-07-26 00:59  Reuben Thomas  <rrt@sc3d.org>
1316
1317         * Add MIME types for special files.
1318
1319         * Use access to give more accurate information for files that
1320           can't be opened.
1321
1322         * Add a TODO list.
1323
1324 2008-07-02 11:15  Christos Zoulas  <christos@astron.com>
1325
1326         * add !:strength op to adjust magic strength (experimental)
1327
1328 2008-06-16 21:41  Reuben Thomas  <rrt@sc3d.org>
1329
1330         * Fix automake error in configure.ac.
1331
1332         * Add MIME type for Psion Sketch files.
1333
1334 2008-06-05 08:59  Christos Zoulas  <christos@astron.com>
1335
1336         * Don't print warnings about bad namesize in stripped
1337           binaries with PT_NOTE is still there, and the actual
1338           note is gone (Jakub Jelinek)
1339
1340 2008-05-28 15:12  Robert Byrnes  <byrnes@wildpumpkin.net>
1341
1342         * magic/Magdir/elf:
1343           Note invalid byte order for little-endian SPARC32PLUS.
1344           Add SPARC V9 vendor extensions and memory model.
1345
1346         * src/elfclass.h:
1347           Pass target machine to doshn (for Solaris hardware capabilities).
1348
1349         * src/readelf.c (doshn):
1350           Add support for Solaris hardware/software capabilities.
1351
1352         * src/readelf.h:
1353           Ditto.
1354
1355         * src/vasprintf.c (dispatch):
1356           Add support for ll modifier.
1357
1358 2008-05-16 10:25  Christos Zoulas  <christos@astron.com>
1359
1360         * Fix compiler warnings.
1361
1362         * remove stray printf, and fix a vprintf bug. (Martin Dorey)
1363
1364 2008-05-06 00:13  Robert Byrnes  <byrnes@wildpumpkin.net>
1365
1366         * src/Makefile.am:
1367           Ensure that getopt_long and [v]asprintf are included in libmagic,
1368           as needed.
1369
1370           Remove unnecessary EXTRA_DIST.
1371
1372         * src/Makefile.in:
1373           Rerun automake.
1374
1375         * src/vasprintf.c (dispatch):
1376           Fix variable precision bug: be sure to step past '*'.
1377
1378         * src/vasprintf.c (core):
1379           Remove unreachable code.
1380
1381         * src/apprentice.c (set_test_type):
1382           Add cast to avoid compiler warning.
1383
1384 2008-04-22 23:45  Christos Zoulas  <christos@astron.com>
1385
1386         * Add magic submission guidelines (Abel Cheung)
1387
1388         * split msdos and windows magic (Abel Cheung)
1389
1390 2008-04-04 11:00  Christos Zoulas  <christos@astron.com>
1391
1392         * >= <= is not supported, so fix the magic and warn about it.
1393           reported by: Thien-Thi Nguyen <ttn@gnuvola.org>
1394
1395 2008-03-27 16:16  Robert Byrnes  <byrnes@wildpumpkin.net>
1396
1397         * src/readelf.c (donote):
1398           ELF core file command name/line bug fixes and enhancements:
1399
1400           Try larger offsets first to avoid false matches
1401           from earlier data that happen to look like strings;
1402           this primarily affected SunOS 5.x 32-bit Intel core files.
1403
1404           Add support for command line (instead of just short name)
1405           for SunOS 5.x.
1406
1407           Add information about NT_PSINFO for SunOS 5.x.
1408
1409           Only trim whitespace from end of command line.
1410
1411 2007-02-11 01:36 Reuben Thomas <rrt@sc3d.org>
1412
1413         * Change strength of ! from MULT to 0, as it matches almost
1414                   anything (Reuben Thomas)
1415
1416         * Debian fixes (Reuben Thomas)
1417
1418 2007-02-11 00:17 Reuben Thomas <rrt@sc3d.org>
1419
1420         * Clarify UTF-8 BOM message (Reuben Thomas)
1421
1422         * Add HTML comment to token list in names.h
1423
1424 2007-02-04 15:50 Christos Zoulas <christos@astron.com>
1425
1426         * Debian fixes (Reuben Thomas)
1427
1428 2007-02-04 11:31 Christos Zoulas <christos@astron.com>
1429
1430         * !:mime annotations in magic files (Reuben Thomas)
1431
1432 2007-01-29 15:35 Christos Zoulas <christos@astron.com>
1433
1434         * zero out utime/utimes structs (Gavin Atkinson)
1435
1436 2007-01-26 13:45 Christos Zoulas <christos@astron.com>
1437
1438         * reduce writable data from Diego "Flameeyes" Petten
1439
1440 2007-12-28 15:06 Christos Zoulas <christos@astron.com>
1441
1442         * strtof detection
1443
1444         * remove bogus regex magic that could cause a DoS
1445
1446         * better mismatch version message
1447
1448 2007-12-27 11:35 Christos Zoulas <christos@astron.com>
1449
1450         * bring back some fixes from OpenBSD
1451
1452         * treat ELF dynamic objects as executables
1453
1454         * fix gcc warnings
1455
1456 2007-12-01 19:55 Christos Zoulas <christos@astron.com>
1457
1458         * make sure we have zlib.h and libz to compile the builtin
1459           decompress code
1460
1461 2007-10-28 20:48 Christos Zoulas <christos@astron.com>
1462
1463         * float and double magic support (Behan Webster)
1464
1465 2007-10-28 20:48 Christos Zoulas <christos@astron.com>
1466
1467         * Convert fortran to a soft test (Reuben Thomas)
1468
1469 2007-10-23  5:25 Christos Zoulas <christos@astron.com>
1470
1471         * Add --with-filename, and --no-filename (Reuben Thomas)
1472
1473 2007-10-23  3:59 Christos Zoulas <christos@astron.com>
1474
1475         * Rest of the mime split (Reuben Thomas)
1476
1477         * Make usage message generated from the flags so that
1478           they stay consistent (Reuben Thomas)
1479
1480 2007-10-20  3:06 Christos Zoulas <christos@astron.com>
1481
1482         * typo in comment, missing ifdef QUICK, remove unneeded code
1483                 (Charles Longeau)
1484
1485 2007-10-17  3:33 Christos Zoulas <christos@astron.com>
1486
1487         * Fix problem printing -\012 in some entries
1488
1489         * Separate magic type and encoding flags (Reuben Thomas)
1490
1491 2007-10-09  3:55 Christos Zoulas <christos@astron.com>
1492
1493         * configure fix for int64 and strndup (Reuben Thomas)
1494
1495 2007-09-26  4:45 Christos Zoulas <christos@astron.com>
1496
1497         * Add magic_descriptor() function.
1498
1499         * Fix regression in elf reading code where the core name was
1500           not being printed.
1501
1502         * Don't convert NUL's to spaces in {l,b}estring16 (Daniel Dawson)
1503
1504 2007-08-19  6:30 Christos Zoulas <christos@astron.com>
1505
1506         * Make mime format consistent so that it can
1507           be easily parsed:
1508               mimetype [charset=character-set] [encoding=encoding-mime-type]
1509
1510           Remove spurious extra text from some MIME type printouts
1511           (mostly in is_tar).
1512
1513           Fix one case where -i produced nothing at all (for a 1-byte file,
1514           which is now classed as application/octet-stream).
1515
1516           Remove 7/8bit classifications, since they were arbitrary
1517           and not based on the file data.
1518
1519           This work was done by Reuben Thomas
1520
1521 2007-05-24 10:00 Christos Zoulas <christos@astron.com>
1522
1523         * Fix another integer overflow (Colin Percival)
1524
1525 2007-03-26 13:58 Christos Zoulas <christos@astron.com>
1526
1527         * make sure that all of struct magic_set is initialized appropriately
1528           (Brett)
1529
1530 2007-03-25 17:44 Christos Zoulas <christos@astron.com>
1531
1532         * reset left bytes in the buffer (Dmitry V. Levin)
1533
1534         * compilation failed with COMPILE_ONLY and ENABLE_CONDITIONALS
1535           (Peter Avalos)
1536
1537 2007-03-15 10:51 Christos Zoulas <christos@astron.com>
1538
1539         * fix fortran and nroff reversed tests (Dmitry V. Levin)
1540
1541         * fix exclude option (Dmitry V. Levin)
1542
1543 2007-02-08 17:30 Christos Zoulas <christos@astron.com>
1544
1545         * fix integer underflow in file_printf which can lead to
1546           to exploitable heap overflow (Jean-Sebastien Guay-Lero)
1547
1548 2007-02-05 11:35 Christos Zoulas <christos@astron.com>
1549
1550         * make socket/pipe reading more robust
1551
1552 2007-01-25 16:01 Christos Zoulas <christos@astron.com>
1553
1554         * Centralize all the tests in file_buffer.
1555
1556         * Add exclude flag.
1557
1558 2007-01-18 05:29 Anon Ymous <do@not.spam.me>
1559
1560         * Move the "type" detection code from parse() into its own table
1561           driven routine.  This avoids maintaining multiple lists in
1562           file.h.
1563
1564         * Add an optional conditional field (ust before the type field).
1565           This code is wrapped in "#ifdef ENABLE_CONDITIONALS" as it is
1566           likely to go away.
1567
1568 2007-01-16 23:24 Anon Ymous <do@not.spam.me>
1569
1570         * Fix an initialization bug in check_mem().
1571
1572 2007-01-16 14:58 Anon Ymous <do@not.spam.me>
1573
1574         * Add a "default" type to print a message if nothing previously
1575           matched at that level or since the last default at that
1576           level.  This is useful for setting up switch-like statements.
1577           It can also be used to do if/else constructions without a
1578           redundant second test.
1579
1580         * Fix the "x" special case test so that one can test for that
1581           string with "=x".
1582
1583         * Allow "search" to search the entire buffer if the "/N"
1584           search count is missing.
1585
1586         * Make "regex" work!  It now starts its search at the
1587           specified offset and takes an (optional) "/N" line count to
1588           specify the search range; otherwise it searches to the end
1589           of the file.  The match is now grabbed correctly for format
1590           strings and the offset set to the end of the match.
1591
1592         * Add a "/s" flag to "regex" and "search" to set the offset to
1593           the start of the match.  By default the offset is set to the
1594           end of the match, as it is with other tests.  This is mostly
1595           useful for "regex".
1596
1597         * Make "search", "string" and "pstring" use the same
1598           file_strncmp() routine so that they support the same flags;
1599           "bestring16" and "lestring16" call the same routine, but
1600           with flags = 0.  Also add a "/C" flag (in analogy to "/c")
1601           to ignore the case on uppercase (lowercase) characters in
1602           the test string.
1603
1604         * Strict adherence to C style string escapes.  A warnings are
1605           printed when compiling.  Note: previously "\a" was
1606           incorrectly translated to 'a' instead of an <alert> (i.e.,
1607           BELL, typically 0x07).
1608
1609         * Make this compile with "-Wall -Wextra" and all the warning
1610           flags used with WARNS=4 in the NetBSD source.  Also make it
1611           pass lint.
1612
1613         * Many "cleanups" and hopefully not too many new bugs!
1614
1615 2007-01-16 14:56 Anon Ymous <do@not.spam.me>
1616
1617         * make several more files compile with gcc warnings
1618           on and also make them pass lint.
1619
1620 2007-01-16 14:54 Anon Ymous <do@not.spam.me>
1621
1622         * fix a puts()/putc() usage goof in file.c
1623
1624         * make file.c compile with gcc warnings and pass lint
1625
1626 2006-12-11 16:49 Christos Zoulas <christos@astron.com>
1627
1628         * fix byteswapping issue
1629
1630         * report the number of bytes we tried to
1631           allocate when allocation fails
1632
1633         * add a few missed cases in the strength routine
1634
1635 2006-12-08 16:32 Christos Zoulas <christos@astron.com>
1636
1637         * store and print the line number of the magic
1638           entry for debugging.
1639
1640         * if the magic entry did not print anything,
1641           don't treat it as a match
1642
1643         * change the magic strength algorithm to take
1644           into account the relationship op.
1645
1646         * fix a bug in search where we could accidentally
1647           return a match.
1648
1649         * propagate the error return from match to
1650           file_softmagic.
1651
1652 2006-11-25 13:35 Christos Zoulas <christos@astron.com>
1653
1654         * Don't store the current offset in the magic
1655           struct, because it needs to be restored and
1656           it was not done properly all the time. Bug
1657           found by: Arkadiusz Miskiewicz
1658
1659         * Fix problem in the '\0' separator; and don't
1660           print it as an additional separator; print
1661           it as the only separator.
1662
1663 2006-11-17 10:51 Christos Zoulas <christos@astron.com>
1664
1665         * Added a -0 option to print a '\0' separator
1666           Etienne Buira <etienne.buira@free.fr>
1667
1668 2006-10-31 15:14 Christos Zoulas <christos@astron.com>
1669
1670         * Check offset before copying (Mike Frysinger)
1671
1672         * merge duplicated code
1673
1674         * add quad date support
1675
1676         * make sure that we nul terminate desc (Ryoji Kanai)
1677
1678         * don't process elf notes multiple times
1679
1680         * allow -z to report empty compressed files
1681
1682         * use calloc to initialize the ascii buffers (Jos van den Oever)
1683
1684 2006-06-08 11:11 Christos Zoulas <christos@astron.com>
1685
1686         * QNX fixes (Mike Gorchak)
1687
1688         * Add quad support.
1689
1690         * FIFO checks (Dr. Werner Fink)
1691
1692         * Linux ELF fixes (Dr. Werner Fink)
1693
1694         * Magic format checks (Dr. Werner Fink)
1695
1696         * Magic format function improvent (Karl Chen)
1697
1698 2006-05-03 11:11 Christos Zoulas <christos@astron.com>
1699
1700         * Pick up some elf changes and some constant fixes from SUSE
1701
1702         * Identify gnu tar vs. posix tar
1703
1704         * When keep going, don't print spurious newlines (Radek Vokal)
1705
1706 2006-04-01 12:02 Christos Zoulas <christos@astron.com>
1707
1708         * Use calloc instead of malloc (Mike Frysinger)
1709
1710         * Fix configure script to detect wctypes.h (Mike Frysinger)
1711
1712 2006-03-02 16:06 Christos Zoulas <christos@astron.com>
1713
1714         * Print empty if the file is (Mike Frysinger)
1715
1716         * Don't try to read past the end of the buffer (Mike Frysinger)
1717
1718         * Sort magic entries by strength [experimental]
1719
1720 2005-11-29 13:26 Christos Zoulas <christos@astron.com>
1721
1722         * Use iswprint() to convert the output string.
1723             (Bastien Nocera)
1724
1725 2005-10-31 8:54 Christos Zoulas <christos@astron.com>
1726
1727         * Fix regression where the core info was not completely processed
1728             (Radek Vokal)
1729
1730 2005-10-20 11:15 Christos Zoulas <christos@astron.com>
1731
1732         * Middle Endian magic (Diomidis Spinellis)
1733
1734 2005-10-17 11:15 Christos Zoulas <christos@astron.com>
1735
1736         * Open with O_BINARY for CYGWIN (Corinna Vinschen)
1737
1738         * Don't close stdin (Arkadiusz Miskiewicz)
1739
1740         * Look for note sections in non executables.
1741
1742 2005-09-20 13:33 Christos Zoulas <christos@astron.com>
1743
1744         * Don't print SVR4 Style in core files multiple times
1745             (Radek Vokal)
1746
1747 2005-08-27 04:09 Christos Zoulas <christos@astron.com>
1748
1749         * Cygwin changes Corinna Vinschen
1750
1751 2005-08-18 09:53 Christos Zoulas <christos@astron.com>
1752
1753         * Remove erroreous mention of /etc/magic in the file man page
1754           This is gentoo bug 101639. (Mike Frysinger)
1755
1756         * Cross-compile support and detection (Mike Frysinger)
1757
1758 2005-08-12 10:17 Christos Zoulas <christos@astron.com>
1759
1760         * Add -h flag and dereference symlinks if POSIXLY_CORRECT
1761           is set.
1762
1763 2005-07-29 13:57 Christos Zoulas <christos@astron.com>
1764
1765         * Avoid search and regex buffer overflows (Kelledin)
1766
1767 2005-07-12 11:48 Christos Zoulas <christos@astron.com>
1768
1769         * Provide stub implementations for {v,}nsprintf() for older
1770           OS's that don't have them.
1771         * Change mbstate_t autoconf detection macro from AC_MBSTATE_T
1772           to AC_TYPE_MBSTATE_T.
1773
1774 2005-06-25 11:48 Christos Zoulas <christos@astron.com>
1775
1776         * Dynamically allocate the string buffers and make the
1777           default read size 256K.
1778
1779 2005-06-01 00:00 Joerg Sonnenberger <joerg@britannica.bec.de>
1780
1781         * Dragonfly ELF note support
1782
1783 2005-03-14 00:00 Giuliano Bertoletti <gb@symbolic.it>
1784
1785         * Avoid NULL pointer dereference in time conversion.
1786
1787 2005-03-06 00:00  Joerg Walter <jwalt@mail.garni.ch>
1788
1789         * Add indirect magic offset support, and search mode.
1790
1791 2005-01-12 00:00  Stepan Kasal  <kasal@ucw.cz>
1792
1793         * src/ascmagic.c (file_ascmagic): Fix three bugs about text files:
1794           If a CRLF text file happens to have CR at offset HOWMANY - 1
1795           (currently 0xffff), it should not be counted as CR line
1796           terminator.
1797           If a line has length exactly MAXLINELEN, it should not yet be
1798           treated as a ``very long line'', as MAXLINELEN is ``longest sane
1799           line length''.
1800           With CRLF, the line length was not computed correctly, and even
1801           lines of length MAXLINELEN - 1 were treated as ``very long''.
1802
1803 2004-12-07 14:15  Christos Zoulas  <christos@astron.com>
1804
1805         * bzip2 needs a lot of input buffer space on some files
1806           before it can begin uncompressing. This makes file -z
1807           fail on some bz2 files. Fix it by giving it a copy of
1808           the file descriptor to read as much as it wants if we
1809           have access to it. <christos@astron.com>
1810
1811 2004-11-24 12:39  Christos Zoulas  <christos@astron.com>
1812
1813         * Stack smash fix, and ELF more conservative reading.
1814           Jakub Bogusz <qboosh@pld-linux.org>
1815
1816 2004-11-20 18:50  Christos Zoulas  <christos@astron.com>
1817
1818         * New FreeBSD version parsing code:
1819           Jon Noack <noackjr@alumni.rice.edu>
1820
1821         * Hackish support for ucs16 strings <christos@astron.com>
1822
1823 2004-11-13 03:07  Christos Zoulas  <christos@astron.com>
1824
1825         * print the file name and line number in syntax errors.
1826
1827 2004 10-12 10:50  Christos Zoulas  <christos@astron.com>
1828
1829         * Fix stack overwriting on 0 length strings: Tim Waugh
1830             <twaugh@redhat.com> Ned Ludd <solar@gentoo.org>
1831
1832 2004-09-27 11:30  Christos Zoulas  <christos@astron.com>
1833
1834         * Remove 3rd and 4th copyright clause; approved by Ian Darwin.
1835
1836         * Fix small memory leaks; caught by: Tamas Sarlos
1837             <stamas@csillag.ilab.sztaki.hu>
1838
1839 2004-07-24 16:33  Christos Zoulas  <christos@astron.com>
1840
1841         * magic.mime update Danny Milosavljevic <danny.milo@gmx.net>
1842
1843         * FreeBSD version update Oliver Eikemeier <eikemeier@fillmore-labs.com>
1844
1845         * utime/utimes detection Ian Lance Taylor <ian@wasabisystems.com>
1846
1847         * errors reading elf magic Jakub Bogusz <qboosh@pld-linux.org>
1848
1849 2004-04-12 10:55  Christos Zoulas  <christos@astron.com>
1850
1851         * make sure that magic formats match magic types during compilation
1852
1853         * fix broken sgi magic file
1854
1855 2004-04-06 20:36  Christos Zoulas  <christos@astron.com>
1856
1857         * detect present of mbstate_t Petter Reinholdtsen <pere@hungry.com>
1858
1859         * magic fixes
1860
1861 2004-03-22 15:25  Christos Zoulas  <christos@astron.com>
1862
1863         * Lots of mime fixes
1864           (Joerg Ostertag) <ostertag@rechengilde.de>
1865
1866         * FreeBSD ELF version handling
1867           (Edwin Groothuis) <edwin@mavetju.org>
1868
1869         * correct cleanup in all cases; don't just close the file.
1870           (Christos Zoulas) <christos@astron.com>
1871
1872         * add gettext message catalogue support
1873           (Michael Piefel) <piefel@debian.org>
1874
1875         * better printout for unreadable files
1876           (Michael Piefel) <piefel@debian.org>
1877
1878         * compensate for missing MAXPATHLEN
1879           (Michael Piefel) <piefel@debian.org>
1880
1881         * add wide character string length computation
1882           (Michael Piefel) <piefel@debian.org>
1883
1884         * Avoid infinite loops caused by bad elf alignments
1885           or name and description note sizes. Reported by
1886           (Mikael Magnusson) <mmikael@comhem.se>
1887
1888 2004-03-09 13:55  Christos Zoulas  <christos@astron.com>
1889
1890         * Fix possible memory leak on error and add missing regfree
1891           (Dmitry V. Levin) <ldv@altlinux.org>
1892
1893 2003-12-23 12:12  Christos Zoulas  <christos@astron.com>
1894
1895         * fix -k flag (Maciej W. Rozycki)
1896
1897 2003-11-18 14:10  Christos Zoulas  <christos@astron.com>
1898
1899         * Try to give us much info as possible on corrupt elf files.
1900           (Willy Tarreau) <willy@w.ods.org>
1901         * Updated python bindings (Brett Funderburg)
1902            <brettf@deepfile.com>
1903
1904 2003-11-11 15:03  Christos Zoulas  <christos@astron.com>
1905
1906         * Include file.h first, because it includes config.h
1907           breaks largefile test macros otherwise.
1908           (Paul Eggert <eggert@CS.UCLA.EDU> via
1909            Lars Hecking <lhecking@nmrc.ie>)
1910
1911 2003-10-14 21:39  Christos Zoulas  <christos@astron.com>
1912
1913         * Python bindings (Brett Funderburg) <brettf@deepfile.com>
1914         * Don't lookup past the end of the buffer
1915           (Chad Hanson) <chanson@tcs-sec.com>
1916         * Add MAGIC_ERROR and api on magic_errno()
1917
1918 2003-10-08 12:40  Christos Zoulas  <christos@astron.com>
1919
1920         * handle error conditions from compile as fatal
1921           (Antti Kantee) <pooka@netbsd.org>
1922         * handle magic filename parsing sanely
1923         * more magic fixes.
1924         * fix a memory leak (Illes Marton) <illes.marton@balabit.hu>
1925         * describe magic file handling
1926           (Bryan Henderson) <bryanh@giraffe-data.com>
1927
1928 2003-09-12 15:09  Christos Zoulas  <christos@astron.com>
1929
1930         * update magic files.
1931         * remove largefile support from file.h; it breaks things on most OS's
1932
1933 2003-08-10 10:25  Christos Zoulas  <christos@astron.com>
1934
1935         * fix unmapping'ing of mmaped files.
1936
1937 2003-07-10 12:03  Christos Zoulas  <christos@astron.com>
1938
1939         * don't exit with -1 on error; always exit 1 (Marty Leisner)
1940         * restore utimes code.
1941
1942 2003-06-10 17:03  Christos Zoulas  <christos@astron.com>
1943
1944         * make sure we don't access uninitialized memory.
1945         * pass lint
1946         * #ifdef __cplusplus in magic.h
1947
1948 2003-05-25 19:23  Christos Zoulas  <christos@astron.com>
1949
1950         * rename cvs magic file to revision to deal with
1951           case insensitive filesystems.
1952
1953 2003-05-23 17:03  Christos Zoulas  <christos@astron.com>
1954
1955         * documentation fixes from Michael Piefel <piefel@debian.org>
1956         * magic fixes (various)
1957         * revert basename magic in .mgc name determination
1958         * buffer protection in uncompress,
1959           signness issues,
1960           close files
1961           Maciej W. Rozycki <macro@ds2.pg.gda.pl
1962
1963 2003-04-21 20:12  Christos Zoulas  <christos@astron.com>
1964
1965         * fix zsh magic
1966
1967 2003-04-04 16:59  Christos Zoulas  <christos@astron.com>
1968
1969         * fix operand sort order in string.
1970
1971 2003-04-02 17:30  Christos Zoulas  <christos@astron.com>
1972
1973         * cleanup namespace in magic.h
1974
1975 2003-04-02 13:50  Christos Zoulas  <christos@astron.com>
1976
1977         * Magic additions (Alex Ott)
1978         * Fix bug that broke VPATH compilation (Peter Breitenlohner)
1979
1980 2003-03-28 16:03  Christos Zoulas  <christos@astron.com>
1981
1982         * remove packed attribute from magic struct.
1983         * make the magic struct properly aligned.
1984         * bump version number of compiled files to 2.
1985
1986 2003-03-27 13:10  Christos Zoulas  <christos@astron.com>
1987
1988         * separate tar detection and run it before softmagic.
1989         * fix reversed symlink test.
1990         * fix version printing.
1991         * make separator a string instead of a char.
1992         * update manual page and sort options.
1993
1994 2003-03-26 11:00  Christos Zoulas  <christos@astron.com>
1995
1996         * Pass lint
1997         * make NULL in magic_file mean stdin
1998         * Fix "-" argument to file to pass NULL to magic_file
1999         * avoid pointer casts by using memcpy
2000         * rename magic_buf -> magic_buffer
2001         * keep only the first error
2002         * manual page: new sentence, new line
2003         * fix typo in api function (magic_buf -> magic_buffer)