aboutsummaryrefslogtreecommitdiffstats
path: root/wiretap
diff options
context:
space:
mode:
authorGuy Harris <gharris@sonic.net>2020-07-02 14:06:36 -0700
committerGuy Harris <gharris@sonic.net>2020-07-02 21:29:23 +0000
commitb46a554ae73e72e0b72ce33479697aa586d1090e (patch)
tree6acb63fd0a924e36db6466edc867b06088dc3be6 /wiretap
parentaf31bff2f916e61f6e947973c94e9ea4da34cc47 (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')
-rw-r--r--wiretap/packetlogger.c37
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--;