aboutsummaryrefslogtreecommitdiffstats
path: root/epan/crc6-tvb.c
diff options
context:
space:
mode:
authorGuy Harris <guy@alum.mit.edu>2014-08-08 13:02:46 -0700
committerGuy Harris <guy@alum.mit.edu>2014-08-08 20:03:29 +0000
commitbbdd34a06b4ca9b4c8fea413ffb283f305881025 (patch)
tree5dd8e9d8cf5650129f5f0c6bd5224fdc27236da5 /epan/crc6-tvb.c
parent479e2881f85d835982292d3b4a5dd9c144eecc7a (diff)
Add a tvbuff version of crc6_compute().
Use it in the MBMS synchronisation protocol dissector, rather than calling tvb_get_ptr() there. Change-Id: I7ddb3c6b30547826cb5372352c7c483d8a24dc8e Reviewed-on: https://code.wireshark.org/review/3514 Reviewed-by: Guy Harris <guy@alum.mit.edu>
Diffstat (limited to 'epan/crc6-tvb.c')
-rw-r--r--epan/crc6-tvb.c39
1 files changed, 39 insertions, 0 deletions
diff --git a/epan/crc6-tvb.c b/epan/crc6-tvb.c
new file mode 100644
index 0000000000..c9a2e4470d
--- /dev/null
+++ b/epan/crc6-tvb.c
@@ -0,0 +1,39 @@
+/* crc6-tvb.c
+ * CRC-6 tvb routines
+ *
+ * Wireshark - Network traffic analyzer
+ * By Gerald Combs <gerald@wireshark.org>
+ * Copyright 1998 Gerald Combs
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ */
+
+#include "config.h"
+
+#include <glib.h>
+#include <epan/tvbuff.h>
+#include <wsutil/crc6.h>
+#include <epan/crc6-tvb.h>
+
+guint16
+crc6_compute_tvb(tvbuff_t *tvb, int len)
+{
+ const guint8 *buf;
+
+ tvb_ensure_bytes_exist(tvb, 0, len); /* len == -1 not allowed */
+ buf = tvb_get_ptr(tvb, 0, len);
+
+ return crc6_compute(buf, len);
+}