Explorar o código

Make detect_compression_method work on platforms with more evil chars.

svn:r3376
Nick Mathewson %!s(int64=21) %!d(string=hai) anos
pai
achega
2c803bff9a
Modificáronse 1 ficheiros con 3 adicións e 2 borrados
  1. 3 2
      src/common/torgzip.c

+ 3 - 2
src/common/torgzip.c

@@ -19,6 +19,7 @@ const char torgzip_c_id[] = "$Id$";
 #else
 #include <zlib.h>
 #endif
+#include <string.h>
 
 #include "util.h"
 #include "log.h"
@@ -231,10 +232,10 @@ tor_gzip_uncompress(char **out, size_t *out_len,
  */
 int detect_compression_method(const char *in, size_t in_len)
 {
-  if (in_len > 2 && in[0] == 0x1f && in[1] == 0x8b) {
+  if (in_len > 2 && !memcmp(in, "\x1f\x8b", 2)) {
     return GZIP_METHOD;
   } else if (in_len > 2 && (in[0] & 0x0f) == 8 &&
-             get_uint16(in) % 31 == 0) {
+             (get_uint16(in) % 31) == 0) {
     return ZLIB_METHOD;
   } else {
     return 0;