Use TVB accessor functions instead of tvb_get_ptr()
authormorriss <morriss@f5534014-38df-0310-8fa8-9805f1628bb7>
Fri, 20 May 2011 03:15:18 +0000 (03:15 +0000)
committermorriss <morriss@f5534014-38df-0310-8fa8-9805f1628bb7>
Fri, 20 May 2011 03:15:18 +0000 (03:15 +0000)
git-svn-id: http://anonsvn.wireshark.org/wireshark/trunk@37320 f5534014-38df-0310-8fa8-9805f1628bb7

epan/dissectors/packet-rmi.c
epan/dissectors/packet-tapa.c

index 9b8e044a7ef40b2f3f14806fa98b75c4861ee22b..e76e3484c60fc8c1c006932b8e69893811ebcbc0 100644 (file)
@@ -41,7 +41,7 @@ static void
 dissect_ser(tvbuff_t *tvb, proto_tree *tree);
 
 static rmi_type
-get_rmi_type(const guchar *data, int datalen);
+get_rmi_type(tvbuff_t *tvb, gint offset, int datalen);
 
 /* Initialize the protocol and registered fields */
 static int proto_rmi             = -1;
@@ -117,7 +117,6 @@ dissect_rmi(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
     gint       offset;
     gint       next_offset;
     int        datalen;
-    const guchar *data;
 
     guint16    version, len, port;
     guint8     message, proto;
@@ -125,7 +124,7 @@ dissect_rmi(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
     rmi_type   rmitype;
 
     const char *epid_hostname;
-       guint epid_len;
+    guint epid_len;
 
     offset     = 0;
     rmitype    = 0;
@@ -134,9 +133,8 @@ dissect_rmi(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
     col_set_str(pinfo->cinfo, COL_PROTOCOL, "RMI");
 
     datalen = tvb_find_line_end(tvb, offset, -1, &next_offset, FALSE);
-    data = tvb_get_ptr(tvb, offset, datalen);
 
-    rmitype = get_rmi_type(data, datalen);
+    rmitype = get_rmi_type(tvb, offset, datalen);
 
     if (check_col(pinfo->cinfo, COL_INFO)) {
        switch(rmitype) {
@@ -268,9 +266,12 @@ dissect_ser(tvbuff_t *tvb, proto_tree *tree)
 }
 
 static rmi_type
-get_rmi_type(const guchar *data, int datalen)
+get_rmi_type(tvbuff_t *tvb, gint offset, int datalen)
 {
     guint16 ser_magic;
+    guchar data[4];
+
+    tvb_memcpy(tvb, data, offset, (datalen > 4) ? 4 : datalen);
 
     if (datalen >= 2) {
        ser_magic = data[0] << 8 | data[1];
index f399b57b6240b1230adee6bcc1ffaf2ab0e03128..974a91fe5e154cc99391b0d7411eb8e28f075286 100644 (file)
@@ -133,12 +133,14 @@ static const value_string tapa_discover_unknown_vals[] = {
 };
 
 static gboolean
-check_ascii(const guint8 *buffer, gint length)
+check_ascii(tvbuff_t *tvb, gint offset, gint length)
 {
        gint i;
+       guint8 buf;
 
        for (i = 0; i < length; i++)
-               if (buffer[i] < 0x20 || buffer[i] >= 0x80)
+               buf = tvb_get_guint8(tvb, offset+i);
+               if (buf < 0x20 || buf >= 0x80)
                        return FALSE;
        return TRUE;
 }
@@ -237,8 +239,7 @@ dissect_tapa_discover_unknown_new_tlv(tvbuff_t *tvb, packet_info *pinfo, proto_t
 
                DISSECTOR_ASSERT(item_length > 0);
 
-               is_ascii = check_ascii(tvb_get_ptr(tvb, offset + 4, item_length),
-                               item_length);
+               is_ascii = check_ascii(tvb, offset + 4, item_length);
                if (is_ascii)
                        item_text = tvb_format_text(tvb, offset + 4, item_length);
                else