]> granicus.if.org Git - php/log
php
4 years agoFix bug #79330 - make all execution modes consistent in rejecting \0
Stanislav Malyshev [Tue, 14 Apr 2020 04:00:44 +0000 (21:00 -0700)]
Fix bug #79330 - make all execution modes consistent in rejecting \0

4 years agobump verison to 7.2.30-dev
Remi Collet [Tue, 17 Mar 2020 10:28:34 +0000 (11:28 +0100)]
bump verison to 7.2.30-dev

4 years agoFix NEWS
Christoph M. Becker [Tue, 17 Mar 2020 10:04:24 +0000 (11:04 +0100)]
Fix NEWS

4 years ago[ci skip] Update NEWS
Stanislav Malyshev [Mon, 16 Mar 2020 02:35:26 +0000 (19:35 -0700)]
[ci skip] Update NEWS

4 years agoFix test
Stanislav Malyshev [Mon, 16 Mar 2020 00:55:28 +0000 (17:55 -0700)]
Fix test

4 years agoFix bug #79329 - get_headers should not accept \0
Stanislav Malyshev [Mon, 16 Mar 2020 00:30:44 +0000 (17:30 -0700)]
Fix bug #79329 - get_headers should not accept \0

4 years agoFixed bug #79282
Stanislav Malyshev [Mon, 16 Mar 2020 00:26:00 +0000 (17:26 -0700)]
Fixed bug #79282

4 years agobump version to 7.2.29
Remi Collet [Tue, 18 Feb 2020 10:00:28 +0000 (11:00 +0100)]
bump version to 7.2.29

4 years agoUpdate NEWS [ci skip]
Christoph M. Becker [Mon, 17 Feb 2020 18:21:51 +0000 (19:21 +0100)]
Update NEWS [ci skip]

4 years agoMark bug76348.phpt as online test
Nikita Popov [Tue, 19 Mar 2019 14:47:25 +0000 (15:47 +0100)]
Mark bug76348.phpt as online test

4 years agoFix bug #79082 - Files added to tar with Phar::buildFromIterator have all-access...
Stanislav Malyshev [Sun, 16 Feb 2020 06:17:14 +0000 (22:17 -0800)]
Fix bug #79082 - Files added to tar with Phar::buildFromIterator have all-access permissions

4 years agoFix bug #79221 - Null Pointer Dereference in PHP Session Upload Progress
Stanislav Malyshev [Sun, 16 Feb 2020 04:52:19 +0000 (20:52 -0800)]
Fix bug #79221 - Null Pointer Dereference in PHP Session Upload Progress

4 years agoFix typo in recent bugfix
Christoph M. Becker [Fri, 14 Feb 2020 08:21:13 +0000 (09:21 +0100)]
Fix typo in recent bugfix

4 years agoFix #77569: Write Acess Violation in DomImplementation
Christoph M. Becker [Thu, 13 Feb 2020 14:13:26 +0000 (15:13 +0100)]
Fix #77569: Write Acess Violation in DomImplementation

We must not assume that the zval IS_STRING.

4 years agoMore checks for php_strip_tags_ex
Stanislav Malyshev [Thu, 23 Jan 2020 06:36:53 +0000 (22:36 -0800)]
More checks for php_strip_tags_ex

4 years agonext will be 7.2.28
Remi Collet [Wed, 22 Jan 2020 08:17:00 +0000 (09:17 +0100)]
next will be 7.2.28

4 years agoUpdate NEWS
Stanislav Malyshev [Tue, 21 Jan 2020 06:12:32 +0000 (22:12 -0800)]
Update NEWS

4 years agoFix bug #79037 (global buffer-overflow in `mbfl_filt_conv_big5_wchar`)
Stanislav Malyshev [Tue, 21 Jan 2020 05:42:44 +0000 (21:42 -0800)]
Fix bug #79037 (global buffer-overflow in `mbfl_filt_conv_big5_wchar`)

4 years agoFix #79099: OOB read in php_strip_tags_ex
Stanislav Malyshev [Tue, 21 Jan 2020 05:33:17 +0000 (21:33 -0800)]
Fix #79099: OOB read in php_strip_tags_ex

4 years agoFix #79091: heap use-after-free in session_create_id()
Christoph M. Becker [Mon, 20 Jan 2020 17:05:00 +0000 (18:05 +0100)]
Fix #79091: heap use-after-free in session_create_id()

If the `new_id` is released, we must not use it again.

5 years agofix release date
Remi Collet [Wed, 18 Dec 2019 13:16:19 +0000 (14:16 +0100)]
fix release date

5 years ago[ci skip] Update NEWS
Stanislav Malyshev [Tue, 17 Dec 2019 07:41:04 +0000 (23:41 -0800)]
[ci skip] Update  NEWS

5 years agoFix test
Stanislav Malyshev [Mon, 16 Dec 2019 18:03:43 +0000 (10:03 -0800)]
Fix test

5 years agoFix bug #78793
Stanislav Malyshev [Mon, 16 Dec 2019 09:14:38 +0000 (01:14 -0800)]
Fix bug #78793

5 years agoFixed bug #78910
Stanislav Malyshev [Mon, 16 Dec 2019 08:10:39 +0000 (00:10 -0800)]
Fixed bug #78910

5 years agoFix #78878: Buffer underflow in bc_shift_addsub
Christoph M. Becker [Sat, 30 Nov 2019 11:26:37 +0000 (12:26 +0100)]
Fix #78878: Buffer underflow in bc_shift_addsub

We must not rely on `isdigit()` to detect digits, since we only support
decimal ASCII digits in the following processing.

5 years agoFix test
Stanislav Malyshev [Sat, 30 Nov 2019 23:37:28 +0000 (15:37 -0800)]
Fix test

5 years agoFix #78862: link() silently truncates after a null byte on Windows
Christoph M. Becker [Sat, 23 Nov 2019 12:01:33 +0000 (13:01 +0100)]
Fix #78862: link() silently truncates after a null byte on Windows

Since link() is supposed to accepts paths (i.e. strings without NUL
bytes), we must not accept arbitrary strings.

5 years agoFix #78863: DirectoryIterator class silently truncates after a null byte
Christoph M. Becker [Mon, 25 Nov 2019 15:56:34 +0000 (16:56 +0100)]
Fix #78863: DirectoryIterator class silently truncates after a null byte

Since the constructor of DirectoryIterator and friends is supposed to
accepts paths (i.e. strings without NUL bytes), we must not accept
arbitrary strings.

5 years agonext is 7.2.27
Remi Collet [Tue, 3 Dec 2019 10:25:37 +0000 (11:25 +0100)]
next is 7.2.27

5 years agoFix #78814: strip_tags allows / in tag name => whitelist bypass
Christoph M. Becker [Sun, 17 Nov 2019 13:14:59 +0000 (14:14 +0100)]
Fix #78814: strip_tags allows / in tag name => whitelist bypass

When normalizing tags to check whether they are contained in the set
of allowable tags, we must not strip slashes, unless they come
immediately after the opening `<`, or immediately before the closing
`>`.

5 years agoFix #78833: Integer overflow in pack causes out-of-bound access
Christoph M. Becker [Tue, 19 Nov 2019 13:22:26 +0000 (14:22 +0100)]
Fix #78833: Integer overflow in pack causes out-of-bound access

We check for potential signed integer overflow, and bail out
gracefully, in that case.

5 years agoAdded environment LSAPI_CLEAN_SHUTDOWN to control clean shutdown. Update SAPI version...
George Wang [Thu, 21 Nov 2019 22:57:50 +0000 (17:57 -0500)]
Added environment LSAPI_CLEAN_SHUTDOWN to control clean shutdown. Update SAPI version to LiteSpeed v7.6 .

5 years agoFix #78849: GD build broken with -D SIGNED_COMPARE_SLOW
Christoph M. Becker [Thu, 21 Nov 2019 08:49:29 +0000 (09:49 +0100)]
Fix #78849: GD build broken with -D SIGNED_COMPARE_SLOW

Apparently, this has not been tested for a long time, and might be a
refactoring relict.  Anyhow, we have to pass the context to
`GIFNextPixel` as well.

5 years agoUpdate NEWS
Christoph M. Becker [Mon, 18 Nov 2019 11:36:01 +0000 (12:36 +0100)]
Update NEWS

5 years agoFix $x = (bool)$x; for undefined with opcache
Tyson Andre [Fri, 15 Nov 2019 17:47:32 +0000 (12:47 -0500)]
Fix $x = (bool)$x; for undefined with opcache

And `$x = !$x`

Noticed while working on GH-4912

The included test would not emit undefined variable errors in php 8.0
with opcache enabled. The command used:

```
php -d zend_extension=opcache.so --no-php-ini -d error_reporting=E_ALL \
    -d opcache.file_cache= -d opcache.enable_cli=1  test.php
```

5 years agoFix bug #78804 - Segmentation fault in Locale::filterMatches
Stanislav Malyshev [Tue, 12 Nov 2019 06:30:08 +0000 (22:30 -0800)]
Fix bug #78804 - Segmentation fault in Locale::filterMatches

5 years agoRemove outdated comments in test
Nikita Popov [Thu, 7 Nov 2019 13:06:23 +0000 (14:06 +0100)]
Remove outdated comments in test

5 years agoFixed bug #78759
Nikita Popov [Thu, 7 Nov 2019 10:15:29 +0000 (11:15 +0100)]
Fixed bug #78759

Handle INDIRECT values in array.

5 years agoBump for 7.2.26-dev
Sara Golemon [Tue, 5 Nov 2019 15:56:19 +0000 (10:56 -0500)]
Bump for 7.2.26-dev

5 years agoFixed bug #78775
Nikita Popov [Tue, 5 Nov 2019 11:13:46 +0000 (12:13 +0100)]
Fixed bug #78775

Clear the OpenSSL error queue before performing SSL stream operations.
As we don't control all code that could possibly be using OpenSSL,
we can't rely on the error queue being empty.

5 years agoFix test cases for libxml2 2.9.10
Christoph M. Becker [Thu, 31 Oct 2019 15:02:05 +0000 (16:02 +0100)]
Fix test cases for libxml2 2.9.10

Since the error reporting has been slightly changed, we have to adapt
the two affected test cases.

5 years agoAdd missing refcount increment
Nikita Popov [Wed, 30 Oct 2019 08:22:20 +0000 (09:22 +0100)]
Add missing refcount increment

5 years agoFixed bug #78689
Nikita Popov [Tue, 29 Oct 2019 14:05:59 +0000 (15:05 +0100)]
Fixed bug #78689

5 years agoMerge branch 'PHP-7.1' into PHP-7.2
Stanislav Malyshev [Tue, 29 Oct 2019 03:47:30 +0000 (20:47 -0700)]
Merge branch 'PHP-7.1' into PHP-7.2

* PHP-7.1:
  Fix libmagic buffer overflow issue (CVE-2019-18218)
  bump version
  set versions for release

5 years agoFix #78751: Serialising DatePeriod converts DateTimeImmutable
Christoph M. Becker [Fri, 25 Oct 2019 13:43:38 +0000 (15:43 +0200)]
Fix #78751: Serialising DatePeriod converts DateTimeImmutable

When getting the properties of a DatePeriod instance we have to retain
the proper classes, and when restoring a DatePeriod instance we have to
cater to DateTimeImmutable instances as well.

5 years agoFix bug #78752
Nikita Popov [Mon, 28 Oct 2019 09:23:20 +0000 (10:23 +0100)]
Fix bug #78752

NULL out the execute_data before destroying it, otherwise GC may
trigger while the execute_data is partially destroyed, resulting
in double-frees.

The handling of call stack unfreezing is a bit awkward because it's
a ZEND_API function, so we can't change the signature.

5 years agoFix libmagic buffer overflow issue (CVE-2019-18218)
Stanislav Malyshev [Sun, 27 Oct 2019 23:30:38 +0000 (16:30 -0700)]
Fix libmagic buffer overflow issue (CVE-2019-18218)

Ported from https://github.com/file/file/commit/46a8443f76cec4b41ec736eca396984c74664f84

5 years agoFixed bug #78747
Nikita Popov [Fri, 25 Oct 2019 10:47:18 +0000 (12:47 +0200)]
Fixed bug #78747

5 years agoUse ICU's CXXFLAGS when using pkg-config
Ryan Schmidt [Tue, 22 Oct 2019 21:19:35 +0000 (16:19 -0500)]
Use ICU's CXXFLAGS when using pkg-config

This mirrors how ICU's CXXFLAGS are already used when using icu-config.

5 years agoAdd "-pthread" to EXTRA_LDFLAGS_PROGRAM as well
Nikita Popov [Wed, 23 Oct 2019 09:06:51 +0000 (11:06 +0200)]
Add "-pthread" to EXTRA_LDFLAGS_PROGRAM as well

This is a backport of c518932c0326a938f0fd0254f2adb03b1cddfbca
from the PHP 7.4 branch.

5 years agobump version
Joe Watkins [Tue, 22 Oct 2019 16:58:39 +0000 (18:58 +0200)]
bump version

5 years agoset versions for release php-7.1.33
Joe Watkins [Tue, 22 Oct 2019 16:56:55 +0000 (18:56 +0200)]
set versions for release

5 years agoadd NEWS entry
Remi Collet [Tue, 22 Oct 2019 07:37:35 +0000 (09:37 +0200)]
add NEWS entry

5 years agoMerge branch 'PHP-7.1' into PHP-7.2
Stanislav Malyshev [Mon, 21 Oct 2019 20:17:09 +0000 (13:17 -0700)]
Merge branch 'PHP-7.1' into PHP-7.2

* PHP-7.1:
  Fix bug #78599 (env_path_info underflow can lead to RCE) (CVE-2019-11043)
  bump versions after release
  set versions for release

5 years agoFix bug #78697: inaccurate error message
Fabien Villepinte [Sat, 19 Oct 2019 19:27:37 +0000 (21:27 +0200)]
Fix bug #78697: inaccurate error message

5 years agoFix bug #78599 (env_path_info underflow can lead to RCE) (CVE-2019-11043)
Jakub Zelenka [Sat, 12 Oct 2019 14:56:16 +0000 (15:56 +0100)]
Fix bug #78599 (env_path_info underflow can lead to RCE) (CVE-2019-11043)

5 years agoFix #78694: Appending to a variant array causes segfault
Christoph M. Becker [Sat, 19 Oct 2019 09:41:28 +0000 (11:41 +0200)]
Fix #78694: Appending to a variant array causes segfault

`write_dimension` object handlers have to be able to handle `NULL`
`offset`s; for now we simply throw an exception instead of following
the `NULL` pointer.

5 years agoFix #70153 \DateInterval incorrectly unserialized
m.yakunin [Mon, 16 Sep 2019 16:50:55 +0000 (18:50 +0200)]
Fix #70153 \DateInterval incorrectly unserialized

Added a separate macro for reading 'days' property, so that bool(false)
is correctly converted to the proper internal representation.

5 years agoFix checksum calculation for opcache
Mitch Hagstrand [Wed, 9 Oct 2019 08:38:11 +0000 (03:38 -0500)]
Fix checksum calculation for opcache

5 years agoFix #78665: Multicasting may leak memory
Christoph M. Becker [Sat, 12 Oct 2019 11:49:39 +0000 (13:49 +0200)]
Fix #78665: Multicasting may leak memory

5 years agoFix leak in phar open
Nikita Popov [Thu, 10 Oct 2019 14:14:04 +0000 (16:14 +0200)]
Fix leak in phar open

5 years agoFix leak on static method call on non-existent class
Nikita Popov [Thu, 10 Oct 2019 09:40:49 +0000 (11:40 +0200)]
Fix leak on static method call on non-existent class

5 years agoAvoid float to int cast UB in exif
Nikita Popov [Wed, 9 Oct 2019 15:33:01 +0000 (17:33 +0200)]
Avoid float to int cast UB in exif

5 years agoFix #78656: Parse errors classified as highest log-level
Erik Lundin [Wed, 9 Oct 2019 12:08:22 +0000 (14:08 +0200)]
Fix #78656: Parse errors classified as highest log-level

5 years agoRemove redundant components < 0 check
Nikita Popov [Wed, 9 Oct 2019 12:57:24 +0000 (14:57 +0200)]
Remove redundant components < 0 check

components is an unsigned number, it cannot be smaller than zero.

5 years agoAdd pcre_get_compiled_regex_cache_ex() with local_aware flag
Sergei Turchanov [Tue, 8 Oct 2019 07:55:07 +0000 (17:55 +1000)]
Add pcre_get_compiled_regex_cache_ex() with local_aware flag

A new function `pcre_get_compiled_regex_cache_ex()` is introduced,
which allows to compile regexp pattern using the "C" locale instead
of a current locale.

This will be needed to replace setlocale() usage in fileinfo,
which is not thread-safe.

5 years agoAdd missing SKIPIFs in exif tests
Fabien Villepinte [Tue, 8 Oct 2019 11:50:03 +0000 (13:50 +0200)]
Add missing SKIPIFs in exif tests

5 years agoFix #78642: Wrong libiconv version displayed
Christoph M. Becker [Tue, 8 Oct 2019 10:09:11 +0000 (12:09 +0200)]
Fix #78642: Wrong libiconv version displayed

The high byte of `_libiconv_version` specifies the major version; the
low byte the minor version.

5 years agonext is 7.2.25
Remi Collet [Tue, 8 Oct 2019 09:36:10 +0000 (11:36 +0200)]
next is 7.2.25

5 years agoFix #78641: addGlob can modify given remove_path value
Christoph M. Becker [Tue, 8 Oct 2019 07:25:56 +0000 (09:25 +0200)]
Fix #78641: addGlob can modify given remove_path value

`remove_path` points to the given string, so we must not modify it.
Instead we use a duplicate, if we need the modification.

We may want to switch to `zend_string`s in master.

5 years agoCheck for object_init_ex() failure in user filter factory
Nikita Popov [Mon, 7 Oct 2019 15:40:59 +0000 (17:40 +0200)]
Check for object_init_ex() failure in user filter factory

5 years agoSet session.gc_probability=0 in bug78624.phpt
Nikita Popov [Mon, 7 Oct 2019 14:43:19 +0000 (16:43 +0200)]
Set session.gc_probability=0 in bug78624.phpt

We only want to test manually triggered session GC.
Avoid spurious output due to automatic GC.

5 years agoFix #78623: Regression caused by "SP call yields additional empty result set"
Christoph M. Becker [Mon, 7 Oct 2019 06:58:11 +0000 (08:58 +0200)]
Fix #78623: Regression caused by "SP call yields additional empty result set"

This reverts commit 41a4379cb45419a376043ca5f8c5a2bca82cea7c.

5 years agoSplit intl tests for ICU 65
Christoph M. Becker [Fri, 4 Oct 2019 10:48:40 +0000 (12:48 +0200)]
Split intl tests for ICU 65

5 years agoFix #78620: Out of memory error
Christoph M. Becker [Thu, 3 Oct 2019 17:23:05 +0000 (19:23 +0200)]
Fix #78620: Out of memory error

The integer addition in `ZEND_MM_ALIGNED_SIZE_EX` can overflow, what we
have to catch early.

5 years agofix #78624: session_gc return value for user defined session handlers
Brent Shaffer [Wed, 2 Oct 2019 23:44:58 +0000 (16:44 -0700)]
fix #78624: session_gc return value for user defined session handlers

5 years agoFix bug #76809 (SSL settings aren't respected when persistent connection is reused)
Fábio Souto [Mon, 3 Sep 2018 16:18:37 +0000 (17:18 +0100)]
Fix bug #76809 (SSL settings aren't respected when persistent connection is reused)

5 years agoFix #76859 stream_get_line skips data if used with data-generating filter
Konstantin Kopachev [Tue, 18 Sep 2018 04:44:01 +0000 (21:44 -0700)]
Fix #76859 stream_get_line skips data if used with data-generating filter

stream_get-line repeatedly calls php_stream_fill_read_buffer until
enough data is accumulated in buffer. However, when stream contains
filters attached to it, then each call to fill buffer essentially
resets buffer read/write pointers and new data is written over old.
This causes stream_get_line to skip parts of data from stream
This patch fixes such behavior, so fill buffer call will append.

5 years agoRevert "Fix #78620: Out of memory error"
Christoph M. Becker [Wed, 2 Oct 2019 17:01:35 +0000 (19:01 +0200)]
Revert "Fix #78620: Out of memory error"

This reverts commit 8ce04df7e0108a10f7b782a28204e9384ab1129c.

Cf. <https://github.com/php/php-src/pull/4766#discussion_r330658679>.

5 years agoFix #78620: Out of memory error
Christoph M. Becker [Wed, 2 Oct 2019 14:42:28 +0000 (16:42 +0200)]
Fix #78620: Out of memory error

If the integer addition in `ZEND_MM_ALIGNED_SIZE_EX` overflows, the
macro evaluates to `0`, what we should catch early.

5 years agoFix segfault with __COMPILER_HALT_OFFSET__ and trailing {}
Nikita Popov [Wed, 2 Oct 2019 10:06:00 +0000 (12:06 +0200)]
Fix segfault with __COMPILER_HALT_OFFSET__ and trailing {}

Fixes OSS-Fuzz #17895.

5 years agoFixed test that "fails" from time to time
Dmitry Stogov [Tue, 1 Oct 2019 21:54:59 +0000 (00:54 +0300)]
Fixed test that "fails" from time to time

5 years agoFixed test that "fails" from time to time
Dmitry Stogov [Tue, 1 Oct 2019 21:48:42 +0000 (00:48 +0300)]
Fixed test that "fails" from time to time

5 years agoAdd missing skip keyword in tests
Fabien Villepinte [Tue, 1 Oct 2019 08:59:40 +0000 (10:59 +0200)]
Add missing skip keyword in tests

5 years agoFixed bug #78612
Nikita Popov [Mon, 30 Sep 2019 13:05:35 +0000 (15:05 +0200)]
Fixed bug #78612

5 years agoFix #78609: mb_check_encoding() no longer supports stringable objects
Christoph M. Becker [Mon, 30 Sep 2019 09:07:03 +0000 (11:07 +0200)]
Fix #78609: mb_check_encoding() no longer supports stringable objects

We apply type juggling for other types than array.

5 years agoFix build for libzip < 0.11.2
Christoph M. Becker [Sun, 29 Sep 2019 11:31:22 +0000 (13:31 +0200)]
Fix build for libzip < 0.11.2

We must not define method entries, if the actual method definitions or
the arginfo structures are not defined.

5 years agoFix SKIPIF in ext/mysqli
Fabien Villepinte [Fri, 27 Sep 2019 12:06:17 +0000 (14:06 +0200)]
Fix SKIPIF in ext/mysqli

5 years agoFix skipif.inc
Christoph M. Becker [Fri, 27 Sep 2019 10:50:04 +0000 (12:50 +0200)]
Fix skipif.inc

5 years agoFix memory leak with ** on array operands
Nikita Popov [Thu, 26 Sep 2019 11:45:45 +0000 (13:45 +0200)]
Fix memory leak with ** on array operands

5 years agoFix null-pointer deref in if stmt printing
Nikita Popov [Thu, 26 Sep 2019 08:24:49 +0000 (10:24 +0200)]
Fix null-pointer deref in if stmt printing

Fixes OSS-Fuzz #17721.

5 years agoFix hash key length in umsg_parse_format()
Jinesh Patel [Mon, 29 Jul 2019 18:19:52 +0000 (14:19 -0400)]
Fix hash key length in umsg_parse_format()

Fix array length passed to zend_hash_str_find_ptr() casting from
UChar array to char array requires mul by sizeof(UChar).

5 years agoFix NEWS entry
Christoph M. Becker [Mon, 23 Sep 2019 20:59:55 +0000 (22:59 +0200)]
Fix NEWS entry

Cf. <https://bugs.php.net/78590>.

5 years agoFix skipif condition
Nikita Popov [Mon, 23 Sep 2019 15:17:52 +0000 (17:17 +0200)]
Fix skipif condition

5 years agoSkip test on 32-bit
Nikita Popov [Mon, 23 Sep 2019 14:42:24 +0000 (16:42 +0200)]
Skip test on 32-bit

5 years agoFix signed integer overflow in SplObjectStorage unserialization
Nikita Popov [Mon, 23 Sep 2019 11:16:58 +0000 (13:16 +0200)]
Fix signed integer overflow in SplObjectStorage unserialization

If count is ZEND_LONG_MIN the count-- loop underflows. This is
ultimately harmless, but results in a ubsan warning.

Fix this by adding a sanity check that the count isn't negative,
because that doesn't make sense...

5 years agoFix test to be skipped if dom is not available
Christoph M. Becker [Sun, 22 Sep 2019 16:39:55 +0000 (18:39 +0200)]
Fix test to be skipped if dom is not available

5 years agoFix leak of temporary buffer during exif tag reading
Nikita Popov [Sun, 22 Sep 2019 10:10:17 +0000 (12:10 +0200)]
Fix leak of temporary buffer during exif tag reading

5 years agoFix multiple leaks in exif_read_data()
Nikita Popov [Sat, 21 Sep 2019 18:38:24 +0000 (20:38 +0200)]
Fix multiple leaks in exif_read_data()

This fixes two leaks related to duplicate tags, as well as a leak
of zero-length FMT_(S)BYTE with non-null value. This can show up
for MAKERNOTE values where the original length is non-zero, but
the first character is a null byte.