From 9817ee470dbf632b45b1ba34a4af5618d0798826 Mon Sep 17 00:00:00 2001 From: david Date: Thu, 29 Oct 2009 00:15:04 +0000 Subject: [PATCH] Make packet.in_cksum work for data with an odd length. --- nselib/packet.lua | 3 +++ 1 file changed, 3 insertions(+) diff --git a/nselib/packet.lua b/nselib/packet.lua index f40fd0b0f..a765b1ffa 100644 --- a/nselib/packet.lua +++ b/nselib/packet.lua @@ -82,6 +82,9 @@ function in_cksum(b) x = x:sub(3) sum = sum + u16(c, 0) end + if x:len() == 1 then + sum = sum + u8(x, 0) * 256 + end sum = bit.rshift(sum, 16) + bit.band(sum, 0xffff) sum = sum + bit.rshift(sum, 16)