]> git.ipfire.org Git - thirdparty/rspamd.git/commitdiff
[Minor] Improve log message for inflate/deflate
authorVsevolod Stakhov <vsevolod@highsecure.ru>
Mon, 13 Apr 2020 11:20:32 +0000 (12:20 +0100)
committerVsevolod Stakhov <vsevolod@highsecure.ru>
Mon, 13 Apr 2020 11:20:51 +0000 (12:20 +0100)
src/lua/lua_util.c

index a378c1acec519c718969ba5620b0bbc4e2c4e531..d89cfd28d2cfe4861b2946cf5f8a9f2e2e529a9d 100644 (file)
@@ -2321,7 +2321,8 @@ lua_util_gzip_compress (lua_State *L)
                                break;
                        }
                        else {
-                               msg_err ("cannot compress data: %s", zError (rc));
+                               msg_err ("cannot compress data: %s (last error: %s)",
+                                               zError (rc), strm.msg);
                                lua_pop (L, 1); /* Text will be freed here */
                                lua_pushnil (L);
                                deflateEnd (&strm);
@@ -2388,6 +2389,15 @@ lua_util_zlib_inflate (lua_State *L, int windowBits)
 
        memset (&strm, 0, sizeof (strm));
        /* windowBits +16 to decode gzip, zlib 1.2.0.4+ */
+
+       /* Here are dragons to distinguish between raw deflate and zlib */
+       if (windowBits == MAX_WBITS && t->len > 0) {
+               if ((int)(unsigned char)t->start[0] != 0x78) {
+                       /* Assume raw deflate */
+                       windowBits = -windowBits;
+               }
+       }
+
        rc = inflateInit2 (&strm, windowBits);
 
        if (rc != Z_OK) {
@@ -2416,7 +2426,8 @@ lua_util_zlib_inflate (lua_State *L, int windowBits)
                                break;
                        }
                        else {
-                               msg_err ("cannot decompress data: %s", zError (rc));
+                               msg_err ("cannot decompress data: %s (last error: %s)",
+                                               zError (rc), strm.msg);
                                lua_pop (L, 1); /* Text will be freed here */
                                lua_pushnil (L);
                                inflateEnd (&strm);