소스 검색

Fix spurious compiler warning in do_getpass().

Some compilers apparently noticed that p2len was allowed to be equal
to msg, and so maybe we would be doing memset(prompt2, ' ', 0), and
decided that we probably meant to do memset(prompt2, 0, 0x20);
instead.

Stupid compilers, doing optimization before this kind of warning!

My fix is to just fill the entire prompt2 buffer with spaces,
because it's harmless.

Bugfix on e59f0d4cb964387c5, not in any released Tor.
Nick Mathewson 7 년 전
부모
커밋
7026b607a0
1개의 변경된 파일1개의 추가작업 그리고 1개의 파일을 삭제
  1. 1 1
      src/or/routerkeys.c

+ 1 - 1
src/or/routerkeys.c

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