summaryrefslogtreecommitdiff
path: root/app-arch/rzip/files/rzip-2.1-CVE-2017-8364.patch
blob: 3c65e6f1939da54752eb62e2f635b8b8335e5774 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
Index: rzip-2.1/stream.c
===================================================================
--- rzip-2.1.orig/stream.c
+++ rzip-2.1/stream.c
@@ -147,16 +147,16 @@ static int write_u32(int f, u32 v)
 	return 0;
 }
 
-static int read_buf(int f, uchar *p, int len)
+static int read_buf(int f, uchar *p, unsigned int len)
 {
 	int ret;
 	ret = read(f, p, len);
 	if (ret == -1) {
-		err_msg("Read of length %d failed - %s\n", len, strerror(errno));
+		err_msg("Read of length %u failed - %s\n", len, strerror(errno));
 		return -1;
 	}
 	if (ret != len) {
-		err_msg("Partial read!? asked for %d bytes but got %d\n", len, ret);
+		err_msg("Partial read!? asked for %u bytes but got %d\n", len, ret);
 		return -1;
 	}
 	return 0;
@@ -399,7 +399,7 @@ static int fill_buffer(struct stream_inf
 	if (sinfo->s[stream].buf) {
 		free(sinfo->s[stream].buf);
 	}
-	sinfo->s[stream].buf = malloc(u_len);
+	sinfo->s[stream].buf = malloc(c_len > u_len ? c_len : u_len);
 	if (!sinfo->s[stream].buf) {
 		return -1;
 	}