summaryrefslogtreecommitdiff
path: root/accel-pppd/ipv6/dhcpv6_packet.c
diff options
context:
space:
mode:
Diffstat (limited to 'accel-pppd/ipv6/dhcpv6_packet.c')
-rw-r--r--accel-pppd/ipv6/dhcpv6_packet.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/accel-pppd/ipv6/dhcpv6_packet.c b/accel-pppd/ipv6/dhcpv6_packet.c
index 8decc8b..fd2b0dd 100644
--- a/accel-pppd/ipv6/dhcpv6_packet.c
+++ b/accel-pppd/ipv6/dhcpv6_packet.c
@@ -82,20 +82,20 @@ static void *parse_option(void *ptr, void *endptr, struct list_head *opt_list)
list_add_tail(&opt->entry, opt_list);
for (dopt = known_options; dopt->code; dopt++) {
- if (dopt->code)
+ if (dopt->code == ntohs(opth->code))
break;
}
if (dopt->len) {
endptr = ptr + sizeof(*opth) + ntohs(opth->len);
- ptr += sizeof(*opth) + dopt->len;
+ ptr += dopt->len;
while (ptr < endptr) {
ptr = parse_option(ptr, endptr, &opt->opt_list);
if (!ptr)
return NULL;
}
} else
- ptr = ptr + sizeof(*opth) + ntohs(opth->len);
+ ptr += sizeof(*opth) + ntohs(opth->len);
return ptr;
}