From 97aff06df429d7067e481a52bbf1e6ee63a43a80 Mon Sep 17 00:00:00 2001 From: YAMAMOTO Takashi Date: Fri, 18 Oct 2013 16:12:11 +0900 Subject: [PATCH] packet lib: icmpv6.nd_router_advert: skip unknown options correctly this should fix a problem reported by Gabriele Gerbino on ryu-devel. Signed-off-by: YAMAMOTO Takashi Signed-off-by: FUJITA Tomonori --- ryu/lib/packet/icmpv6.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/ryu/lib/packet/icmpv6.py b/ryu/lib/packet/icmpv6.py index 6b99e40c..256f53d6 100644 --- a/ryu/lib/packet/icmpv6.py +++ b/ryu/lib/packet/icmpv6.py @@ -373,13 +373,14 @@ class nd_router_advert(stringify.StringifyMixin): msg.length.append(length) cls_ = cls._ND_OPTION_TYPES.get(type_, None) offset += 2 + byte_len = length * 8 - 2 if cls_: msg.data.append(cls_.parser(buf[:offset+cls_._MIN_LEN], offset)) offset += cls_._MIN_LEN else: - msg.data.append(buf[offset:]) - offset = len(buf) + msg.data.append(buf[offset:offset + byte_len]) + offset += byte_len return msg