From 88ae29c149d290eebad464358a04997fa6fea3e2 Mon Sep 17 00:00:00 2001 From: Gerald Combs Date: Fri, 11 May 2012 17:15:12 +0000 Subject: [PATCH] Use "%parse-param" instead of a global variable. Fixes a scan-build warning. svn path=/trunk/; revision=42578 --- wiretap/ascend.y | 62 ++++++++++++++++++++++++------------------------ 1 file changed, 31 insertions(+), 31 deletions(-) diff --git a/wiretap/ascend.y b/wiretap/ascend.y index 48fcc475cc..c6a3fd5b67 100644 --- a/wiretap/ascend.y +++ b/wiretap/ascend.y @@ -5,17 +5,17 @@ * * Wiretap Library * Copyright (c) 1998 by Gilbert Ramirez - * + * * 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. @@ -49,17 +49,17 @@ ETHER3ND RECV: (task "_sarTask" at 0x802c6eb0, time: 259848.03) 775 octets @ 0xa [0060]: 31 33 35 2e 135. Example 'wandsess' output data: - + RECV-iguana:241:(task: B02614C0, time: 1975432.85) 49 octets @ 8003BD94 - [0000]: FF 03 00 3D C0 06 CA 22 2F 45 00 00 28 6A 3B 40 - [0010]: 00 3F 03 D7 37 CE 41 62 12 CF 00 FB 08 20 27 00 - [0020]: 50 E4 08 DD D7 7C 4C 71 92 50 10 7D 78 67 C8 00 - [0030]: 00 + [0000]: FF 03 00 3D C0 06 CA 22 2F 45 00 00 28 6A 3B 40 + [0010]: 00 3F 03 D7 37 CE 41 62 12 CF 00 FB 08 20 27 00 + [0020]: 50 E4 08 DD D7 7C 4C 71 92 50 10 7D 78 67 C8 00 + [0030]: 00 XMIT-iguana:241:(task: B04E12C0, time: 1975432.85) 53 octets @ 8009EB16 - [0000]: FF 03 00 3D C0 09 1E 31 21 45 00 00 2C 2D BD 40 - [0010]: 00 7A 06 D8 B1 CF 00 FB 08 CE 41 62 12 00 50 20 - [0020]: 29 7C 4C 71 9C 9A 6A 93 A4 60 12 22 38 3F 10 00 - [0030]: 00 02 04 05 B4 + [0000]: FF 03 00 3D C0 09 1E 31 21 45 00 00 2C 2D BD 40 + [0010]: 00 7A 06 D8 B1 CF 00 FB 08 CE 41 62 12 00 50 20 + [0020]: 29 7C 4C 71 9C 9A 6A 93 A4 60 12 22 38 3F 10 00 + [0030]: 00 02 04 05 B4 Example 'wdd' output data: @@ -91,7 +91,7 @@ RECV-187:(task: B0292CA0, time: 18042251.92) 16 octets @ 800018E8 In TAOS 8.0, Lucent slightly changed the format as follows: - Example 'wandisp' output data (TAOS 8.0.3): (same format is used + Example 'wandisp' output data (TAOS 8.0.3): (same format is used for 'wanopen' and 'wannext' command) RECV-14: (task "idle task" at 0xb05e6e00, time: 1279.01) 29 octets @ 0x8000e0fc @@ -105,7 +105,7 @@ XMIT-14: (task "idle task" at 0xb05e6e00, time: 1279.02) 29 octets @ 0x8007fa36 [0000]: ff 03 c0 21 02 01 00 19 01 04 05 f4 11 04 05 f4 ...!.... ........ [0010]: 13 09 03 00 c0 7b 9a 9f 2d 17 04 10 00 .....{.. -.... - Example 'wandsess' output data (TAOS 8.0.3): + Example 'wandsess' output data (TAOS 8.0.3): RECV-Max7:20: (task "_brouterControlTask" at 0xb094ac20, time: 1481.50) 20 octets @ 0x8000d198 [0000]: ff 03 00 3d c0 00 00 04 80 fd 02 01 00 0a 11 06 ...=.... ........ @@ -144,8 +144,8 @@ XMIT-Max7:20: (task "_brouterControlTask" at 0xb094ac20, time: 1481.51) 20 octet #define NO_USER "" -int yyparse(void); -void yyerror(const char *); +int yyparse(FILE_T fh); +void yyerror(FILE_T fh _U_, const char *); const gchar *ascend_parse_error; @@ -155,10 +155,9 @@ static ascend_pkthdr *header; struct ascend_phdr *pseudo_header; static guint8 *pkt_data; static gint64 first_hexbyte; -static FILE_T *fh_ptr; %} - + %union { gchar *s; guint32 d; @@ -166,13 +165,15 @@ guint8 b; } %token STRING KEYWORD WDD_DATE WDD_CHUNK COUNTER SLASH_SUFFIX -%token WDS_PREFIX ISDN_PREFIX ETHER_PREFIX DECNUM HEXNUM +%token WDS_PREFIX ISDN_PREFIX ETHER_PREFIX DECNUM HEXNUM %token HEXBYTE -%type string dataln datagroup +%type string dataln datagroup %type wds_prefix isdn_prefix ether_prefix decnum hexnum %type byte bytegroup +%parse-param { FILE_T fh } + %% data_packet: @@ -229,7 +230,7 @@ deferred_isdn_hdr: isdn_prefix decnum SLASH_SUFFIX KEYWORD string KEYWORD hexnum ; /* -PRI-XMIT-19: (task "l1Task" at 0x10216840, time: 274758.67) 4 octets @ 0x1027c1c0 +PRI-XMIT-19: (task "l1Task" at 0x10216840, time: 274758.67) 4 octets @ 0x1027c1c0 ... or ... PRI-RCV-27: (task "idle task" at 0x10123570, time: 560194.01) 4 octets @ 0x1027fb00 */ @@ -359,7 +360,7 @@ wdd_date: WDD_DATE decnum decnum decnum KEYWORD decnum decnum decnum KEYWORD str wddt.tm_mon = $2 - 1; wddt.tm_year = ($4 > 1970) ? $4 - 1900 : 70; wddt.tm_isdst = -1; - + start_time = (guint32) mktime(&wddt); } ; @@ -384,12 +385,12 @@ wdd_hdr: WDD_CHUNK hexnum KEYWORD KEYWORD hexnum KEYWORD decnum decnum decnum KE } } ; - + byte: HEXBYTE { /* remember the position of the data group in the trace, to tip off ascend_seek() as to where to look for the next header. */ if (first_hexbyte == 0) - first_hexbyte = file_tell(*fh_ptr); + first_hexbyte = file_tell(fh); if (bcur < caplen) { pkt_data[bcur] = $1; @@ -399,7 +400,7 @@ byte: HEXBYTE { /* arbitrary safety maximum... */ if (bcur >= ASCEND_MAX_PKT_LEN) YYACCEPT; -} +} ; /* XXX There must be a better way to do this... */ @@ -457,7 +458,6 @@ parse_ascend(FILE_T fh, guint8 *pd, struct ascend_phdr *phdr, pkt_data = pd; pseudo_header = phdr; header = hdr; - fh_ptr = &fh; bcur = 0; first_hexbyte = 0; @@ -477,7 +477,7 @@ parse_ascend(FILE_T fh, guint8 *pd, struct ascend_phdr *phdr, */ pseudo_header->call_num[0] = '\0'; - retval = yyparse(); + retval = yyparse(fh); caplen = bcur; @@ -489,11 +489,11 @@ parse_ascend(FILE_T fh, guint8 *pd, struct ascend_phdr *phdr, *start_of_data = first_hexbyte; } else { /* Sometimes, a header will be printed but the data will be omitted, or - worse -- two headers will be printed, followed by the data for each. + worse -- two headers will be printed, followed by the data for each. Because of this, we need to be fairly tolerant of what we accept here. If we didn't find any hex bytes, skip over what we've read so far so we can try reading a new packet. */ - *start_of_data = file_tell(*fh_ptr); + *start_of_data = file_tell(fh); retval = 0; } @@ -516,12 +516,12 @@ parse_ascend(FILE_T fh, guint8 *pd, struct ascend_phdr *phdr, /* Didn't see any data. Still, perhaps the parser was happy. */ if (retval) return PARSE_FAILED; - else + else return PARSED_NONRECORD; } void -yyerror (const char *s) +yyerror (FILE_T fh _U_, const char *s) { ascend_parse_error = s; }