diff --git a/libdvbv5-fix-double-free-in-dvb_fe_open_fname.patch b/libdvbv5-fix-double-free-in-dvb_fe_open_fname.patch new file mode 100644 index 0000000..60a8ffc --- /dev/null +++ b/libdvbv5-fix-double-free-in-dvb_fe_open_fname.patch @@ -0,0 +1,63 @@ +From 78057aaa784a922b4ac6af9f323b828f7a834581 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Andr=C3=A9=20Roth?= +Date: Sat, 7 Jul 2018 07:20:55 -0400 +Subject: libdvbv5: fix double free in dvb_fe_open_fname +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Since parms and fname is allocated outside of the function, do not free it. +Use dvb_v5_free for freeing parms, it will free fname if required. + +Signed-off-by: André Roth +Signed-off-by: Mauro Carvalho Chehab + +diff --git a/lib/libdvbv5/dvb-fe.c b/lib/libdvbv5/dvb-fe.c +index 514a187..7f63476 100644 +--- a/lib/libdvbv5/dvb-fe.c ++++ b/lib/libdvbv5/dvb-fe.c +@@ -179,7 +179,7 @@ struct dvb_v5_fe_parms *dvb_fe_open_flags(int adapter, int frontend, + + ret = dvb_fe_open_fname(parms, dvb_dev->path, flags); + if (ret < 0) { +- free(parms); ++ dvb_v5_free(parms); + return NULL; + } + +@@ -202,9 +202,7 @@ int dvb_fe_open_fname(struct dvb_v5_fe_parms_priv *parms, char *fname, + + if (xioctl(fd, FE_GET_INFO, &parms->p.info) == -1) { + dvb_perror("FE_GET_INFO"); +- dvb_v5_free(parms); + close(fd); +- free(fname); + return -errno; + } + +@@ -291,7 +289,6 @@ int dvb_fe_open_fname(struct dvb_v5_fe_parms_priv *parms, char *fname, + } + if (!parms->p.num_systems) { + dvb_logerr(_("delivery system not detected")); +- dvb_v5_free(parms); + close(fd); + return -EINVAL; + } +@@ -302,7 +299,6 @@ int dvb_fe_open_fname(struct dvb_v5_fe_parms_priv *parms, char *fname, + dtv_prop.props = parms->dvb_prop; + if (xioctl(fd, FE_GET_PROPERTY, &dtv_prop) == -1) { + dvb_perror("FE_GET_PROPERTY"); +- dvb_v5_free(parms); + close(fd); + return -errno; + } +@@ -312,7 +308,6 @@ int dvb_fe_open_fname(struct dvb_v5_fe_parms_priv *parms, char *fname, + + if (parms->p.num_systems == 0) { + dvb_logerr(_("driver returned 0 supported delivery systems!")); +- dvb_v5_free(parms); + close(fd); + return -EINVAL; + } +-- +cgit v0.10.2 diff --git a/v4l-utils.spec b/v4l-utils.spec index 45eb8ac..1218c18 100644 --- a/v4l-utils.spec +++ b/v4l-utils.spec @@ -1,12 +1,13 @@ Name: v4l-utils Version: 1.16.5 -Release: 1%{?dist} +Release: 2%{?dist} Summary: Utilities for video4linux and DVB devices # libdvbv5, dvbv5 utils, ir-keytable and v4l2-sysfs-path are GPLv2 only License: GPLv2+ and GPLv2 URL: http://www.linuxtv.org/downloads/v4l-utils/ Source0: http://linuxtv.org/downloads/v4l-utils/v4l-utils-%{version}.tar.bz2 +Patch1: libdvbv5-fix-double-free-in-dvb_fe_open_fname.patch BuildRequires: alsa-lib-devel BuildRequires: desktop-file-utils @@ -199,6 +200,9 @@ desktop-file-validate $RPM_BUILD_ROOT%{_datadir}/applications/qv4l2.desktop %changelog +* Tue Apr 16 2019 Peter Robinson 1.16.5-2 +- Upstream fix for libdvbv5 (rhbz 1695023) + * Sun Mar 31 2019 Peter Robinson 1.16.5-1 - New upstream release 1.16.5