diff --git a/internal/magic/geo.go b/internal/magic/geo.go index 6df419e..f077e16 100644 --- a/internal/magic/geo.go +++ b/internal/magic/geo.go @@ -11,6 +11,17 @@ func Shp(raw []byte, limit uint32) bool { if len(raw) < 112 { return false } + + if !(binary.BigEndian.Uint32(raw[0:4]) == 9994 && + binary.BigEndian.Uint32(raw[4:8]) == 0 && + binary.BigEndian.Uint32(raw[8:12]) == 0 && + binary.BigEndian.Uint32(raw[12:16]) == 0 && + binary.BigEndian.Uint32(raw[16:20]) == 0 && + binary.BigEndian.Uint32(raw[20:24]) == 0 && + binary.LittleEndian.Uint32(raw[28:32]) == 1000) { + return false + } + shapeTypes := []int{ 0, // Null shape 1, // Point