The iBeacon branch guarded on `l >= 20` but reads p[20] (the Tx-power byte), so a payload clamped to exactly 20 bytes read one byte past the advertising data. Require the full 21 bytes (16 UUID + 2 major + 2 minor + 1 Tx).
The iBeacon branch guarded on `l >= 20` but reads p[20] (the Tx-power byte), so a payload clamped to exactly 20 bytes read one byte past the advertising data. Require the full 21 bytes (16 UUID + 2 major + 2 minor + 1 Tx).