소스 검색

fix integer underflow in tor_vsnprintf()
(probably exploitable)


svn:r3011

Roger Dingledine 21 년 전
부모
커밋
531c060b36
1개의 변경된 파일3개의 추가작업 그리고 1개의 파일을 삭제
  1. 3 1
      src/common/compat.c

+ 3 - 1
src/common/compat.c

@@ -90,12 +90,14 @@ int tor_snprintf(char *str, size_t size, const char *format, ...)
   return r;
 }
 
-/** Replacement for vsnpritnf; behavior differs as tor_snprintf differs from
+/** Replacement for vsnprintf; behavior differs as tor_snprintf differs from
  * snprintf.
  */
 int tor_vsnprintf(char *str, size_t size, const char *format, va_list args)
 {
   int r;
+  if (size == 0)
+    return -1; /* no place for the NUL */
 #ifdef MS_WINDOWS
   r = _vsnprintf(str, size, format, args);
 #else