Browse code

* libclamav/chmunpack.c: Add extra sanity check. * libclamav/unrar/unrar20.c: Fix typo spotted by NJH.

git-svn: trunk@1498

Trog authored on 2005/04/28 16:54:24
Showing 3 changed files
... ...
@@ -1,3 +1,9 @@
1
+Thu Apr 28 08:52:05 BST 2005 (trog)
2
+-----------------------------------
3
+  * libclamav/chmunpack.c: Add extra sanity check.
4
+
5
+  * libclamav/unrar/unrar20.c: Fix typo spotted by NJH.
6
+
1 7
 Wed Apr 27 23:54:46 CEST 2005 (tk)
2 8
 ----------------------------------
3 9
   * libclamav/upx.c: add sanity check to pefromupx() (patch by NJH)
... ...
@@ -187,6 +187,9 @@ static uint64_t chm_endian_convert_64(uint64_t v)
187 187
 int chm_read_data(int fd, unsigned char *dest, off_t offset, off_t len,
188 188
 			unsigned char *m_area, off_t m_length)
189 189
 {
190
+	if ((offset < 0) || (len < 0) || ((offset+len) < 0)) {
191
+		return FALSE;
192
+	}
190 193
 	if (m_area != NULL) {
191 194
 		if ((offset+len) > m_length) {
192 195
 			return FALSE;
... ...
@@ -182,7 +182,7 @@ static unsigned char decode_audio(unpack_data_t *unpack_data, int delta)
182 182
 	
183 183
 	pch = 8 * v->last_char + v->K1 * v->D1 + v->K2 * v->D2 + v->K3 *
184 184
 		v->D3 + v->K4 * v->D4 + v->K5 * unpack_data->unp_channel_delta;
185
-	pch - (pch >> 3) & 0xff;
185
+	pch = (pch >> 3) & 0xff;
186 186
 	
187 187
 	ch = pch - delta;
188 188