mirror of
https://gitlab.com/apparmor/apparmor.git
synced 2025-03-04 08:24:42 +01:00
parser: track leading zeros required for ipv6 range regex generator
Signed-off-by: Georgia Garcia <georgia.garcia@canonical.com>
This commit is contained in:
parent
fb5f59024c
commit
75ca0e7919
2 changed files with 6 additions and 3 deletions
|
@ -59,11 +59,11 @@ public:
|
|||
size_t i;
|
||||
bool flag = true;
|
||||
for (i = 0; i < 16; i++) {
|
||||
if ((val[i] & 0xF0) >> 4 != 0)
|
||||
if (flag && (val[i] & 0xF0) >> 4 != 0)
|
||||
flag = false;
|
||||
if (!flag)
|
||||
data.push_back((val[i] & 0xF0) >> 4);
|
||||
if ((val[i] & 0x0F) != 0)
|
||||
if (flag && (val[i] & 0x0F) != 0)
|
||||
flag = false;
|
||||
if (!flag)
|
||||
data.push_back(val[i] & 0x0F);
|
||||
|
|
|
@ -886,7 +886,10 @@ static std::string generate_regex_range(bignum start, bignum end)
|
|||
for (auto &i: regex_range) {
|
||||
bignum sstart = i.first;
|
||||
bignum send = i.second;
|
||||
|
||||
if (sstart.base == 16) {
|
||||
for (j = (size_t) sstart.size(); j < 32; j++)
|
||||
result << '0';
|
||||
}
|
||||
for (j = sstart.size() - 1; j >= 0; j--) {
|
||||
result << std::nouppercase;
|
||||
if (sstart[j] == send[j]) {
|
||||
|
|
Loading…
Add table
Reference in a new issue