1
0
mirror of https://github.com/nmap/nmap.git synced 2025-12-17 13:09:02 +00:00

Don't strip leading 0s in stdnse.tobinary

Every place this function is used, the result is padded with 0s anyway,
so may as well not strip them here. Didn't remove the padding code since
this could return only 4 chars, and most padding is to 8-char width.
This commit is contained in:
dmiller
2020-11-30 23:22:07 +00:00
parent 86deb87187
commit 6f57df02be
2 changed files with 8 additions and 6 deletions

View File

@@ -70,14 +70,16 @@ local function chi2(data, num_cats)
return x2 return x2
end end
local function c_to_bin (c)
local n = stdnse.tobinary(c:byte())
return ("0"):rep(8-#n)..n
end
-- Split a string into a sequence of bit strings of the given length. -- Split a string into a sequence of bit strings of the given length.
-- splitbits("abc", 5) --> {"01100", "00101", "10001", "00110"} -- splitbits("abc", 5) --> {"01100", "00101", "10001", "00110"}
-- Any short final group is omitted. -- Any short final group is omitted.
local function splitbits(s, n) local function splitbits(s, n)
local bits = s:gsub(".", function (c) local bits = s:gsub(".", c_to_bin)
local n = stdnse.tobinary(c:byte())
return ("0"):rep(8-#n)..n
end)
local seq = {} local seq = {}
for i = 1, #bits - n, n do for i = 1, #bits - n, n do

View File

@@ -260,12 +260,12 @@ do
}; };
--- Converts the given number, n, to a string in a binary number format (12 --- Converts the given number, n, to a string in a binary number format (12
-- becomes "1100"). -- becomes "1100"). Leading 0s not stripped.
-- @param n Number to convert. -- @param n Number to convert.
-- @return String in binary format. -- @return String in binary format.
function tobinary(n) function tobinary(n)
assert(tonumber(n), "number expected"); assert(tonumber(n), "number expected");
return (("%x"):format(n):gsub("%w", t):gsub("^0*", "")); return (("%x"):format(n):gsub("%w", t))
end end
end end