Diff between 4fc3bd0466cd5d15140c580d90af9f374925d39f and 2fb65926d438a580ef321d1f8ad22d84d0677925

Changed Files

File Additions Deletions Status
android/avdtptest.c +8 -2 modified

Full Patch

diff --git a/android/avdtptest.c b/android/avdtptest.c
index d520bc0..92312fa 100644
--- a/android/avdtptest.c
+++ b/android/avdtptest.c
@@ -244,16 +244,22 @@ static gboolean media_reader(GIOChannel *source, GIOCondition condition,
 	struct rtp_header *rtp = (void *) buf;
 	static bool decode = false;
 	uint16_t imtu;
-	int fd;
+	int fd, ret;
 
 	if (!avdtp_stream_get_transport(avdtp_stream, &fd, &imtu, NULL, NULL))
 		return TRUE;
 
-	if (read(fd, buf, imtu) < 0) {
+	ret = read(fd, buf, imtu);
+	if (ret < 0) {
 		printf("Reading failed (%s)\n", strerror(errno));
 		return TRUE;
 	}
 
+	if (ret < (int) sizeof(*rtp)) {
+		printf("Not enough media data received (%u bytes)", ret);
+		return TRUE;
+	}
+
 	if (!decode) {
 		printf("V=%u P=%u X=%u CC=%u M=%u PT=%u SeqNr=%d\n",
 			rtp->v, rtp->p, rtp->x, rtp->cc, rtp->m, rtp->pt,