diff mbox

[7/8] libdvbv5: fix lost ressource in atsc_eit

Message ID 1396196478-996-7-git-send-email-neolynx@gmail.com (mailing list archive)
State New, archived
Headers show

Commit Message

André Roth March 30, 2014, 4:21 p.m. UTC
if the title of the EIT event is longer than the available data,
make sure the allocated buffer is not lost

Signed-off-by: André Roth <neolynx@gmail.com>
---
 lib/libdvbv5/descriptors/atsc_eit.c | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)
diff mbox

Patch

diff --git a/lib/libdvbv5/descriptors/atsc_eit.c b/lib/libdvbv5/descriptors/atsc_eit.c
index 92764df..9e1397d 100644
--- a/lib/libdvbv5/descriptors/atsc_eit.c
+++ b/lib/libdvbv5/descriptors/atsc_eit.c
@@ -74,6 +74,11 @@  ssize_t atsc_table_eit_init(struct dvb_v5_fe_parms *parms, const uint8_t *buf,
                 atsc_time(event->start_time, &event->start);
 		event->source_id = eit->header.id;
 
+		if(!*head)
+			*head = event;
+		if(last)
+			last->next = event;
+
 		size = event->title_length - 1;
 		if (p + size > endbuf) {
 			dvb_logerr("%s: short read %zd/%zd bytes", __func__,
@@ -83,11 +88,6 @@  ssize_t atsc_table_eit_init(struct dvb_v5_fe_parms *parms, const uint8_t *buf,
                 /* TODO: parse title */
                 p += size;
 
-		if(!*head)
-			*head = event;
-		if(last)
-			last->next = event;
-
 		/* get the descriptors for each program */
 		size = sizeof(union atsc_table_eit_desc_length);
 		if (p + size > endbuf) {