wireshark/wireshark-1.4.8-CVE-2011-2597.patch

121 lines
3.1 KiB
Diff

--- trunk/wiretap/ascend_scanner.l 2011/06/08 18:26:50 37624
+++ trunk/wiretap/ascend_scanner.l 2011/06/08 20:58:44 37625
@@ -16,17 +16,17 @@
*
* Wiretap Library
* Copyright (c) 1998 by Gilbert Ramirez <gram@alumni.rice.edu>
- *
+ *
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version.
- *
+ *
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
- *
+ *
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
@@ -55,7 +55,7 @@
extern char *ascend_ra_ptr;
extern char *ascend_ra_last;
#define YY_INPUT(buf,result,max_size) { int c = file_getc(yy_fh); \
-result = (c==EOF) ? YY_NULL : (buf[0] = c, 1); }
+result = (c==EOF) ? YY_NULL : (buf[0] = c, 1); }
int at_eof;
int mul, scratch;
@@ -159,17 +159,17 @@
return WDS_PREFIX;
}
-<sc_ether_direction>[^\(]+ {
+<sc_ether_direction>[^\(]{2,20} {
BEGIN(sc_gen_task);
- return STRING;
+ return STRING;
}
-<sc_isdn_call>[^\/\(:]+ {
+<sc_isdn_call>[^\/\(:]{2,20} {
BEGIN(sc_gen_task);
return DECNUM;
}
-<sc_wds_user>[^:]+ {
+<sc_wds_user>[^:]{2,20} {
char *atcopy = g_strdup(ascendtext);
char colon = input();
char after = input();
@@ -200,7 +200,7 @@
return DECNUM;
}
-<sc_gen_task>(0x|0X)?{H}+ {
+<sc_gen_task>(0x|0X)?{H}{2,8} {
BEGIN(sc_gen_time_s);
ascendlval.d = strtoul(ascendtext, NULL, 16);
return HEXNUM;
@@ -210,13 +210,13 @@
return STRING;
}
-<sc_gen_time_s>{D}+ {
+<sc_gen_time_s>{D}{1,10} {
BEGIN(sc_gen_time_u);
ascendlval.d = strtol(ascendtext, NULL, 10);
return DECNUM;
}
-<sc_gen_time_u>{D}+ {
+<sc_gen_time_u>{D}{1,6} {
char *atcopy = g_strdup(ascendtext);
BEGIN(sc_gen_octets);
/* only want the most significant 2 digits. convert to usecs */
@@ -227,7 +227,7 @@
return DECNUM;
}
-<sc_gen_octets>{D}+ {
+<sc_gen_octets>{D}{1,10} {
BEGIN(sc_gen_counter);
ascendlval.d = strtol(ascendtext, NULL, 10);
return DECNUM;
@@ -243,11 +243,11 @@
return HEXBYTE;
}
-<sc_gen_byte>" "{4} {
+<sc_gen_byte>" "{4} {
BEGIN(sc_chardisp);
}
-<sc_chardisp>.* {
+<sc_chardisp>.* {
BEGIN(sc_gen_byte);
}
@@ -315,7 +315,7 @@
return WDD_CHUNK;
}
-<sc_wdd_chunknum>{H}+ {
+<sc_wdd_chunknum>{H}{1,8} {
BEGIN(sc_wdd_type);
ascendlval.d = strtoul(ascendtext, NULL, 16);
return HEXNUM;
@@ -349,7 +349,7 @@
/*
* We want to stop processing when we get to the end of the input.
- * (%option noyywrap is not used because if used then
+ * (%option noyywrap is not used because if used then
* some flex versions (eg: 2.5.35) generate code which causes
* warnings by the Windows VC compiler).
*/