Merge remote-tracking branch 'asn/bug19223'

This commit is contained in:
Nick Mathewson 2016-10-11 08:48:39 -04:00
commit 3328658728
2 changed files with 6 additions and 2 deletions

4
changes/bug19223 Normal file
View file

@ -0,0 +1,4 @@
o Minor bugfixes (getpass):
- Defensively fix a non-triggerable heap corruption at do_getpass() tow
protect ourselves from mistakes in the future. Fixes bug #19223; bugfix
on 0.2.7.3-rc. Bug found by Guido Vranken, patch by nherring.

View file

@ -48,8 +48,8 @@ do_getpass(const char *prompt, char *buf, size_t buflen,
size_t p2len = strlen(prompt) + 1;
if (p2len < sizeof(msg))
p2len = sizeof(msg);
prompt2 = tor_malloc(strlen(prompt)+1);
memset(prompt2, ' ', p2len);
prompt2 = tor_malloc(p2len);
memset(prompt2, ' ', p2len - sizeof(msg));
memcpy(prompt2 + p2len - sizeof(msg), msg, sizeof(msg));
buf2 = tor_malloc_zero(buflen);