aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--packet-zebra.c16
1 files changed, 7 insertions, 9 deletions
diff --git a/packet-zebra.c b/packet-zebra.c
index 940f6c0383..02761b5e63 100644
--- a/packet-zebra.c
+++ b/packet-zebra.c
@@ -3,7 +3,7 @@
*
* Jochen Friedrich <jochen@scram.de>
*
- * $Id: packet-zebra.c,v 1.2 2000/08/18 15:45:30 deniel Exp $
+ * $Id: packet-zebra.c,v 1.3 2000/08/20 09:07:16 guy Exp $
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@zing.org>
@@ -198,7 +198,7 @@ dissect_zebra_request(proto_tree *tree, gboolean request, tvbuff_t *tvb,
guint32 prefix4;
guint16 i;
guint8 buffer6[16], prefixlen, message;
- gpointer prefix, ptr;
+ guint8 *prefix;
proto_item *ti;
proto_tree *msg_tree;
@@ -319,9 +319,8 @@ dissect_zebra_request(proto_tree *tree, gboolean request, tvbuff_t *tvb,
prefix = tvb_get_ptr(tvb, offset, PSIZE(prefixlen));
prefix4 = 0;
- ptr = (gpointer) &prefix4;
- for (i=0; i< PSIZE(prefixlen); i++)
- *(guint8*)ptr++ = *(guint8*)prefix++;
+ memcpy(&prefix4, prefix,
+ MIN(PSIZE(prefixlen), sizeof prefix4));
proto_tree_add_ipv4(tree, hf_zebra_prefix4,
tvb, offset, PSIZE(prefixlen), prefix4);
offset += PSIZE(prefixlen);
@@ -397,10 +396,9 @@ dissect_zebra_request(proto_tree *tree, gboolean request, tvbuff_t *tvb,
offset += 1;
prefix = tvb_get_ptr(tvb, offset, PSIZE(prefixlen));
- for (i=0; i < 16; i++) buffer6[i] = 0;
- ptr = (gpointer) buffer6;
- for (i=0; i< PSIZE(prefixlen); i++)
- *(guint8*)ptr++ = *(guint8*)prefix++;
+ memset(buffer6, '\0', sizeof buffer6);
+ memcpy(buffer6, prefix,
+ MIN(PSIZE(prefixlen), sizeof buffer6));
proto_tree_add_ipv6(tree, hf_zebra_prefix6,
tvb, offset, PSIZE(prefixlen), buffer6);
offset += PSIZE(prefixlen);