qtdemux: fix crashes when input stream contained no stsd entries
authorJustin Chadwell <justin.chadwell@pexip.com>
Mon, 13 Jul 2020 09:37:19 +0000 (10:37 +0100)
committerGStreamer Merge Bot <gitlab-merge-bot@gstreamer-foundation.org>
Wed, 15 Jul 2020 12:10:45 +0000 (12:10 +0000)
commite6f66f46818f61e8cd111c9f951955d12bc19c54
treebde3af66b359be3791b59d42cdb9914eb9d0fe58
parentd3cbd4077eb453d2b2959ee66c2e784bc6097c7d
qtdemux: fix crashes when input stream contained no stsd entries

During trak parsing, we need to check for the existence of stsd_entries,
otherwise, we end up with a NULL pointer to them. It is entirely
possible for the stsd to exist, but for it to have no entries, which the
previous checks did not take into account.

This patch adds a simply check to ensure that all files that do not
contain a stsd entry are deemed corrupt, and adds a test case to prevent
a regression.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/670>
gst/isomp4/qtdemux.c
tests/check/elements/qtdemux.c