Browse code

handle & in URLs, even with entity-converter off; don't leave & in URLs (bb #535)

git-svn: trunk@3100

Török Edvin authored on 2007/06/17 02:03:42
Showing 3 changed files
... ...
@@ -1,3 +1,9 @@
1
+Sat Jun 16 19:41:00 EEST 2007 (edwin)
2
+------------------------------------
3
+  * libclamav/htmlnorm.c, entconv.c: handle & in URLs, even with
4
+  entity-converter off; don't leave & in URLs (bb
5
+  #535)
6
+
1 7
 Sat Jun 16 19:11:00 EEST 2007 (edwin)
2 8
 ------------------------------------
3 9
   * libclamav/regex_list.c: match M:/H: signatures only at end of string (bb
... ...
@@ -62,8 +62,6 @@ unsigned char* entity_norm(const struct entity_conv* conv,const unsigned char* e
62 62
 			return (unsigned char*)cli_strdup("<");
63 63
 		else if(val == '>')/* see above */
64 64
 			return (unsigned char*)cli_strdup(">");
65
-		else if(val == '&')/* see above */
66
-			return (unsigned char*)cli_strdup("&");
67 65
 		else if(val<127) {
68 66
 			unsigned char *e_out = cli_malloc(2);
69 67
 
... ...
@@ -1175,10 +1175,10 @@ static int cli_html_normalise(int fd, m_area_t *m_area, const char *dirname, tag
1175 1175
 					hex=TRUE;
1176 1176
 					ptr++;
1177 1177
 				} else if (*ptr == ';') {
1178
-					if(dconf_entconv) {
1179
-						if (next_state==HTML_TAG_ARG_VAL && tag_val_length < HTML_STR_LENGTH) {
1178
+					if (next_state==HTML_TAG_ARG_VAL && tag_val_length < HTML_STR_LENGTH) {
1180 1179
 							tag_val[tag_val_length++] = value; /* store encoded values too */
1181
-						}
1180
+					}
1181
+					if(dconf_entconv) {
1182 1182
 
1183 1183
 						if(value < 0x80)
1184 1184
 							html_output_c(file_buff_o1, file_buff_o2, tolower(value));