Browse Source

Hex2Digit: Do not use isxdigit()

We directly check if we are a hex digit in HexDigit, so use that
information.

[jak@debian.org: Commit message wording]
tags/debian/1.1.9
Niels Thykier Julian Andres Klode 6 years ago
parent
commit
fc8f1c2252
1 changed files with 9 additions and 4 deletions
  1. +9
    -4
      apt-pkg/contrib/strutl.cc

+ 9
- 4
apt-pkg/contrib/strutl.cc View File

@@ -1106,7 +1106,7 @@ static int HexDigit(int c)
return c - 'a' + 10;
if (c >= 'A' && c <= 'F')
return c - 'A' + 10;
return 0;
return -1;
}
/*}}}*/
// Hex2Num - Convert a long hex number into a buffer /*{{{*/
@@ -1121,11 +1121,16 @@ bool Hex2Num(const string &Str,unsigned char *Num,unsigned int Length)
int J = 0;
for (string::const_iterator I = Str.begin(); I != Str.end();J++, I += 2)
{
if (isxdigit(*I) == 0 || isxdigit(I[1]) == 0)
int first_half = HexDigit(I[0]);
int second_half;
if (first_half < 0)
return false;
Num[J] = HexDigit(I[0]) << 4;
Num[J] += HexDigit(I[1]);
second_half = HexDigit(I[1]);
if (second_half < 0)
return false;
Num[J] = first_half << 4;
Num[J] += second_half;
}
return true;


Loading…
Cancel
Save