]> granicus.if.org Git - php/commitdiff
Fix Z_BLOCK breakage when built against zlib < 1.2.4
authorDaniel Lowrey <rdlowrey@php.net>
Thu, 7 May 2015 13:02:30 +0000 (09:02 -0400)
committerDaniel Lowrey <rdlowrey@php.net>
Thu, 7 May 2015 13:02:38 +0000 (09:02 -0400)
ext/zlib/tests/deflate_add_basic.phpt
ext/zlib/tests/inflate_add_basic.phpt
ext/zlib/zlib.c

index 9f48bb04488bf988bd4d398623a722a70203cdff..fde22b5a52511e97472a3d3821fbdf73c581c873 100644 (file)
@@ -41,9 +41,13 @@ $flushTypes = [
     'ZLIB_PARTIAL_FLUSH' => ZLIB_PARTIAL_FLUSH,
     'ZLIB_FULL_FLUSH' => ZLIB_FULL_FLUSH,
     'ZLIB_NO_FLUSH' => ZLIB_NO_FLUSH,
-    'ZLIB_BLOCK' => ZLIB_BLOCK,
 ];
 
+/* Z_BLOCK is only defined when built against zlib > 1.2.3 */
+if (defined(ZLIB_BLOCK)) {
+    $flushTypes['ZLIB_BLOCK'] = ZLIB_BLOCK;
+}
+
 foreach ($modes as $modeKey => $mode) {
     foreach ($flushSizes as $flushSize) {
         foreach ($flushTypes as $flushTypeKey => $flushType) {
index ff0458e9ef89e55bba747dbe3f5d2f2743e55de2..7ef5ef11cb52c883ad97a4166f1cd249e628bb62 100644 (file)
@@ -40,9 +40,13 @@ $flushTypes = [
     'ZLIB_PARTIAL_FLUSH' => ZLIB_PARTIAL_FLUSH,
     'ZLIB_FULL_FLUSH' => ZLIB_FULL_FLUSH,
     'ZLIB_NO_FLUSH' => ZLIB_NO_FLUSH,
-    'ZLIB_BLOCK' => ZLIB_BLOCK,
 ];
 
+/* Z_BLOCK is only defined when built against zlib > 1.2.3 */
+if (defined(ZLIB_BLOCK)) {
+    $flushTypes['ZLIB_BLOCK'] = ZLIB_BLOCK;
+}
+
 $uncompressed = "";
 for ($i=0;$i<(32768*2);$i++) {
     $uncompressed .= chr(rand(48,125));
index 715fdaff1c401fa2d8177a266403c04facece715..2b9c016a41dba08f5968eb6f6b7198541a518dfe 100644 (file)
 #undef gzseek
 #undef gztell
 
+/* Z_BLOCK was added in zlib 1.2.4 and stable distros (RHEL6, at least) still
+ * package zlib 1.2.3
+ */
+#ifdef Z_BLOCK
+#define HAVE_Z_BLOCK 1
+#endif
+
 int le_deflate;
 int le_inflate;
 
@@ -814,7 +821,9 @@ PHP_FUNCTION(inflate_add)
                case Z_PARTIAL_FLUSH:
                case Z_SYNC_FLUSH:
                case Z_FULL_FLUSH:
+#ifdef HAVE_Z_BLOCK
                case Z_BLOCK:
+#endif
                case Z_FINISH:
                        break;
 
@@ -960,7 +969,9 @@ PHP_FUNCTION(deflate_add)
                case Z_PARTIAL_FLUSH:
                case Z_SYNC_FLUSH:
                case Z_FULL_FLUSH:
+#ifdef HAVE_Z_BLOCK
                case Z_BLOCK:
+#endif
                case Z_FINISH:
                        break;
 
@@ -1268,7 +1279,9 @@ static PHP_MINIT_FUNCTION(zlib)
        REGISTER_LONG_CONSTANT("ZLIB_PARTIAL_FLUSH", Z_PARTIAL_FLUSH, CONST_CS|CONST_PERSISTENT);
        REGISTER_LONG_CONSTANT("ZLIB_SYNC_FLUSH", Z_SYNC_FLUSH, CONST_CS|CONST_PERSISTENT);
        REGISTER_LONG_CONSTANT("ZLIB_FULL_FLUSH", Z_FULL_FLUSH, CONST_CS|CONST_PERSISTENT);
+#ifdef HAVE_Z_BLOCK
        REGISTER_LONG_CONSTANT("ZLIB_BLOCK", Z_BLOCK, CONST_CS|CONST_PERSISTENT);
+#endif
        REGISTER_LONG_CONSTANT("ZLIB_FINISH", Z_FINISH, CONST_CS|CONST_PERSISTENT);
        REGISTER_INI_ENTRIES();
        return SUCCESS;