head	1.1;
branch	1.1.1;
access;
symbols
	FILE5_48:1.1.1.2
	netbsd-11-0-RC4:1.1.1.1
	netbsd-11-0-RC3:1.1.1.1
	netbsd-11-0-RC2:1.1.1.1
	netbsd-11-0-RC1:1.1.1.1
	perseant-exfatfs-base-20250801:1.1.1.1
	netbsd-11:1.1.1.1.0.6
	netbsd-11-base:1.1.1.1
	netbsd-10-1-RELEASE:1.1.1.1
	perseant-exfatfs-base-20240630:1.1.1.1
	perseant-exfatfs:1.1.1.1.0.4
	perseant-exfatfs-base:1.1.1.1
	netbsd-10-0-RELEASE:1.1.1.1
	netbsd-10-0-RC6:1.1.1.1
	netbsd-10-0-RC5:1.1.1.1
	netbsd-10-0-RC4:1.1.1.1
	netbsd-10-0-RC3:1.1.1.1
	netbsd-10-0-RC2:1.1.1.1
	netbsd-10-0-RC1:1.1.1.1
	FILE5_45:1.1.1.1
	netbsd-10:1.1.1.1.0.2
	netbsd-10-base:1.1.1.1
	FILE5_43:1.1.1.1
	CHRISTOS:1.1.1;
locks; strict;
comment	@# @;


1.1
date	2022.09.24.20.07.54;	author christos;	state Exp;
branches
	1.1.1.1;
next	;
commitid	Nf6F9kcpc0EPC9VD;

1.1.1.1
date	2022.09.24.20.07.54;	author christos;	state Exp;
branches;
next	1.1.1.2;
commitid	Nf6F9kcpc0EPC9VD;

1.1.1.2
date	2026.06.10.15.59.14;	author christos;	state Exp;
branches;
next	;
commitid	3UWc0DrzTz7bHgJG;


desc
@@


1.1
log
@Initial revision
@
text
@
#------------------------------------------------------------------------------
# $File: uf2,v 1.3 2021/04/28 01:00:31 christos Exp $
# uf2:  file(1) magic for UF2 firmware image files
#
# https://github.com/microsoft/uf2
#
# Created by Blake Ramsdell <blaker@@gmail.com>

0	string	UF2\n		UF2 firmware image
!:ext uf2
# This is for checking the other magic numbers, do we want to do that?
#>4	lelong	0x9E5D5157	howdy
#>>508	lelong	0x0AB16F30	doody
>8	lelong	&0x0001		\b, not main flash
>8	lelong	&0x1000		\b, file container
>8	lelong	&0x2000		\b, family

# To update the UF2 family data, use this fine command
#
# families=`curl \
# https://raw.githubusercontent.com/microsoft/uf2/master/utils/uf2families.json \
# | jq -r '.[] | ">>28\tlelong\t\(.id)\t\(.description)"' | sort -n -k 3` && \
# perl -0777 -i -pe \
# "s/(### BEGIN UF2 FAMILIES\\n).*(\\n### END UF2 FAMILIES)/\$1$families\$2/s" \
# uf2

### BEGIN UF2 FAMILIES
>>28	lelong	0x00ff6919	ST STM32L4xx
>>28	lelong	0x04240bdf	ST STM32L5xx
>>28	lelong	0x16573617	Microchip (Atmel) ATmega32
>>28	lelong	0x1851780a	Microchip (Atmel) SAML21
>>28	lelong	0x1b57745f	Nordic NRF52
>>28	lelong	0x1c5f21b0	ESP32
>>28	lelong	0x1e1f432d	ST STM32L1xx
>>28	lelong	0x202e3a91	ST STM32L0xx
>>28	lelong	0x21460ff0	ST STM32WLxx
>>28	lelong	0x2abc77ec	NXP LPC55xx
>>28	lelong	0x300f5633	ST STM32G0xx
>>28	lelong	0x31d228c6	GD32F350
>>28	lelong	0x4c71240a	ST STM32G4xx
>>28	lelong	0x4fb2d5bd	NXP i.MX RT10XX
>>28	lelong	0x53b80f00	ST STM32F7xx
>>28	lelong	0x55114460	Microchip (Atmel) SAMD51
>>28	lelong	0x57755a57	ST STM32F401
>>28	lelong	0x5a18069b	Cypress FX2
>>28	lelong	0x5d1a0a2e	ST STM32F2xx
>>28	lelong	0x5ee21072	ST STM32F103
>>28	lelong	0x647824b6	ST STM32F0xx
>>28	lelong	0x68ed2b88	Microchip (Atmel) SAMD21
>>28	lelong	0x6b846188	ST STM32F3xx
>>28	lelong	0x6d0922fa	ST STM32F407
>>28	lelong	0x6db66082	ST STM32H7xx
>>28	lelong	0x70d16653	ST STM32WBxx
>>28	lelong	0x7eab61ed	ESP8266
>>28	lelong	0x7f83e793	NXP KL32L2x
>>28	lelong	0x8fb060fe	ST STM32F407VG
>>28	lelong	0xada52840	Nordic NRF52840
>>28	lelong	0xbfdd4eee	ESP32-S2
>>28	lelong	0xc47e5767	ESP32-S3
>>28	lelong	0xd42ba06c	ESP32-C3
>>28	lelong	0xe48bff56	Raspberry Pi RP2040
### END UF2 FAMILIES

>>28	default	x
>>>28	lelong	x		%#08x
>8	lelong&0x2000	0	\b, file size
>>28	lelong	x		%#08x
>8	lelong	&0x4000		\b, MD5 checksum present
>8	lelong	&0x8000		\b, extension tags present
>12	lelong	x 		\b, address %#08x
>24	lelong	x		\b, %u total blocks
@


1.1.1.1
log
@Import file-5.43+; last was file-5.40

2022-09-20  17:12  Christos Zoulas <christos@@zoulas.com>

	* fixed various clustefuzz issues

2022-09-19  15:54  Christos Zoulas <christos@@zoulas.com>

	* Fix error detection for decompression code (Vincent Mihalkovic)

2022-09-15  13:50  Christos Zoulas <christos@@zoulas.com>

	* Add MAGIC_NO_COMPRESS_FORK and use it to produce a more
	  meaningful error message if we are sandboxing.

2022-09-15  10:45  Christos Zoulas <christos@@zoulas.com>

	* Add built-in lzip decompression support (Michal Gorny)

2022-09-14  10:35  Christos Zoulas <christos@@zoulas.com>

	* Add built-in zstd decompression support (Martin Rodriguez Reboredo)

2022-09-13  14:55  Christos Zoulas <christos@@zoulas.com>

	* release 5.43

2022-09-10   9:17  Christos Zoulas <christos@@zoulas.com>

	* Add octal indirect magic (Michal Gorny)

2022-08-17  11:43  Christos Zoulas <christos@@zoulas.com>

	* PR/374: avoid infinite loop in non-wide code (piru)
	* PR/373: Obey MAGIC_CONTINUE with multiple magic files (vismarli)

2022-07-26  11:10  Christos Zoulas <christos@@zoulas.com>

	* Fix bug with large flist (Florian Weimer)

2022-07-07  13:21  Christos Zoulas <christos@@zoulas.com>

        * PR/364: Detect non-nul-terminated core filenames from QEMU
	  (mam-ableton)

2022-07-04  15:45  Christos Zoulas <christos@@zoulas.com>

	* PR/359: Add support for http://ndjson.org/ (darose)
	* PR/362: Fix wide printing (ro-ee)
	* PR/358: Fix width for -f - (jpalus)
	* PR/356: Fix JSON constant parsing (davewhite)

2022-06-10   9:40  Christos Zoulas <christos@@zoulas.com>

	* release 5.42

2022-05-31  14:50   Christos Zoulas <christos@@zoulas.com>

	* PR/348: add missing cases to prevent file from aborting on
	  random magic files.

2022-05-27  21:05   Christos Zoulas <christos@@zoulas.com>

	* PR/351: octalify filenames when not raw before printing.

2022-04-18  17:51   Christos Zoulas <christos@@zoulas.com>

	* fix regex cacheing bug (Dirk Mueller)
	* merge file_regcomp and file_regerror() to simplify the code
	  and reduce memory requirements for storing regexes (Dirk Mueller)

2022-03-19  12:56   Christos Zoulas <christos@@zoulas.com>

	* cache regex (Dirk Mueller)
	* detect filesystem full by flushing output (Dirk Mueller)

2021-11-19  12:36   Christos Zoulas <christos@@zoulas.com>

	* implement running decompressor programs using
	  posix_spawnp(2) instead of vfork(2)

2021-10-24  11:51   Christos Zoulas <christos@@zoulas.com>

	* Add support for msdos dates and times

2021-10-20   9:55   Christos Zoulas <christos@@zoulas.com>

	* use the system byte swapping functions if available (Werner Fink)

2021-10-18  11:57  Christos Zoulas <christos@@zoulas.com>

	* release 5.41

2021-09-23  03:51  Christos Zoulas <christos@@zoulas.com>

	* Avinash Sonawane: Fix tzname detection

2021-09-03  09:17  Christos Zoulas <christos@@zoulas.com>

	* Fix relationship tests with "search" magic, don't short circuit
	  logic

2021-07-13  01:06  Christos Zoulas <christos@@zoulas.com>

	* Fix memory leak in compile mode

2021-07-01  03:51  Christos Zoulas <christos@@zoulas.com>

	* PR/272: kiefermat: Only set returnval = 1 when we printed something
	  (in all cases print or !print). This simplifies the logic and fixes
	  the issue in the PR with -k and --mime-type there was no continuation
	  printed before the default case.

2021-06-30  13:07  Christos Zoulas <christos@@zoulas.com>

	* PR/270: Don't translate unprintable characters in %s magic formats
	  when -r
	* PR/269: Avoid undefined behavior with clang (adding offset to NULL)

2021-05-09  18:38  Christos Zoulas <christos@@zoulas.com>

	* Add a new flag (f) that requires that the match is a full word,
	   not a partial word match.
	* Add varint types (unused)

2021-04-19  17:17  Christos Zoulas <christos@@zoulas.com>

	* PR/256: mutableVoid: If the file is less than 3 bytes, use the file
	  length to determine type
	* PR/259: aleksandr.v.novichkov: mime printing through indirect magic
	  is not taken into account, use match directly so that it does.

2021-04-04  17:02  Christos Zoulas <christos@@zoulas.com>

	* count the total bytes found not the total byte positions
	  in order to determine encoding (Anatol Belski)
@
text
@@


1.1.1.2
log
@Import file-5.48 (previous was file-5.45)

2026-05-07  11:32  Christos Zoulas <christos@@zoulas.com>

	* release 5.48

2026-05-11  15:55 Christos Zoulas <christos@@zoulas.com>

	* add landlock support (valoq)

2026-04-19  15:55 Christos Zoulas <christos@@zoulas.com>

	* add BE/LE GUID

2026-04-17  11:05 Christos Zoulas <christos@@zoulas.com>

	* multiple fixes to prevent integer overflow in 32 bits (kerwin)

2026-04-15  12:40 Christos Zoulas <christos@@zoulas.com>

	* PR/745: streamout: Don't flush when trying to set negative offsets
	          on pipes, just continue, fixes 'cat file.zip | file -'
	* PR/753: vmihalko: Fix race is magic_getpath()

2026-03-11  15:14 Christos Zoulas <christos@@zoulas.com>

	* PR/728: Anton Monroe: Reinstate regex/c

2026-02-26  11:32  Christos Zoulas <christos@@zoulas.com>

	* release 5.47

2026-02-04  09:54  Christos Zoulas <christos@@zoulas.com>
	* Better multi-compound document identification by following the
	  order of the directories entries. (Thomas Ledoux)

2026-01-19  14:00  Christos Zoulas <christos@@zoulas.com>
	* if stat fails, don't attempt to restore times (Steven Grubb)

2025-05-28  15:20  Christos Zoulas <christos@@zoulas.com>

	* PR/622: Odd_Bloke: Handle negative offsets in file_buffer(),
	  when fd is not available.

2025-05-28  12:50  Christos Zoulas <christos@@zoulas.com>

	* PR/655: jsummers: Obey str_flags in strings like we do for search
	  and regex
	* PR/659: Pitzl: Apply MAGIC_CONTINUE to annotations; i.e. print
	  only the first, unless -k is specified.

2024-12-19  14:44  Christos Zoulas <christos@@zoulas.com>

	* PR/592: allow + in format strings
	* PR/592: signed operations should be done in signed context

2024-12-05  13:50 Christos Zoulas <christos@@zoulas.com>

	* PR/578: jsummers: Don't crash on cygwin when tm_mon == -1
	* PR/579: net147: Fix stack overrun.

2024-11-27  14:44  Christos Zoulas <christos@@zoulas.com>

	* release 5.46
	* Add OFFPOSITIVE

2024-11-25  13:56  Christos Zoulas <christos@@zoulas.com>

	* avoid leaking symbols in libmagic

2024-11-10  13:56  Christos Zoulas <christos@@zoulas.com>

	* PR/562: jsummers: Search/regex offsets are absolute to the
	  beginning of the file, so adjust them by subtracting the
	  offset that the "use" starts so that we don't double-count it.


2024-11-09  19:30  Christos Zoulas <christos@@zoulas.com>
 	* PR/543: matshch: bump nbuf so we can get the flags into the buffer.


2024-11-02  14:34  Christos Zoulas <christos@@zoulas.com>

 	* Add Android elf notes (enh)

2023-12-29  12:55  Christos Zoulas <christos@@zoulas.com>

	* Add limit for number of magic warnings allowed

2023-07-29  12:55  Christos Zoulas <christos@@zoulas.com>

	* check regex bounds (found by clusterfuzz)
@
text
@d3 1
a3 1
# $File: uf2,v 1.6 2024/09/04 19:08:08 christos Exp $
a30 2
>>28	lelong	0x06d1097b	ST STM32F411xC
>>28	lelong	0x11de784a	M0SENSE BL702
a37 1
>>28	lelong	0x22e0d6fc	Realtek AmebaZ RTL8710B
a38 2
>>28	lelong	0x2b88d29c	ESP32-C2
>>28	lelong	0x2dc309c5	ST STM32F411xE
a40 4
>>28	lelong	0x332726f6	ESP32-H2
>>28	lelong	0x3379CFE2	Realtek AmebaD RTL8720D
>>28	lelong	0x3d308e94	ESP32-P4
>>28	lelong	0x4b684d71	Sipeed MaixPlay-U4 (BL618)
a41 1
>>28	lelong	0x4f6ace52	LISTENAI CSK300x/400x
a42 1
>>28	lelong	0x51e903a8	Xradiotech 809
a43 1
>>28	lelong	0x540ddf62	ESP32-C6
d45 1
a45 1
>>28	lelong	0x57755a57	ST STM32F4xx
a48 1
>>28	lelong	0x621e937a	Nordic NRF52833
a49 1
>>28	lelong	0x675a40b0	Beken 7231U/7231T
a50 2
>>28	lelong	0x699b62ec	WCH CH32V2xx and CH32V3xx
>>28	lelong	0x6a82cc42	Beken 7251/7252
a53 2
>>28	lelong	0x6e7348a8	LISTENAI CSK60xx
>>28	lelong	0x6f752678	Nordic NRF52832xxAB
a54 4
>>28	lelong	0x72721d4e	Nordic NRF52832xxAA
>>28	lelong	0x77d850c4	ESP32-C61
>>28	lelong	0x7b3ef230	Beken 7231N
>>28	lelong	0x7be8976d	Renesas RA4M1
a57 4
>>28	lelong	0x9517422f	Renesas RZ/A1LU (R7S7210xx)
>>28	lelong	0x9af03e33	GigaDevice GD32VF103
>>28	lelong	0x9fffd543	Realtek Ameba1 RTL8710A
>>28	lelong	0xa0c97b8e	ArteryTek AT32F415
a61 2
>>28	lelong	0xde1270b7	Boufallo 602
>>28	lelong	0xe08f7564	Realtek AmebaZ2 RTL8720C
a62 6
>>28	lelong	0xe48bff57	Raspberry Pi MC: Absolute (unpartitioned) download
>>28	lelong	0xe48bff58	Raspberry Pi MC: Data partition download
>>28	lelong	0xe48bff59	Raspberry Pi RP2350, Secure Arm image
>>28	lelong	0xe48bff5a	Raspberry Pi RP2350, RISC-V image
>>28	lelong	0xe48bff5b	Raspberry Pi RP2350, Non-secure Arm image
>>28	lelong	0xf71c0343	ESP32-C5
d71 1
a71 1
>12	lelong	x 		\b, base address %#08x
@

