aboutgitcodebugslistschat
diff options
context:
space:
mode:
-rw-r--r--util.c3
1 files changed, 1 insertions, 2 deletions
diff --git a/util.c b/util.c
index 6ce7c9a..285c0b6 100644
--- a/util.c
+++ b/util.c
@@ -92,6 +92,7 @@ char *ipv6_l4hdr(struct ipv6hdr *ip6h, uint8_t *proto)
nh = ip6h->nexthdr;
hdrlen = sizeof(struct ipv6hdr);
} else {
+ o = (struct ipv6_opt_hdr *)(((char *)ip6h) + offset);
nh = o->nexthdr;
hdrlen = (o->hdrlen + 1) * 8;
}
@@ -103,8 +104,6 @@ char *ipv6_l4hdr(struct ipv6hdr *ip6h, uint8_t *proto)
nh == 51 || nh == 60 || nh == 135 || nh == 139 ||
nh == 140 || nh == 253 || nh == 254) {
offset += hdrlen;
- o = (struct ipv6_opt_hdr *)(unsigned char *)ip6h +
- offset;
} else {
*proto = nh;
return (char *)(ip6h + 1) + offset;