diff options
author | Nick Mathewson <nickm@torproject.org> | 2007-10-15 15:38:44 +0000 |
---|---|---|
committer | Nick Mathewson <nickm@torproject.org> | 2007-10-15 15:38:44 +0000 |
commit | 7f9e9c816c007fcf474aec213132b173c6f2b571 (patch) | |
tree | 96d066fa5d96d50779586ec77be59747a0c5743c /src/common/crypto.c | |
parent | 161b85d588b8ca3cffe708c07d9216d8355fbf1e (diff) | |
download | tor-7f9e9c816c007fcf474aec213132b173c6f2b571.tar.gz tor-7f9e9c816c007fcf474aec213132b173c6f2b571.zip |
r15790@catbus: nickm | 2007-10-15 11:38:28 -0400
Fix bug 528: fix memory leak in base32_decode(). While there, also make base32_decode() accept upper-case inputs.
svn:r11946
Diffstat (limited to 'src/common/crypto.c')
-rw-r--r-- | src/common/crypto.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/src/common/crypto.c b/src/common/crypto.c index 2de0f31695..b215298238 100644 --- a/src/common/crypto.c +++ b/src/common/crypto.c @@ -1891,8 +1891,10 @@ base32_decode(char *dest, size_t destlen, const char *src, size_t srclen) for (j = 0; j < srclen; ++j) { if (src[j] > 0x60 && src[j] < 0x7B) tmp[j] = src[j] - 0x61; else if (src[j] > 0x31 && src[j] < 0x38) tmp[j] = src[j] - 0x18; + else if (src[j] > 0x40 && src[j] < 0x5B) tmp[j] = src[j] - 0x41; else { log_warn(LD_BUG, "illegal character in base32 encoded string"); + tor_free(tmp); return -1; } } |