From 5cf91c5067a9c7ed3c138d4e56fb176b28f5dc3a Mon Sep 17 00:00:00 2001 From: Leena Winterrowd Date: Mon, 3 Nov 2014 18:56:39 -0800 Subject: libstagefright: httplive: Add NULL check for empty playlist If the source playlist is empty, the playlist meta will be NULL. Check for this case to avoid an invalid dereference. Also flag playlists without the required EXT-X-TARGETDURATION tag as malformed. Bug: 18821145 Change-Id: Idf74d890a89bbc6483a6d4060eb092dc7461be24 --- media/libstagefright/httplive/PlaylistFetcher.cpp | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) (limited to 'media/libstagefright/httplive/PlaylistFetcher.cpp') diff --git a/media/libstagefright/httplive/PlaylistFetcher.cpp b/media/libstagefright/httplive/PlaylistFetcher.cpp index d8eed5b..2cfdfe4 100644 --- a/media/libstagefright/httplive/PlaylistFetcher.cpp +++ b/media/libstagefright/httplive/PlaylistFetcher.cpp @@ -610,7 +610,12 @@ void PlaylistFetcher::onMonitorQueue() { int32_t targetDurationSecs; int64_t targetDurationUs = kMinBufferedDurationUs; if (mPlaylist != NULL) { - CHECK(mPlaylist->meta()->findInt32("target-duration", &targetDurationSecs)); + if (mPlaylist->meta() == NULL || !mPlaylist->meta()->findInt32( + "target-duration", &targetDurationSecs)) { + ALOGE("Playlist is missing required EXT-X-TARGETDURATION tag"); + notifyError(ERROR_MALFORMED); + return; + } targetDurationUs = targetDurationSecs * 1000000ll; } -- cgit v1.1