Hello community, here is the log from the commit of package ffmpegthumbs for openSUSE:Factory checked in at 2018-11-06 14:34:53 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/ffmpegthumbs (Old) and /work/SRC/openSUSE:Factory/.ffmpegthumbs.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "ffmpegthumbs" Tue Nov 6 14:34:53 2018 rev:42 rq:646189 version:18.08.2 Changes: -------- --- /work/SRC/openSUSE:Factory/ffmpegthumbs/ffmpegthumbs.changes 2018-10-17 08:28:11.146533271 +0200 +++ /work/SRC/openSUSE:Factory/.ffmpegthumbs.new/ffmpegthumbs.changes 2018-11-06 14:37:26.596772455 +0100 @@ -1,0 +2,6 @@ +Sat Nov 3 10:43:00 UTC 2018 - Fabian Vogt <[email protected]> + +- Add patch to fix crash on video files without a suitable codec installed: + * 0001-Don-t-crash-if-initializeVideo-fails.patch + +------------------------------------------------------------------- New: ---- 0001-Don-t-crash-if-initializeVideo-fails.patch ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ ffmpegthumbs.spec ++++++ --- /var/tmp/diff_new_pack.2OTbDF/_old 2018-11-06 14:37:30.368766753 +0100 +++ /var/tmp/diff_new_pack.2OTbDF/_new 2018-11-06 14:37:30.368766753 +0100 @@ -27,6 +27,8 @@ Group: System/GUI/KDE Url: http://www.kde.org Source0: %{name}-%{version}.tar.xz +# PATCH-FIX-UPSTREAM +Patch1: 0001-Don-t-crash-if-initializeVideo-fails.patch BuildRequires: extra-cmake-modules BuildRequires: kf5-filesystem BuildRequires: ki18n-devel @@ -46,6 +48,7 @@ %prep %setup -q +%autopatch -p1 %build %cmake_kf5 -d build ++++++ 0001-Don-t-crash-if-initializeVideo-fails.patch ++++++ >From 477fe05f410852b78d44243a796c73dda2165398 Mon Sep 17 00:00:00 2001 From: Fabian Vogt <[email protected]> Date: Sat, 3 Nov 2018 11:41:56 +0100 Subject: [PATCH] Don't crash if initializeVideo fails Summary: If avcodec_find_decoder returns NULL, a warning is printed and then NULL is dereferenced later... Test Plan: A user crashed thumbnail.so reproducably with a specific file. Doesn't anymore with this patch applied. Reviewers: broulik Differential Revision: https://phabricator.kde.org/D16631 --- ffmpegthumbnailer/moviedecoder.cpp | 14 ++++++++++---- ffmpegthumbnailer/moviedecoder.h | 2 +- 2 files changed, 11 insertions(+), 5 deletions(-) diff --git a/ffmpegthumbnailer/moviedecoder.cpp b/ffmpegthumbnailer/moviedecoder.cpp index 6d1a79c..207e36b 100644 --- a/ffmpegthumbnailer/moviedecoder.cpp +++ b/ffmpegthumbnailer/moviedecoder.cpp @@ -73,7 +73,10 @@ void MovieDecoder::initialize(const QString& filename) return; } - initializeVideo(); + if (!initializeVideo()) { + // It already printed a message + return; + } m_pFrame = av_frame_alloc(); if (m_pFrame) { @@ -126,7 +129,7 @@ QString MovieDecoder::getCodec() return codecName; } -void MovieDecoder::initializeVideo() +bool MovieDecoder::initializeVideo() { for (unsigned int i = 0; i < m_pFormatContext->nb_streams; i++) { if (m_pFormatContext->streams[i]->codec->codec_type == AVMEDIA_TYPE_VIDEO) { @@ -138,7 +141,7 @@ void MovieDecoder::initializeVideo() if (m_VideoStream == -1) { qDebug() << "Could not find video stream"; - return; + return false; } m_pVideoCodecContext = m_pFormatContext->streams[m_VideoStream]->codec; @@ -148,14 +151,17 @@ void MovieDecoder::initializeVideo() // set to NULL, otherwise avcodec_close(m_pVideoCodecContext) crashes m_pVideoCodecContext = NULL; qDebug() << "Video Codec not found"; - return; + return false; } m_pVideoCodecContext->workaround_bugs = 1; if (avcodec_open2(m_pVideoCodecContext, m_pVideoCodec, 0) < 0) { qDebug() << "Could not open video codec"; + return false; } + + return true; } int MovieDecoder::getWidth() diff --git a/ffmpegthumbnailer/moviedecoder.h b/ffmpegthumbnailer/moviedecoder.h index 060c02e..eadc8e2 100644 --- a/ffmpegthumbnailer/moviedecoder.h +++ b/ffmpegthumbnailer/moviedecoder.h @@ -51,7 +51,7 @@ public: bool getInitialized(); private: - void initializeVideo(); + bool initializeVideo(); bool decodeVideoPacket(); bool getVideoPacket(); -- 2.19.0
