Skip to content

Commit dfcfd00

Browse files
m3u: check NL after signature for fewer false-positives
1 parent b40e4de commit dfcfd00

File tree

3 files changed

+6
-5
lines changed

3 files changed

+6
-5
lines changed

internal/magic/audio.go

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -40,9 +40,10 @@ func Voc(raw []byte, _ uint32) bool {
4040
return bytes.HasPrefix(raw, []byte("Creative Voice File"))
4141
}
4242

43-
// M3u matches a Playlist file.
44-
func M3u(raw []byte, _ uint32) bool {
45-
return bytes.HasPrefix(raw, []byte("#EXTM3U"))
43+
// M3U matches a Playlist file.
44+
func M3U(raw []byte, _ uint32) bool {
45+
return bytes.HasPrefix(raw, []byte("#EXTM3U\n")) ||
46+
bytes.HasPrefix(raw, []byte("#EXTM3U\r\n"))
4647
}
4748

4849
// AAC matches an Advanced Audio Coding file.

mimetype_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -196,7 +196,7 @@ a,"b`,
196196
{"lua", "#!/usr/bin/lua", "text/x-lua", one},
197197
{"lua space", "#! /usr/bin/lua", "text/x-lua", none},
198198
{"lz", "\x4c\x5a\x49\x50", "application/lzip", one},
199-
{"m3u", "#EXTM3U", "application/vnd.apple.mpegurl", one},
199+
{"m3u", "#EXTM3U\n", "application/vnd.apple.mpegurl", one},
200200
{"m4a", "\x00\x00\x00\x18ftypM4A ", "audio/x-m4a", one},
201201
{"audio mp4 F4A", "\x00\x00\x00\x18ftypF4A ", "audio/mp4", one},
202202
{"audio mp4 F4B", "\x00\x00\x00\x18ftypF4B ", "audio/mp4", none},

tree.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -174,7 +174,7 @@ var (
174174
aMp4 = newMIME("audio/mp4", ".mp4", magic.AMp4).
175175
alias("audio/x-mp4a")
176176
m4a = newMIME("audio/x-m4a", ".m4a", magic.M4a)
177-
m3u = newMIME("application/vnd.apple.mpegurl", ".m3u", magic.M3u).
177+
m3u = newMIME("application/vnd.apple.mpegurl", ".m3u", magic.M3U).
178178
alias("audio/mpegurl", "application/x-mpegurl")
179179
m4v = newMIME("video/x-m4v", ".m4v", magic.M4v)
180180
mj2 = newMIME("video/mj2", ".mj2", magic.Mj2)

0 commit comments

Comments
 (0)