Browse Source

Merge remote-tracking branch 'asn/bug19223'

Nick Mathewson 7 years ago
parent
commit
3328658728
2 changed files with 6 additions and 2 deletions
  1. 4 0
      changes/bug19223
  2. 2 2
      src/or/routerkeys.c

+ 4 - 0
changes/bug19223

@@ -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.

+ 2 - 2
src/or/routerkeys.c

@@ -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);