diff --git a/brotli.c b/brotli.c index 7b01007..6ed21ba 100644 --- a/brotli.c +++ b/brotli.c @@ -376,6 +376,7 @@ static zend_string *php_brotli_output_handler_load_dict(php_brotli_context *ctx) { char *file = BROTLI_G(output_compression_dict); if (!file || strlen(file) == 0) { + BROTLI_G(compression_coding) &= ~PHP_BROTLI_ENCODING_DCB; return NULL; } @@ -392,6 +393,7 @@ static zend_string *php_brotli_output_handler_load_dict(php_brotli_context *ctx) if (!stream) { php_error_docref(NULL, E_WARNING, "brotli: failed to load dictionary"); + BROTLI_G(compression_coding) &= ~PHP_BROTLI_ENCODING_DCB; return NULL; } @@ -417,6 +419,7 @@ static zend_string *php_brotli_output_handler_load_dict(php_brotli_context *ctx) php_stream_close(stream); if (!dict) { + BROTLI_G(compression_coding) &= ~PHP_BROTLI_ENCODING_DCB; return NULL; } diff --git a/tests/ob_dcb_005.phpt b/tests/ob_dcb_005.phpt new file mode 100644 index 0000000..f763c6b --- /dev/null +++ b/tests/ob_dcb_005.phpt @@ -0,0 +1,26 @@ +--TEST-- +output handler: br,dcb: invalid output_compression_dict +--SKIPIF-- + +--GET-- +ob=dictionary +--ENV-- +HTTP_ACCEPT_ENCODING=br,dcb +HTTP_AVAILABLE_DICTIONARY=:4SycXHyLhvKPL/nNaYXl60myMwris2L4X1O+q5tW1XE=: +--FILE-- + +--EXPECT_EXTERNAL-- +files/ob_data.br +--EXPECTHEADERS-- +Content-Encoding: br +Vary: Accept-Encoding