libdvbv5: add a missing return
authorMauro Carvalho Chehab <m.chehab@samsung.com>
Mon, 1 Sep 2014 23:39:45 +0000 (20:39 -0300)
committerMauro Carvalho Chehab <m.chehab@samsung.com>
Mon, 1 Sep 2014 23:39:45 +0000 (20:39 -0300)
Changeset 0097e30 fixed a Coverity bug that were causing a
memory leak in the case that the DVB dummy logic happens.
However, I forgot to add a return there, causing another
bug, also reported by Coverity:

*** CID 1233758:  Use after free  (USE_AFTER_FREE)
/lib/libdvbv5/descriptors.c: 81 in dvb_desc_default_print()
75     {
76      if (!parms) {
77      parms = dvb_fe_dummy();
78      dvb_hexdump(parms, "|           ", desc->data, desc->length);
79      free(parms);
80      }

Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
lib/libdvbv5/descriptors.c

index a1ed7f6..c68ece9 100644 (file)
@@ -77,6 +77,7 @@ static void dvb_desc_default_print(struct dvb_v5_fe_parms *parms, const struct d
                parms = dvb_fe_dummy();
                dvb_hexdump(parms, "|           ", desc->data, desc->length);
                free(parms);
+               return;
        }
        dvb_hexdump(parms, "|           ", desc->data, desc->length);
 }