diff options
author | Guy Harris <gharris@sonic.net> | 2020-07-02 14:06:36 -0700 |
---|---|---|
committer | Guy Harris <gharris@sonic.net> | 2020-07-02 21:29:23 +0000 |
commit | b46a554ae73e72e0b72ce33479697aa586d1090e (patch) | |
tree | 6acb63fd0a924e36db6466edc867b06088dc3be6 /wiretap/packetlogger.c | |
parent | af31bff2f916e61f6e947973c94e9ea4da34cc47 (diff) |
Packetlogger: check for more packet types in the libwiretap heuristics.
As we're now checking the first *few* packets of the file, we must allow
*all* Packetlogger packet types when checking whether the purported
packet type is valid.
Put a note in the Packetlogger dissector so that, if anybody adds a new
packet type, they know that they have to add it to the reader code as
well.
Bug: 16670
Change-Id: Id83493f678182fd3e1b5537f4dfa295fe26dfcb1
Reviewed-on: https://code.wireshark.org/review/37675
Petri-Dish: Guy Harris <gharris@sonic.net>
Tested-by: Petri Dish Buildbot
Reviewed-by: Guy Harris <gharris@sonic.net>
Diffstat (limited to 'wiretap/packetlogger.c')
-rw-r--r-- | wiretap/packetlogger.c | 37 |
1 files changed, 36 insertions, 1 deletions
diff --git a/wiretap/packetlogger.c b/wiretap/packetlogger.c index 884eb05e0e..cee12a7405 100644 --- a/wiretap/packetlogger.c +++ b/wiretap/packetlogger.c @@ -32,6 +32,22 @@ typedef struct packetlogger_header { guint32 ts_usecs; } packetlogger_header_t; +/* Packet types. */ +#define PKT_HCI_COMMAND 0x00 +#define PKT_HCI_EVENT 0x01 +#define PKT_SENT_ACL_DATA 0x02 +#define PKT_RECV_ACL_DATA 0x03 +#define PKT_LMP_SEND 0x0A +#define PKT_LMP_RECV 0x0B +#define PKT_SYSLOG 0xF7 +#define PKT_KERNEL 0xF8 +#define PKT_KERNEL_DEBUG 0xF9 +#define PKT_ERROR 0xFA +#define PKT_POWER 0xFB +#define PKT_NOTE 0xFC +#define PKT_CONFIG 0xFD +#define PKT_NEW_CONTROLLER 0xFE + static gboolean packetlogger_read(wtap *wth, wtap_rec *rec, Buffer *buf, int *err, gchar **err_info, gint64 *data_offset); @@ -271,8 +287,27 @@ packetlogger_check_record(wtap *wth, packetlogger_header_t *pl_hdr, int *err, } /* Verify this file belongs to us */ - if (!(type < 0x04 || type == 0xFB || type == 0xFC || type == 0xFE || type == 0xFF)) + switch (type) { + + case PKT_HCI_COMMAND: + case PKT_HCI_EVENT: + case PKT_SENT_ACL_DATA: + case PKT_RECV_ACL_DATA: + case PKT_LMP_SEND: + case PKT_LMP_RECV: + case PKT_SYSLOG: + case PKT_KERNEL: + case PKT_KERNEL_DEBUG: + case PKT_ERROR: + case PKT_POWER: + case PKT_NOTE: + case PKT_CONFIG: + case PKT_NEW_CONTROLLER: + break; + + default: return WTAP_OPEN_NOT_MINE; + } length--; |