check meta pointer before calling avifMetaDestroy (#2065)
fixes a NULL dereference should avifMetaCreate() fail and
avifDecoderDataDestroy() is called to clean up.
Found by Nallocfuzz (https://github.com/catenacyber/nallocfuzz).
Reported by Philippe Antoine (p.antoine <at> catenacyber.fr).
diff --git a/src/read.c b/src/read.c
index 7606f1e..6d204cc 100644
--- a/src/read.c
+++ b/src/read.c
@@ -993,7 +993,9 @@
static void avifDecoderDataDestroy(avifDecoderData * data)
{
- avifMetaDestroy(data->meta);
+ if (data->meta) {
+ avifMetaDestroy(data->meta);
+ }
for (uint32_t i = 0; i < data->tracks.count; ++i) {
avifTrack * track = &data->tracks.track[i];
if (track->sampleTable) {