From 0fc3d72ba27b268eeaf7cbfb2ce2ef29761d609a Mon Sep 17 00:00:00 2001 From: IWAMOTO Toshihiro Date: Fri, 3 Jul 2015 11:27:10 +0900 Subject: [PATCH] packet_utils: Remove checksum() side-effect checksum() was modifying argument when it is bytearray. Make sure checksum() doesn't modify its argument. Signed-off-by: IWAMOTO Toshihiro Signed-off-by: FUJITA Tomonori --- ryu/lib/packet/packet_utils.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ryu/lib/packet/packet_utils.py b/ryu/lib/packet/packet_utils.py index 58a9e699..546b49cf 100644 --- a/ryu/lib/packet/packet_utils.py +++ b/ryu/lib/packet/packet_utils.py @@ -26,10 +26,10 @@ def carry_around_add(a, b): def checksum(data): + data = six.binary_type(data) # input can be bytearray. if len(data) % 2: data += b'\x00' - data = six.binary_type(data) # input can be bytearray. s = sum(array.array('H', data)) s = (s & 0xffff) + (s >> 16) s += (s >> 16)