diff options
author | Julian Andres Klode <jak@debian.org> | 2016-08-31 17:18:07 +0200 |
---|---|---|
committer | Julian Andres Klode <jak@debian.org> | 2016-08-31 17:40:15 +0200 |
commit | cf7503d8a09ebce695423fdeb2402c456c18f3d8 (patch) | |
tree | 769618a674d5636e4dffaa75de4fbcb75ae0df1e /apt-pkg | |
parent | 923c592ceb6014b31ec751b97b3ed659fa3e88ae (diff) |
Base256ToNum: Fix uninitialized value
If the inner Base256ToNum() returned false, it did not set
Num to a new value, causing it to be uninitialized, and thus
might have caused the function to exit despite a good result.
Also document why the Res = Num, if (Res != Num) magic is done.
Reported-By: valgrind
Diffstat (limited to 'apt-pkg')
-rw-r--r-- | apt-pkg/contrib/strutl.cc | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/apt-pkg/contrib/strutl.cc b/apt-pkg/contrib/strutl.cc index 66b0078dc..cf8feb970 100644 --- a/apt-pkg/contrib/strutl.cc +++ b/apt-pkg/contrib/strutl.cc @@ -1171,10 +1171,11 @@ bool Base256ToNum(const char *Str,unsigned long long &Res,unsigned int Len) tar files */ bool Base256ToNum(const char *Str,unsigned long &Res,unsigned int Len) { - unsigned long long Num; + unsigned long long Num = 0; bool rc; rc = Base256ToNum(Str, Num, Len); + // rudimentary check for overflow (Res = ulong, Num = ulonglong) Res = Num; if (Res != Num) return false; |