From 47760c7ba5f1c87c945f4a018e3b3da6d127a8b9 Mon Sep 17 00:00:00 2001 From: Nick Mathewson Date: Mon, 22 Dec 2014 12:56:35 -0500 Subject: When decoding a base-{16,32,64} value, clear the target buffer first This is a good idea in case the caller stupidly doesn't check the return value from baseX_decode(), and as a workaround for the current inconsistent API of base16_decode. Prevents any fallout from bug 14013. --- src/common/util.c | 3 +++ 1 file changed, 3 insertions(+) (limited to 'src/common/util.c') diff --git a/src/common/util.c b/src/common/util.c index 5eb0f9a69b..036fd2542c 100644 --- a/src/common/util.c +++ b/src/common/util.c @@ -1076,6 +1076,9 @@ base16_decode(char *dest, size_t destlen, const char *src, size_t srclen) return -1; if (destlen < srclen/2 || destlen > SIZE_T_CEILING) return -1; + + memset(dest, 0, destlen); + end = src+srclen; while (src