Просмотр исходного кода

Fix a ubsan warning in our ctypes replacements

ubsan doesn't like 1<<31, since that's an undefined integer
overflow.  Instead, we should do 1u<<31.
Nick Mathewson 10 лет назад
Родитель
Сommit
2aea6ca326
1 измененных файлов с 1 добавлено и 1 удалено
  1. 1 1
      src/common/compat.h

+ 1 - 1
src/common/compat.h

@@ -321,7 +321,7 @@ tor_memstr(const void *haystack, size_t hlen, const char *needle)
   extern const uint32_t TOR_##name##_TABLE[];                           \
   static INLINE int TOR_##name(char c) {                                \
     uint8_t u = c;                                                      \
-    return !!(TOR_##name##_TABLE[(u >> 5) & 7] & (1 << (u & 31)));      \
+    return !!(TOR_##name##_TABLE[(u >> 5) & 7] & (1u << (u & 31)));     \
   }
 DECLARE_CTYPE_FN(ISALPHA)
 DECLARE_CTYPE_FN(ISALNUM)