Allocated memory will never get free when read fails.
See attached patch.

Tomer
diff -r d3509d6e9499 lib/libdvbapi/dvbca.c
--- a/lib/libdvbapi/dvbca.c	Sat Aug 08 19:17:21 2009 +0200
+++ b/lib/libdvbapi/dvbca.c	Sun Jul 25 15:50:30 2010 +0300
@@ -110,8 +110,10 @@
 	if (buf == NULL)
 		return -1;
 
-	if ((size = read(fd, buf, data_length+2)) < 2)
+	if ((size = read(fd, buf, data_length+2)) < 2) {
+		free(buf);
 		return -1;
+	}
 
 	*slot = buf[0];
 	*connection_id = buf[1];

Reply via email to