Browse code

detect and ignore ISO 9660/High Sierra CD-ROM data

git-svn: trunk@1447

Tomasz Kojm authored on 2005/03/29 09:05:05
Showing 2 changed files
... ...
@@ -1,3 +1,7 @@
1
+Tue Mar 29 02:02:05 CEST 2005 (tk)
2
+----------------------------------
3
+  * libclamav: detect and ignore ISO 9660/High Sierra CD-ROM data
4
+
1 5
 Mon Mar 28 12:05:17 BST 2005 (njh)
2 6
 ----------------------------------
3 7
  * libclamav:	Added fast track visa technology to files that are not mboxs
... ...
@@ -213,11 +213,11 @@ cli_file_t cli_filetype2(int desc)
213 213
 
214 214
     if(ret == CL_TYPE_UNKNOWN_DATA || ret == CL_TYPE_UNKNOWN_TEXT) {
215 215
 
216
-	if(!(bigbuff = (unsigned char *) cli_calloc(16384 + 1, sizeof(unsigned char))))
216
+	if(!(bigbuff = (unsigned char *) cli_calloc(37638 + 1, sizeof(unsigned char))))
217 217
 	    return ret;
218 218
 
219 219
 	lseek(desc, 0, SEEK_SET);
220
-	if((bread = read(desc, bigbuff, 16384)) > 0) {
220
+	if((bread = read(desc, bigbuff, 37638)) > 0) {
221 221
 
222 222
 	    bigbuff[bread] = 0;
223 223
 
... ...
@@ -233,6 +233,17 @@ cli_file_t cli_filetype2(int desc)
233 233
 	    }
234 234
 	}
235 235
 
236
+	if(ret == CL_TYPE_UNKNOWN_DATA || ret == CL_TYPE_UNKNOWN_TEXT) {
237
+
238
+	    if(!memcmp(bigbuff + 32769, "CD001" , 5) || !memcmp(bigbuff + 37633, "CD001" , 5)) {
239
+		cli_dbgmsg("Recognized ISO 9660 CD-ROM data\n");
240
+		ret = CL_TYPE_DATA;
241
+	    } else if(!memcmp(bigbuff + 32776, "CDROM" , 5)) {
242
+		cli_dbgmsg("Recognized High Sierra CD-ROM data\n");
243
+		ret = CL_TYPE_DATA;
244
+	    }
245
+	}
246
+
236 247
 	free(bigbuff);
237 248
     }
238 249