This is an automatic generated email to let you know that the following patch 
were queued at the 
http://git.linuxtv.org/cgit.cgi/v4l-utils.git tree:

Subject: libdvbv5: fix double free in dvb_fe_open_fname
Author:  André Roth <neol...@gmail.com>
Date:    Sat Jul 7 07:20:55 2018 -0400

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 <neol...@gmail.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab+sams...@kernel.org>

 lib/libdvbv5/dvb-fe.c | 7 +------
 1 file changed, 1 insertion(+), 6 deletions(-)

---

http://git.linuxtv.org/cgit.cgi/v4l-utils.git/commit/?id=25e967319367979e24e93ef1a3c74a1f4111575f
diff --git a/lib/libdvbv5/dvb-fe.c b/lib/libdvbv5/dvb-fe.c
index 303a8916017a..97ad35b28f56 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;
        }
 
@@ -200,9 +200,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;
        }
 
@@ -289,7 +287,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;
                }
@@ -300,7 +297,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;
                }
@@ -310,7 +306,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;
                }

_______________________________________________
linuxtv-commits mailing list
linuxtv-commits@linuxtv.org
https://www.linuxtv.org/cgi-bin/mailman/listinfo/linuxtv-commits

Reply via email to