Bug Summary

File:src/lib/libpcap/obj/grammar.c
Warning:line 815, column 18
Use of zero-allocated memory

Annotated Source Code

Press '?' to see keyboard shortcuts

clang -cc1 -cc1 -triple amd64-unknown-openbsd7.0 -analyze -disable-free -disable-llvm-verifier -discard-value-names -main-file-name grammar.c -analyzer-store=region -analyzer-opt-analyze-nested-blocks -analyzer-checker=core -analyzer-checker=apiModeling -analyzer-checker=unix -analyzer-checker=deadcode -analyzer-checker=security.insecureAPI.UncheckedReturn -analyzer-checker=security.insecureAPI.getpw -analyzer-checker=security.insecureAPI.gets -analyzer-checker=security.insecureAPI.mktemp -analyzer-checker=security.insecureAPI.mkstemp -analyzer-checker=security.insecureAPI.vfork -analyzer-checker=nullability.NullPassedToNonnull -analyzer-checker=nullability.NullReturnedFromNonnull -analyzer-output plist -w -setup-static-analyzer -mrelocation-model pic -pic-level 1 -fhalf-no-semantic-interposition -mframe-pointer=all -relaxed-aliasing -fno-rounding-math -mconstructor-aliases -munwind-tables -target-cpu x86-64 -target-feature +retpoline-indirect-calls -target-feature +retpoline-indirect-branches -tune-cpu generic -debugger-tuning=gdb -fcoverage-compilation-dir=/usr/src/lib/libpcap/obj -resource-dir /usr/local/lib/clang/13.0.0 -I . -I /usr/src/lib/libpcap -D yylval=pcap_yylval -D HAVE_SYS_IOCCOM_H -D HAVE_SYS_SOCKIO_H -D HAVE_ETHER_HOSTTON -D HAVE_STRERROR -D HAVE_SOCKADDR_SA_LEN -D LBL_ALIGN -D HAVE_IFADDRS_H -D INET6 -D HAVE_BSD_IEEE80211 -D PIC -internal-isystem /usr/local/lib/clang/13.0.0/include -internal-externc-isystem /usr/include -O2 -fdebug-compilation-dir=/usr/src/lib/libpcap/obj -ferror-limit 19 -fwrapv -D_RET_PROTECTOR -ret-protector -fgnuc-version=4.2.1 -vectorize-loops -vectorize-slp -fno-builtin-malloc -fno-builtin-calloc -fno-builtin-realloc -fno-builtin-valloc -fno-builtin-free -fno-builtin-strdup -fno-builtin-strndup -analyzer-output=html -faddrsig -D__GCC_HAVE_DWARF2_CFI_ASM=1 -o /home/ben/Projects/vmm/scan-build/2022-01-12-194120-40624-1 -x c grammar.c
1#include <stdlib.h>
2#include <string.h>
3#define YYBYACC1 1
4#define YYMAJOR1 1
5#define YYMINOR9 9
6#define YYLEXpcap_yylex() yylexpcap_yylex()
7#define YYEMPTY-1 -1
8#define yyclearin(pcap_yychar=(-1)) (yycharpcap_yychar=(YYEMPTY-1))
9#define yyerrok(pcap_yyerrflag=0) (yyerrflagpcap_yyerrflag=0)
10#define YYRECOVERING()(pcap_yyerrflag!=0) (yyerrflagpcap_yyerrflag!=0)
11#define yyparsepcap_yyparse pcap_yyparse
12#define yylexpcap_yylex pcap_yylex
13#define yyerrorpcap_yyerror pcap_yyerror
14#define yycharpcap_yychar pcap_yychar
15#define yyvalpcap_yyval pcap_yyval
16#define yylvalpcap_yylval pcap_yylval
17#define yydebugpcap_yydebug pcap_yydebug
18#define yynerrspcap_yynerrs pcap_yynerrs
19#define yyerrflagpcap_yyerrflag pcap_yyerrflag
20#define yysspcap_yyss pcap_yyss
21#define yysslimpcap_yysslim pcap_yysslim
22#define yyssppcap_yyssp pcap_yyssp
23#define yyvspcap_yyvs pcap_yyvs
24#define yyvsppcap_yyvsp pcap_yyvsp
25#define yystacksizepcap_yystacksize pcap_yystacksize
26#define yylhspcap_yylhs pcap_yylhs
27#define yylenpcap_yylen pcap_yylen
28#define yydefredpcap_yydefred pcap_yydefred
29#define yydgotopcap_yydgoto pcap_yydgoto
30#define yysindexpcap_yysindex pcap_yysindex
31#define yyrindexpcap_yyrindex pcap_yyrindex
32#define yygindexpcap_yygindex pcap_yygindex
33#define yytablepcap_yytable pcap_yytable
34#define yycheckpcap_yycheck pcap_yycheck
35#define yynamepcap_yyname pcap_yyname
36#define yyrulepcap_yyrule pcap_yyrule
37#define YYPREFIX"pcap_yy" "pcap_yy"
38#line 2 "/usr/src/lib/libpcap/grammar.y"
39/* $OpenBSD: grammar.y,v 1.23 2021/12/01 18:28:45 deraadt Exp $ */
40
41/*
42 * Copyright (c) 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996
43 * The Regents of the University of California. All rights reserved.
44 *
45 * Redistribution and use in source and binary forms, with or without
46 * modification, are permitted provided that: (1) source code distributions
47 * retain the above copyright notice and this paragraph in its entirety, (2)
48 * distributions including binary code include the above copyright notice and
49 * this paragraph in its entirety in the documentation or other materials
50 * provided with the distribution, and (3) all advertising materials mentioning
51 * features or use of this software display the following acknowledgement:
52 * ``This product includes software developed by the University of California,
53 * Lawrence Berkeley Laboratory and its contributors.'' Neither the name of
54 * the University nor the names of its contributors may be used to endorse
55 * or promote products derived from this software without specific prior
56 * written permission.
57 * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR IMPLIED
58 * WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF
59 * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
60 *
61 */
62
63#include <sys/types.h>
64#include <sys/time.h>
65#include <sys/socket.h>
66
67#include <net/if.h>
68
69#include <netinet/in.h>
70#include <netinet/if_ether.h>
71
72#include <net/pfvar.h>
73
74#include <net80211/ieee80211.h>
75
76#include <stdio.h>
77#include <string.h>
78
79#include "pcap-int.h"
80
81#include "gencode.h"
82#include <pcap-namedb.h>
83
84#ifdef HAVE_OS_PROTO_H
85#include "os-proto.h"
86#endif
87
88#define QSET(q, p, d, a)(q).proto = (p), (q).dir = (d), (q).addr = (a) (q).proto = (p),\
89 (q).dir = (d),\
90 (q).addr = (a)
91
92int n_errors = 0;
93
94static struct qual qerr = { Q_UNDEF255, Q_UNDEF255, Q_UNDEF255, Q_UNDEF255 };
95
96static void
97yyerrorpcap_yyerror(char *msg)
98{
99 ++n_errors;
100 bpf_error("%s", msg);
101 /* NOTREACHED */
102}
103
104#ifndef YYBISON
105int yyparsepcap_yyparse(void);
106
107int
108pcap_parse()
109{
110 return (yyparsepcap_yyparse());
111}
112#endif
113
114#line 79 "/usr/src/lib/libpcap/grammar.y"
115#ifndef YYSTYPE_DEFINED
116#define YYSTYPE_DEFINED
117typedef union {
118 int i;
119 bpf_u_int32 h;
120 u_char *e;
121 char *s;
122 struct stmt *stmt;
123 struct arth *a;
124 struct {
125 struct qual q;
126 struct block *b;
127 } blk;
128 struct block *rblk;
129} YYSTYPE;
130#endif /* YYSTYPE_DEFINED */
131#line 132 "grammar.c"
132#define DST257 257
133#define SRC258 258
134#define HOST259 259
135#define GATEWAY260 260
136#define NET261 261
137#define MASK262 262
138#define PORT263 263
139#define LESS264 264
140#define GREATER265 265
141#define PROTO266 266
142#define PROTOCHAIN267 267
143#define BYTE268 268
144#define ARP269 269
145#define RARP270 270
146#define IP271 271
147#define TCP272 272
148#define UDP273 273
149#define ICMP274 274
150#define IGMP275 275
151#define IGRP276 276
152#define PIM277 277
153#define ATALK278 278
154#define DECNET279 279
155#define LAT280 280
156#define SCA281 281
157#define MOPRC282 282
158#define MOPDL283 283
159#define STP284 284
160#define TK_BROADCAST285 285
161#define TK_MULTICAST286 286
162#define NUM287 287
163#define INBOUND288 288
164#define OUTBOUND289 289
165#define PF_IFNAME290 290
166#define PF_RSET291 291
167#define PF_RNR292 292
168#define PF_SRNR293 293
169#define PF_REASON294 294
170#define PF_ACTION295 295
171#define TYPE296 296
172#define SUBTYPE297 297
173#define DIR298 298
174#define ADDR1299 299
175#define ADDR2300 300
176#define ADDR3301 301
177#define ADDR4302 302
178#define LINK303 303
179#define GEQ304 304
180#define LEQ305 305
181#define NEQ306 306
182#define ID307 307
183#define EID308 308
184#define HID309 309
185#define HID6310 310
186#define LSH311 311
187#define RSH312 312
188#define LEN313 313
189#define RND314 314
190#define SAMPLE315 315
191#define IPV6316 316
192#define ICMPV6317 317
193#define AH318 318
194#define ESP319 319
195#define VLAN320 320
196#define MPLS321 321
197#define OR322 322
198#define AND323 323
199#define UMINUS324 324
200#define YYERRCODE256 256
201const short pcap_yylhs[] =
202 { -1,
203 0, 0, 24, 1, 1, 1, 1, 1, 20, 21,
204 2, 2, 2, 3, 3, 3, 3, 3, 3, 3,
205 3, 23, 22, 4, 4, 4, 7, 7, 5, 5,
206 8, 8, 8, 8, 8, 8, 6, 6, 6, 6,
207 6, 6, 9, 9, 10, 10, 10, 10, 10, 10,
208 10, 10, 10, 10, 11, 11, 11, 12, 16, 16,
209 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
210 16, 16, 16, 16, 16, 16, 16, 16, 16, 25,
211 25, 25, 25, 25, 25, 25, 25, 25, 25, 25,
212 25, 25, 25, 26, 26, 26, 26, 26, 26, 29,
213 29, 28, 27, 27, 27, 27, 30, 30, 31, 31,
214 32, 32, 18, 18, 18, 19, 19, 19, 13, 13,
215 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
216 14, 14, 14, 14, 15, 15, 15, 15, 15, 17,
217 17,
218};
219const short pcap_yylen[] =
220 { 2,
221 2, 1, 0, 1, 3, 3, 3, 3, 1, 1,
222 1, 1, 3, 1, 3, 3, 1, 3, 1, 1,
223 2, 1, 1, 1, 3, 3, 1, 1, 1, 2,
224 3, 2, 2, 2, 2, 2, 2, 3, 1, 3,
225 3, 1, 1, 0, 1, 1, 3, 3, 3, 3,
226 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
227 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
228 1, 1, 1, 1, 1, 1, 1, 1, 1, 2,
229 2, 2, 2, 4, 1, 1, 2, 1, 2, 1,
230 1, 2, 2, 2, 2, 2, 2, 2, 2, 1,
231 1, 1, 4, 2, 2, 2, 1, 1, 1, 1,
232 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
233 4, 6, 3, 3, 3, 3, 3, 3, 3, 3,
234 2, 3, 1, 1, 1, 1, 1, 1, 1, 1,
235 3,
236};
237const short pcap_yydefred[] =
238 { 3,
239 0, 0, 0, 0, 0, 61, 62, 60, 63, 64,
240 65, 66, 67, 68, 69, 70, 71, 72, 74, 73,
241 79, 140, 85, 86, 0, 0, 0, 0, 0, 0,
242 59, 133, 134, 0, 75, 76, 77, 78, 0, 0,
243 22, 0, 23, 0, 4, 29, 0, 0, 0, 120,
244 0, 119, 0, 0, 42, 91, 82, 83, 0, 94,
245 95, 96, 97, 100, 101, 98, 102, 99, 93, 87,
246 0, 89, 131, 0, 0, 10, 9, 0, 0, 14,
247 20, 0, 0, 37, 11, 12, 0, 0, 0, 0,
248 55, 58, 56, 57, 34, 35, 80, 81, 0, 0,
249 0, 51, 52, 53, 54, 0, 33, 36, 92, 114,
250 116, 118, 0, 0, 0, 0, 0, 0, 0, 0,
251 113, 115, 117, 0, 0, 0, 0, 0, 0, 30,
252 136, 135, 138, 139, 137, 0, 0, 0, 6, 5,
253 0, 0, 0, 8, 7, 0, 0, 0, 24, 0,
254 0, 0, 21, 0, 0, 0, 0, 107, 108, 0,
255 109, 110, 105, 111, 112, 106, 31, 0, 0, 0,
256 0, 0, 0, 125, 126, 0, 0, 0, 38, 132,
257 141, 84, 0, 16, 15, 18, 13, 0, 0, 48,
258 50, 47, 49, 0, 121, 0, 25, 26, 103, 0,
259 122,
260};
261const short pcap_yydgoto[] =
262 { 1,
263 127, 153, 85, 150, 45, 46, 151, 47, 48, 106,
264 107, 108, 49, 50, 136, 74, 52, 124, 125, 78,
265 79, 75, 88, 2, 55, 56, 109, 68, 66, 160,
266 163, 166,
267};
268const short pcap_yysindex[] =
269 { 0,
270 0, 248, -273, -251, -232, 0, 0, 0, 0, 0,
271 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
272 0, 0, 0, 0, -290, -247, -207, -205, -275, -221,
273 0, 0, 0, -194, 0, 0, 0, 0, -36, -36,
274 0, 318, 0, -298, 0, 0, -18, 526, 566, 0,
275 9, 0, 248, 248, 0, 0, 0, 0, 77, 0,
276 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
277 -36, 0, 0, 9, 318, 0, 0, 189, 189, 0,
278 0, -42, 63, 0, 0, 0, -18, -18, -270, -227,
279 0, 0, 0, 0, 0, 0, 0, 0, -268, -267,
280 -240, 0, 0, 0, 0, -174, 0, 0, 0, 0,
281 0, 0, 318, 318, 318, 318, 318, 318, 318, 318,
282 0, 0, 0, 318, 318, 318, -39, 71, 78, 0,
283 0, 0, 0, 0, 0, -162, 78, 448, 0, 0,
284 0, 189, 189, 0, 0, -183, -158, -154, 0, 93,
285 -298, 78, 0, -123, -116, -111, -106, 0, 0, -145,
286 0, 0, 0, 0, 0, 0, 0, 123, 123, 144,
287 -16, -24, -24, 0, 0, 448, 448, 608, 0, 0,
288 0, 0, 78, 0, 0, 0, 0, -18, -18, 0,
289 0, 0, 0, -267, 0, -134, 0, 0, 0, 64,
290 0,};
291const short pcap_yyrindex[] =
292 { 0,
293 0, 150, 0, 0, 0, 0, 0, 0, 0, 0,
294 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
295 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
296 0, 0, 0, 0, 0, 0, 0, 0, 8, 10,
297 0, 0, 0, 156, 0, 0, 0, 0, 0, 0,
298 1, 0, 589, 589, 0, 0, 0, 0, 0, 0,
299 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
300 0, 0, 0, 0, 0, 0, 0, 589, 589, 0,
301 0, 21, 28, 0, 0, 0, 0, 0, -33, 351,
302 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
303 0, 0, 0, 0, 0, 271, 0, 0, 0, 0,
304 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
305 0, 0, 0, 0, 0, 0, 0, 602, 627, 0,
306 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
307 3, 589, 589, 0, 0, 0, 0, 0, 0, -216,
308 0, -201, 0, 0, 0, 0, 0, 0, 0, 58,
309 0, 0, 0, 0, 0, 0, 0, 43, 56, 83,
310 70, 16, 30, 0, 0, 72, 79, 0, 0, 0,
311 0, 0, 117, 0, 0, 0, 0, 0, 0, 0,
312 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
313 0,};
314const short pcap_yygindex[] =
315 { 0,
316 159, -41, -76, 0, -45, 0, 0, 0, 0, 0,
317 52, 0, 649, -40, 0, 170, 656, 0, 0, 18,
318 20, 628, 639, 0, 0, 0, 0, 0, 0, 0,
319 -21, 0,
320};
321#define YYTABLESIZE939 939
322const short pcap_yytable[] =
323 { 46,
324 39, 179, 12, 43, 147, 84, 46, 88, 130, 90,
325 149, 64, 128, 57, 41, 123, 60, 119, 158, 161,
326 17, 43, 120, 76, 77, 119, 117, 19, 118, 124,
327 120, 65, 140, 145, 128, 58, 139, 144, 159, 162,
328 119, 39, 129, 12, 119, 119, 164, 119, 88, 119,
329 90, 154, 155, 123, 59, 130, 123, 104, 123, 61,
330 123, 17, 119, 119, 119, 149, 165, 124, 19, 127,
331 124, 40, 124, 123, 124, 123, 123, 123, 41, 62,
332 129, 63, 128, 129, 91, 67, 93, 124, 94, 124,
333 124, 124, 69, 130, 156, 157, 130, 130, 104, 126,
334 129, 128, 129, 129, 129, 28, 28, 127, 123, 148,
335 127, 180, 40, 130, 132, 130, 130, 130, 181, 41,
336 27, 27, 124, 128, 182, 184, 119, 127, 185, 127,
337 127, 127, 186, 187, 190, 129, 135, 134, 133, 123,
338 128, 191, 128, 128, 128, 192, 197, 198, 130, 2,
339 193, 194, 200, 124, 119, 1, 201, 167, 119, 119,
340 44, 119, 127, 119, 119, 117, 129, 118, 188, 120,
341 189, 51, 199, 0, 0, 128, 119, 119, 119, 130,
342 0, 116, 0, 0, 0, 119, 117, 0, 118, 0,
343 120, 0, 0, 127, 0, 0, 0, 0, 0, 0,
344 131, 0, 0, 0, 0, 0, 128, 0, 0, 0,
345 0, 0, 0, 0, 0, 0, 0, 0, 0, 146,
346 0, 41, 51, 51, 0, 46, 0, 46, 43, 46,
347 0, 0, 0, 42, 0, 0, 0, 0, 0, 0,
348 119, 0, 0, 0, 0, 0, 0, 51, 51, 0,
349 22, 0, 0, 46, 0, 0, 0, 43, 43, 43,
350 43, 43, 0, 43, 0, 0, 43, 43, 22, 0,
351 0, 0, 0, 46, 46, 46, 46, 0, 0, 0,
352 41, 0, 76, 77, 0, 43, 43, 43, 80, 81,
353 82, 83, 42, 0, 113, 114, 43, 43, 43, 43,
354 43, 43, 43, 32, 0, 0, 119, 119, 119, 0,
355 32, 51, 51, 119, 119, 0, 0, 0, 0, 123,
356 123, 123, 39, 39, 12, 12, 123, 123, 0, 88,
357 88, 90, 90, 124, 124, 124, 0, 123, 123, 0,
358 124, 124, 17, 17, 0, 0, 129, 129, 129, 19,
359 19, 124, 124, 129, 129, 0, 0, 43, 0, 130,
360 130, 130, 42, 0, 129, 129, 130, 130, 0, 0,
361 0, 0, 0, 127, 127, 127, 0, 130, 130, 104,
362 104, 0, 0, 45, 0, 0, 128, 128, 128, 0,
363 45, 127, 127, 40, 40, 0, 0, 0, 0, 0,
364 41, 41, 0, 0, 128, 128, 44, 44, 44, 44,
365 44, 0, 44, 0, 0, 44, 44, 0, 0, 0,
366 119, 119, 119, 0, 0, 0, 0, 119, 119, 0,
367 0, 0, 0, 0, 44, 44, 0, 0, 27, 27,
368 0, 0, 0, 0, 0, 44, 44, 44, 44, 44,
369 44, 44, 3, 4, 113, 114, 5, 6, 7, 8,
370 9, 10, 11, 12, 13, 14, 15, 16, 17, 18,
371 19, 20, 21, 0, 0, 22, 23, 24, 25, 26,
372 27, 28, 29, 30, 0, 116, 0, 0, 0, 119,
373 117, 31, 118, 0, 120, 80, 81, 82, 83, 0,
374 0, 32, 33, 34, 35, 36, 37, 38, 39, 40,
375 0, 3, 4, 0, 0, 5, 6, 7, 8, 9,
376 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
377 20, 21, 0, 0, 22, 23, 24, 25, 26, 27,
378 28, 29, 30, 0, 0, 0, 0, 0, 0, 0,
379 31, 0, 0, 0, 0, 0, 0, 32, 0, 0,
380 32, 33, 34, 35, 36, 37, 38, 39, 40, 0,
381 0, 115, 0, 0, 0, 0, 0, 32, 32, 32,
382 32, 0, 0, 0, 0, 0, 6, 7, 8, 9,
383 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
384 20, 21, 0, 116, 22, 0, 0, 119, 117, 45,
385 118, 45, 120, 45, 0, 0, 0, 0, 0, 0,
386 31, 0, 0, 0, 0, 123, 122, 121, 0, 53,
387 32, 33, 0, 35, 36, 37, 38, 45, 0, 120,
388 54, 0, 0, 120, 120, 116, 120, 0, 120, 119,
389 117, 0, 118, 0, 120, 0, 0, 45, 45, 45,
390 45, 120, 120, 120, 119, 196, 71, 71, 119, 119,
391 0, 119, 0, 119, 87, 0, 0, 0, 0, 0,
392 53, 53, 0, 0, 0, 0, 119, 119, 119, 115,
393 73, 54, 54, 0, 70, 72, 0, 0, 71, 0,
394 195, 0, 86, 0, 0, 142, 142, 0, 129, 0,
395 0, 0, 0, 0, 71, 87, 143, 143, 0, 0,
396 0, 0, 0, 138, 0, 120, 137, 0, 0, 0,
397 129, 115, 0, 141, 141, 0, 0, 0, 0, 0,
398 0, 0, 152, 86, 0, 0, 0, 0, 0, 0,
399 119, 0, 0, 0, 0, 0, 0, 0, 113, 114,
400 0, 168, 169, 170, 171, 172, 173, 174, 175, 53,
401 142, 0, 176, 177, 178, 0, 0, 0, 0, 0,
402 143, 143, 89, 90, 91, 92, 93, 0, 94, 0,
403 0, 95, 96, 0, 0, 0, 0, 183, 141, 0,
404 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
405 97, 98, 0, 0, 0, 87, 87, 0, 0, 0,
406 0, 99, 100, 101, 102, 103, 104, 105, 0, 0,
407 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
408 0, 0, 0, 86, 86, 44, 44, 44, 44, 44,
409 0, 44, 0, 0, 44, 44, 0, 0, 0, 0,
410 0, 0, 0, 0, 0, 0, 0, 0, 0, 110,
411 111, 112, 0, 44, 44, 0, 113, 114, 0, 0,
412 0, 0, 0, 0, 44, 44, 44, 44, 44, 44,
413 44, 0, 0, 0, 0, 0, 0, 0, 0, 0,
414 0, 0, 0, 0, 0, 120, 120, 120, 0, 0,
415 0, 0, 120, 120, 0, 0, 0, 0, 113, 114,
416 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
417 119, 119, 119, 0, 0, 0, 0, 119, 119,
418};
419const short pcap_yycheck[] =
420 { 33,
421 0, 41, 0, 40, 47, 47, 40, 0, 54, 0,
422 87, 287, 53, 287, 33, 0, 307, 42, 287, 287,
423 0, 40, 47, 322, 323, 42, 43, 0, 45, 0,
424 47, 307, 78, 79, 75, 287, 78, 79, 307, 307,
425 38, 41, 0, 41, 42, 43, 287, 45, 41, 47,
426 41, 322, 323, 38, 287, 0, 41, 0, 43, 307,
427 45, 41, 60, 61, 62, 142, 307, 38, 41, 0,
428 41, 0, 43, 58, 45, 60, 61, 62, 0, 287,
429 38, 287, 0, 41, 259, 307, 261, 58, 263, 60,
430 61, 62, 287, 38, 322, 323, 41, 143, 41, 91,
431 58, 142, 60, 61, 62, 322, 323, 38, 93, 47,
432 41, 41, 41, 58, 38, 60, 61, 62, 41, 41,
433 322, 323, 93, 41, 287, 309, 124, 58, 287, 60,
434 61, 62, 287, 41, 258, 93, 60, 61, 62, 124,
435 58, 258, 60, 61, 62, 257, 188, 189, 93, 0,
436 257, 297, 287, 124, 38, 0, 93, 106, 42, 43,
437 2, 45, 93, 47, 42, 43, 124, 45, 151, 47,
438 151, 2, 194, -1, -1, 93, 60, 61, 62, 124,
439 -1, 38, -1, -1, -1, 42, 43, -1, 45, -1,
440 47, -1, -1, 124, -1, -1, -1, -1, -1, -1,
441 124, -1, -1, -1, -1, -1, 124, -1, -1, -1,
442 -1, -1, -1, -1, -1, -1, -1, -1, -1, 262,
443 -1, 33, 53, 54, -1, 259, -1, 261, 40, 263,
444 -1, -1, -1, 45, -1, -1, -1, -1, -1, -1,
445 124, -1, -1, -1, -1, -1, -1, 78, 79, -1,
446 287, -1, -1, 287, -1, -1, -1, 257, 258, 259,
447 260, 261, -1, 263, -1, -1, 266, 267, 287, -1,
448 -1, -1, -1, 307, 308, 309, 310, -1, -1, -1,
449 33, -1, 322, 323, -1, 285, 286, 40, 307, 308,
450 309, 310, 45, -1, 311, 312, 296, 297, 298, 299,
451 300, 301, 302, 33, -1, -1, 304, 305, 306, -1,
452 40, 142, 143, 311, 312, -1, -1, -1, -1, 304,
453 305, 306, 322, 323, 322, 323, 311, 312, -1, 322,
454 323, 322, 323, 304, 305, 306, -1, 322, 323, -1,
455 311, 312, 322, 323, -1, -1, 304, 305, 306, 322,
456 323, 322, 323, 311, 312, -1, -1, 40, -1, 304,
457 305, 306, 45, -1, 322, 323, 311, 312, -1, -1,
458 -1, -1, -1, 304, 305, 306, -1, 322, 323, 322,
459 323, -1, -1, 33, -1, -1, 304, 305, 306, -1,
460 40, 322, 323, 322, 323, -1, -1, -1, -1, -1,
461 322, 323, -1, -1, 322, 323, 257, 258, 259, 260,
462 261, -1, 263, -1, -1, 266, 267, -1, -1, -1,
463 304, 305, 306, -1, -1, -1, -1, 311, 312, -1,
464 -1, -1, -1, -1, 285, 286, -1, -1, 322, 323,
465 -1, -1, -1, -1, -1, 296, 297, 298, 299, 300,
466 301, 302, 264, 265, 311, 312, 268, 269, 270, 271,
467 272, 273, 274, 275, 276, 277, 278, 279, 280, 281,
468 282, 283, 284, -1, -1, 287, 288, 289, 290, 291,
469 292, 293, 294, 295, -1, 38, -1, -1, -1, 42,
470 43, 303, 45, -1, 47, 307, 308, 309, 310, -1,
471 -1, 313, 314, 315, 316, 317, 318, 319, 320, 321,
472 -1, 264, 265, -1, -1, 268, 269, 270, 271, 272,
473 273, 274, 275, 276, 277, 278, 279, 280, 281, 282,
474 283, 284, -1, -1, 287, 288, 289, 290, 291, 292,
475 293, 294, 295, -1, -1, -1, -1, -1, -1, -1,
476 303, -1, -1, -1, -1, -1, -1, 287, -1, -1,
477 313, 314, 315, 316, 317, 318, 319, 320, 321, -1,
478 -1, 124, -1, -1, -1, -1, -1, 307, 308, 309,
479 310, -1, -1, -1, -1, -1, 269, 270, 271, 272,
480 273, 274, 275, 276, 277, 278, 279, 280, 281, 282,
481 283, 284, -1, 38, 287, -1, -1, 42, 43, 259,
482 45, 261, 47, 263, -1, -1, -1, -1, -1, -1,
483 303, -1, -1, -1, -1, 60, 61, 62, -1, 2,
484 313, 314, -1, 316, 317, 318, 319, 287, -1, 38,
485 2, -1, -1, 42, 43, 38, 45, -1, 47, 42,
486 43, -1, 45, -1, 47, -1, -1, 307, 308, 309,
487 310, 60, 61, 62, 38, 58, 39, 40, 42, 43,
488 -1, 45, -1, 47, 47, -1, -1, -1, -1, -1,
489 53, 54, -1, -1, -1, -1, 60, 61, 62, 124,
490 42, 53, 54, -1, 39, 40, -1, -1, 71, -1,
491 93, -1, 47, -1, -1, 78, 79, -1, 53, -1,
492 -1, -1, -1, -1, 87, 88, 78, 79, -1, -1,
493 -1, -1, -1, 75, -1, 124, 71, -1, -1, -1,
494 75, 124, -1, 78, 79, -1, -1, -1, -1, -1,
495 -1, -1, 87, 88, -1, -1, -1, -1, -1, -1,
496 124, -1, -1, -1, -1, -1, -1, -1, 311, 312,
497 -1, 113, 114, 115, 116, 117, 118, 119, 120, 142,
498 143, -1, 124, 125, 126, -1, -1, -1, -1, -1,
499 142, 143, 257, 258, 259, 260, 261, -1, 263, -1,
500 -1, 266, 267, -1, -1, -1, -1, 142, 143, -1,
501 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
502 285, 286, -1, -1, -1, 188, 189, -1, -1, -1,
503 -1, 296, 297, 298, 299, 300, 301, 302, -1, -1,
504 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
505 -1, -1, -1, 188, 189, 257, 258, 259, 260, 261,
506 -1, 263, -1, -1, 266, 267, -1, -1, -1, -1,
507 -1, -1, -1, -1, -1, -1, -1, -1, -1, 304,
508 305, 306, -1, 285, 286, -1, 311, 312, -1, -1,
509 -1, -1, -1, -1, 296, 297, 298, 299, 300, 301,
510 302, -1, -1, -1, -1, -1, -1, -1, -1, -1,
511 -1, -1, -1, -1, -1, 304, 305, 306, -1, -1,
512 -1, -1, 311, 312, -1, -1, -1, -1, 311, 312,
513 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
514 304, 305, 306, -1, -1, -1, -1, 311, 312,
515};
516#define YYFINAL1 1
517#ifndef YYDEBUG0
518#define YYDEBUG0 0
519#endif
520#define YYMAXTOKEN324 324
521#if YYDEBUG0
522const char * const pcap_yyname[] =
523 {
524"end-of-file",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
525"'!'",0,0,0,0,"'&'",0,"'('","')'","'*'","'+'",0,"'-'",0,"'/'",0,0,0,0,0,0,0,0,0,
5260,"':'",0,"'<'","'='","'>'",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
5270,0,"'['",0,"']'",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
528"'|'",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
5290,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
5300,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
5310,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"DST","SRC","HOST","GATEWAY","NET","MASK","PORT",
532"LESS","GREATER","PROTO","PROTOCHAIN","BYTE","ARP","RARP","IP","TCP","UDP",
533"ICMP","IGMP","IGRP","PIM","ATALK","DECNET","LAT","SCA","MOPRC","MOPDL","STP",
534"TK_BROADCAST","TK_MULTICAST","NUM","INBOUND","OUTBOUND","PF_IFNAME","PF_RSET",
535"PF_RNR","PF_SRNR","PF_REASON","PF_ACTION","TYPE","SUBTYPE","DIR","ADDR1",
536"ADDR2","ADDR3","ADDR4","LINK","GEQ","LEQ","NEQ","ID","EID","HID","HID6","LSH",
537"RSH","LEN","RND","SAMPLE","IPV6","ICMPV6","AH","ESP","VLAN","MPLS","OR","AND",
538"UMINUS",
539};
540const char * const pcap_yyrule[] =
541 {"$accept : prog",
542"prog : null expr",
543"prog : null",
544"null :",
545"expr : term",
546"expr : expr and term",
547"expr : expr and id",
548"expr : expr or term",
549"expr : expr or id",
550"and : AND",
551"or : OR",
552"id : nid",
553"id : pnum",
554"id : paren pid ')'",
555"nid : ID",
556"nid : HID '/' NUM",
557"nid : HID MASK HID",
558"nid : HID",
559"nid : HID6 '/' NUM",
560"nid : HID6",
561"nid : EID",
562"nid : not id",
563"not : '!'",
564"paren : '('",
565"pid : nid",
566"pid : qid and id",
567"pid : qid or id",
568"qid : pnum",
569"qid : pid",
570"term : rterm",
571"term : not term",
572"head : pqual dqual aqual",
573"head : pqual dqual",
574"head : pqual aqual",
575"head : pqual PROTO",
576"head : pqual PROTOCHAIN",
577"head : pqual ndaqual",
578"rterm : head id",
579"rterm : paren expr ')'",
580"rterm : pname",
581"rterm : arth relop arth",
582"rterm : arth irelop arth",
583"rterm : other",
584"pqual : pname",
585"pqual :",
586"dqual : SRC",
587"dqual : DST",
588"dqual : SRC OR DST",
589"dqual : DST OR SRC",
590"dqual : SRC AND DST",
591"dqual : DST AND SRC",
592"dqual : ADDR1",
593"dqual : ADDR2",
594"dqual : ADDR3",
595"dqual : ADDR4",
596"aqual : HOST",
597"aqual : NET",
598"aqual : PORT",
599"ndaqual : GATEWAY",
600"pname : LINK",
601"pname : IP",
602"pname : ARP",
603"pname : RARP",
604"pname : TCP",
605"pname : UDP",
606"pname : ICMP",
607"pname : IGMP",
608"pname : IGRP",
609"pname : PIM",
610"pname : ATALK",
611"pname : DECNET",
612"pname : LAT",
613"pname : SCA",
614"pname : MOPDL",
615"pname : MOPRC",
616"pname : IPV6",
617"pname : ICMPV6",
618"pname : AH",
619"pname : ESP",
620"pname : STP",
621"other : pqual TK_BROADCAST",
622"other : pqual TK_MULTICAST",
623"other : LESS NUM",
624"other : GREATER NUM",
625"other : BYTE NUM byteop NUM",
626"other : INBOUND",
627"other : OUTBOUND",
628"other : VLAN pnum",
629"other : VLAN",
630"other : MPLS pnum",
631"other : MPLS",
632"other : pfvar",
633"other : pqual p80211",
634"other : SAMPLE NUM",
635"pfvar : PF_IFNAME ID",
636"pfvar : PF_RSET ID",
637"pfvar : PF_RNR NUM",
638"pfvar : PF_SRNR NUM",
639"pfvar : PF_REASON reason",
640"pfvar : PF_ACTION action",
641"reason : NUM",
642"reason : ID",
643"action : ID",
644"p80211 : TYPE type SUBTYPE subtype",
645"p80211 : TYPE type",
646"p80211 : SUBTYPE subtype",
647"p80211 : DIR dir",
648"type : NUM",
649"type : ID",
650"subtype : NUM",
651"subtype : ID",
652"dir : NUM",
653"dir : ID",
654"relop : '>'",
655"relop : GEQ",
656"relop : '='",
657"irelop : LEQ",
658"irelop : '<'",
659"irelop : NEQ",
660"arth : pnum",
661"arth : narth",
662"narth : pname '[' arth ']'",
663"narth : pname '[' arth ':' NUM ']'",
664"narth : arth '+' arth",
665"narth : arth '-' arth",
666"narth : arth '*' arth",
667"narth : arth '/' arth",
668"narth : arth '&' arth",
669"narth : arth '|' arth",
670"narth : arth LSH arth",
671"narth : arth RSH arth",
672"narth : '-' arth",
673"narth : paren narth ')'",
674"narth : LEN",
675"narth : RND",
676"byteop : '&'",
677"byteop : '|'",
678"byteop : '<'",
679"byteop : '>'",
680"byteop : '='",
681"pnum : NUM",
682"pnum : paren pnum ')'",
683};
684#endif
685#ifdef YYSTACKSIZE10000
686#undef YYMAXDEPTH10000
687#define YYMAXDEPTH10000 YYSTACKSIZE10000
688#else
689#ifdef YYMAXDEPTH10000
690#define YYSTACKSIZE10000 YYMAXDEPTH10000
691#else
692#define YYSTACKSIZE10000 10000
693#define YYMAXDEPTH10000 10000
694#endif
695#endif
696#define YYINITSTACKSIZE200 200
697/* LINTUSED */
698int yydebugpcap_yydebug;
699int yynerrspcap_yynerrs;
700int yyerrflagpcap_yyerrflag;
701int yycharpcap_yychar;
702short *yyssppcap_yyssp;
703YYSTYPE *yyvsppcap_yyvsp;
704YYSTYPE yyvalpcap_yyval;
705YYSTYPE yylvalpcap_yylval;
706short *yysspcap_yyss;
707short *yysslimpcap_yysslim;
708YYSTYPE *yyvspcap_yyvs;
709unsigned int yystacksizepcap_yystacksize;
710int yyparsepcap_yyparse(void);
711/* allocate initial stack or double stack size, up to YYMAXDEPTH */
712static int yygrowstack(void)
713{
714 unsigned int newsize;
715 long sslen;
716 short *newss;
717 YYSTYPE *newvs;
718
719 if ((newsize = yystacksizepcap_yystacksize) == 0)
22
Assuming the condition is false
23
Taking false branch
720 newsize = YYINITSTACKSIZE200;
721 else if (newsize >= YYMAXDEPTH10000)
24
Assuming 'newsize' is < YYMAXDEPTH
25
Taking false branch
722 return -1;
723 else if ((newsize *= 2) > YYMAXDEPTH10000)
26
Assuming the condition is false
27
Taking false branch
724 newsize = YYMAXDEPTH10000;
725 sslen = yyssppcap_yyssp - yysspcap_yyss;
726#ifdef SIZE_MAX
727#define YY_SIZE_MAX0xffffffffU SIZE_MAX
728#else
729#define YY_SIZE_MAX0xffffffffU 0xffffffffU
730#endif
731 if (newsize && YY_SIZE_MAX0xffffffffU / newsize < sizeof *newss)
28
Assuming 'newsize' is 0
732 goto bail;
733 newss = (short *)realloc(yysspcap_yyss, newsize * sizeof *newss);
734 if (newss == NULL((void *)0))
29
Assuming 'newss' is not equal to NULL
30
Taking false branch
735 goto bail;
736 yysspcap_yyss = newss;
737 yyssppcap_yyssp = newss + sslen;
738 if (newsize
30.1
'newsize' is 0
&& YY_SIZE_MAX0xffffffffU / newsize < sizeof *newvs)
739 goto bail;
740 newvs = (YYSTYPE *)realloc(yyvspcap_yyvs, newsize * sizeof *newvs);
741 if (newvs == NULL((void *)0))
31
Assuming 'newvs' is not equal to NULL
32
Taking false branch
742 goto bail;
743 yyvspcap_yyvs = newvs;
744 yyvsppcap_yyvsp = newvs + sslen;
745 yystacksizepcap_yystacksize = newsize;
746 yysslimpcap_yysslim = yysspcap_yyss + newsize - 1;
747 return 0;
748bail:
749 if (yysspcap_yyss)
750 free(yysspcap_yyss);
751 if (yyvspcap_yyvs)
752 free(yyvspcap_yyvs);
753 yysspcap_yyss = yyssppcap_yyssp = NULL((void *)0);
754 yyvspcap_yyvs = yyvsppcap_yyvsp = NULL((void *)0);
755 yystacksizepcap_yystacksize = 0;
756 return -1;
757}
758
759#define YYABORTgoto yyabort goto yyabort
760#define YYREJECTgoto yyabort goto yyabort
761#define YYACCEPTgoto yyaccept goto yyaccept
762#define YYERRORgoto yyerrlab goto yyerrlab
763int
764yyparsepcap_yyparse(void)
765{
766 int yym, yyn, yystate;
767#if YYDEBUG0
768 const char *yys;
769
770 if ((yys = getenv("YYDEBUG")))
771 {
772 yyn = *yys;
773 if (yyn >= '0' && yyn <= '9')
774 yydebugpcap_yydebug = yyn - '0';
775 }
776#endif /* YYDEBUG */
777
778 yynerrspcap_yynerrs = 0;
779 yyerrflagpcap_yyerrflag = 0;
780 yycharpcap_yychar = (-1);
781
782 if (yysspcap_yyss == NULL((void *)0) && yygrowstack()) goto yyoverflow;
1
Assuming 'pcap_yyss' is not equal to NULL
783 yyssppcap_yyssp = yysspcap_yyss;
784 yyvsppcap_yyvsp = yyvspcap_yyvs;
785 *yyssppcap_yyssp = yystate = 0;
786
787yyloop:
788 if ((yyn = yydefredpcap_yydefred[yystate]) != 0) goto yyreduce;
2
Taking true branch
3
Control jumps to line 895
11
Taking false branch
789 if (yycharpcap_yychar < 0)
12
Taking true branch
790 {
791 if ((yycharpcap_yychar = yylexpcap_yylex()) < 0) yycharpcap_yychar = 0;
13
Assuming the condition is false
14
Taking false branch
792#if YYDEBUG0
793 if (yydebugpcap_yydebug)
794 {
795 yys = 0;
796 if (yycharpcap_yychar <= YYMAXTOKEN324) yys = yynamepcap_yyname[yycharpcap_yychar];
797 if (!yys) yys = "illegal-symbol";
798 printf("%sdebug: state %d, reading %d (%s)\n",
799 YYPREFIX"pcap_yy", yystate, yycharpcap_yychar, yys);
800 }
801#endif
802 }
803 if ((yyn = yysindexpcap_yysindex[yystate]) && (yyn += yycharpcap_yychar) >= 0 &&
15
Assuming 'yyn' is not equal to 0
16
Assuming the condition is true
19
Taking true branch
804 yyn <= YYTABLESIZE939 && yycheckpcap_yycheck[yyn] == yycharpcap_yychar)
17
Assuming 'yyn' is <= YYTABLESIZE
18
Assuming the condition is true
805 {
806#if YYDEBUG0
807 if (yydebugpcap_yydebug)
808 printf("%sdebug: state %d, shifting to state %d\n",
809 YYPREFIX"pcap_yy", yystate, yytablepcap_yytable[yyn]);
810#endif
811 if (yyssppcap_yyssp >= yysslimpcap_yysslim && yygrowstack())
20
Assuming 'pcap_yyssp' is >= 'pcap_yysslim'
21
Calling 'yygrowstack'
33
Returning from 'yygrowstack'
34
Taking false branch
812 {
813 goto yyoverflow;
814 }
815 *++yyssppcap_yyssp = yystate = yytablepcap_yytable[yyn];
35
Use of zero-allocated memory
816 *++yyvsppcap_yyvsp = yylvalpcap_yylval;
817 yycharpcap_yychar = (-1);
818 if (yyerrflagpcap_yyerrflag > 0) --yyerrflagpcap_yyerrflag;
819 goto yyloop;
820 }
821 if ((yyn = yyrindexpcap_yyrindex[yystate]) && (yyn += yycharpcap_yychar) >= 0 &&
822 yyn <= YYTABLESIZE939 && yycheckpcap_yycheck[yyn] == yycharpcap_yychar)
823 {
824 yyn = yytablepcap_yytable[yyn];
825 goto yyreduce;
826 }
827 if (yyerrflagpcap_yyerrflag) goto yyinrecovery;
828#if defined(__GNUC__4)
829 goto yynewerror;
830#endif
831yynewerror:
832 yyerrorpcap_yyerror("syntax error");
833#if defined(__GNUC__4)
834 goto yyerrlab;
835#endif
836yyerrlab:
837 ++yynerrspcap_yynerrs;
838yyinrecovery:
839 if (yyerrflagpcap_yyerrflag < 3)
840 {
841 yyerrflagpcap_yyerrflag = 3;
842 for (;;)
843 {
844 if ((yyn = yysindexpcap_yysindex[*yyssppcap_yyssp]) && (yyn += YYERRCODE256) >= 0 &&
845 yyn <= YYTABLESIZE939 && yycheckpcap_yycheck[yyn] == YYERRCODE256)
846 {
847#if YYDEBUG0
848 if (yydebugpcap_yydebug)
849 printf("%sdebug: state %d, error recovery shifting\
850 to state %d\n", YYPREFIX"pcap_yy", *yyssppcap_yyssp, yytablepcap_yytable[yyn]);
851#endif
852 if (yyssppcap_yyssp >= yysslimpcap_yysslim && yygrowstack())
853 {
854 goto yyoverflow;
855 }
856 *++yyssppcap_yyssp = yystate = yytablepcap_yytable[yyn];
857 *++yyvsppcap_yyvsp = yylvalpcap_yylval;
858 goto yyloop;
859 }
860 else
861 {
862#if YYDEBUG0
863 if (yydebugpcap_yydebug)
864 printf("%sdebug: error recovery discarding state %d\n",
865 YYPREFIX"pcap_yy", *yyssppcap_yyssp);
866#endif
867 if (yyssppcap_yyssp <= yysspcap_yyss) goto yyabort;
868 --yyssppcap_yyssp;
869 --yyvsppcap_yyvsp;
870 }
871 }
872 }
873 else
874 {
875 if (yycharpcap_yychar == 0) goto yyabort;
876#if YYDEBUG0
877 if (yydebugpcap_yydebug)
878 {
879 yys = 0;
880 if (yycharpcap_yychar <= YYMAXTOKEN324) yys = yynamepcap_yyname[yycharpcap_yychar];
881 if (!yys) yys = "illegal-symbol";
882 printf("%sdebug: state %d, error recovery discards token %d (%s)\n",
883 YYPREFIX"pcap_yy", yystate, yycharpcap_yychar, yys);
884 }
885#endif
886 yycharpcap_yychar = (-1);
887 goto yyloop;
888 }
889yyreduce:
890#if YYDEBUG0
891 if (yydebugpcap_yydebug)
892 printf("%sdebug: state %d, reducing by rule %d (%s)\n",
893 YYPREFIX"pcap_yy", yystate, yyn, yyrulepcap_yyrule[yyn]);
894#endif
895 yym = yylenpcap_yylen[yyn];
896 if (yym
3.1
'yym' is 0
)
4
Taking false branch
897 yyvalpcap_yyval = yyvsppcap_yyvsp[1-yym];
898 else
899 memset(&yyvalpcap_yyval, 0, sizeof yyvalpcap_yyval);
900 switch (yyn)
5
Control jumps to 'case 3:' at line 908
901 {
902case 1:
903#line 132 "/usr/src/lib/libpcap/grammar.y"
904{
905 finish_parse(yyvsppcap_yyvsp[0].blk.b);
906}
907break;
908case 3:
909#line 137 "/usr/src/lib/libpcap/grammar.y"
910{ yyvalpcap_yyval.blk.q = qerr; }
911break;
6
Execution continues on line 1537
912case 5:
913#line 140 "/usr/src/lib/libpcap/grammar.y"
914{ gen_and(yyvsppcap_yyvsp[-2].blk.b, yyvsppcap_yyvsp[0].blk.b); yyvalpcap_yyval.blk = yyvsppcap_yyvsp[0].blk; }
915break;
916case 6:
917#line 141 "/usr/src/lib/libpcap/grammar.y"
918{ gen_and(yyvsppcap_yyvsp[-2].blk.b, yyvsppcap_yyvsp[0].blk.b); yyvalpcap_yyval.blk = yyvsppcap_yyvsp[0].blk; }
919break;
920case 7:
921#line 142 "/usr/src/lib/libpcap/grammar.y"
922{ gen_or(yyvsppcap_yyvsp[-2].blk.b, yyvsppcap_yyvsp[0].blk.b); yyvalpcap_yyval.blk = yyvsppcap_yyvsp[0].blk; }
923break;
924case 8:
925#line 143 "/usr/src/lib/libpcap/grammar.y"
926{ gen_or(yyvsppcap_yyvsp[-2].blk.b, yyvsppcap_yyvsp[0].blk.b); yyvalpcap_yyval.blk = yyvsppcap_yyvsp[0].blk; }
927break;
928case 9:
929#line 145 "/usr/src/lib/libpcap/grammar.y"
930{ yyvalpcap_yyval.blk = yyvsppcap_yyvsp[-1].blk; }
931break;
932case 10:
933#line 147 "/usr/src/lib/libpcap/grammar.y"
934{ yyvalpcap_yyval.blk = yyvsppcap_yyvsp[-1].blk; }
935break;
936case 12:
937#line 150 "/usr/src/lib/libpcap/grammar.y"
938{ yyvalpcap_yyval.blk.b = gen_ncode(NULL((void *)0), (bpf_u_int32)yyvsppcap_yyvsp[0].i,
939 yyvalpcap_yyval.blk.q = yyvsppcap_yyvsp[-1].blk.q); }
940break;
941case 13:
942#line 152 "/usr/src/lib/libpcap/grammar.y"
943{ yyvalpcap_yyval.blk = yyvsppcap_yyvsp[-1].blk; }
944break;
945case 14:
946#line 154 "/usr/src/lib/libpcap/grammar.y"
947{ yyvalpcap_yyval.blk.b = gen_scode(yyvsppcap_yyvsp[0].s, yyvalpcap_yyval.blk.q = yyvsppcap_yyvsp[-1].blk.q); }
948break;
949case 15:
950#line 155 "/usr/src/lib/libpcap/grammar.y"
951{ yyvalpcap_yyval.blk.b = gen_mcode(yyvsppcap_yyvsp[-2].s, NULL((void *)0), yyvsppcap_yyvsp[0].i,
952 yyvalpcap_yyval.blk.q = yyvsppcap_yyvsp[-3].blk.q); }
953break;
954case 16:
955#line 157 "/usr/src/lib/libpcap/grammar.y"
956{ yyvalpcap_yyval.blk.b = gen_mcode(yyvsppcap_yyvsp[-2].s, yyvsppcap_yyvsp[0].s, 0,
957 yyvalpcap_yyval.blk.q = yyvsppcap_yyvsp[-3].blk.q); }
958break;
959case 17:
960#line 159 "/usr/src/lib/libpcap/grammar.y"
961{
962 /* Decide how to parse HID based on proto */
963 yyvalpcap_yyval.blk.q = yyvsppcap_yyvsp[-1].blk.q;
964 switch (yyvalpcap_yyval.blk.q.proto) {
965 case Q_DECNET11:
966 yyvalpcap_yyval.blk.b = gen_ncode(yyvsppcap_yyvsp[0].s, 0, yyvalpcap_yyval.blk.q);
967 break;
968 default:
969 yyvalpcap_yyval.blk.b = gen_ncode(yyvsppcap_yyvsp[0].s, 0, yyvalpcap_yyval.blk.q);
970 break;
971 }
972 }
973break;
974case 18:
975#line 171 "/usr/src/lib/libpcap/grammar.y"
976{
977#ifdef INET61
978 yyvalpcap_yyval.blk.b = gen_mcode6(yyvsppcap_yyvsp[-2].s, NULL((void *)0), yyvsppcap_yyvsp[0].i,
979 yyvalpcap_yyval.blk.q = yyvsppcap_yyvsp[-3].blk.q);
980#else
981 bpf_error("'ip6addr/prefixlen' not supported "
982 "in this configuration");
983#endif /*INET6*/
984 }
985break;
986case 19:
987#line 180 "/usr/src/lib/libpcap/grammar.y"
988{
989#ifdef INET61
990 yyvalpcap_yyval.blk.b = gen_mcode6(yyvsppcap_yyvsp[0].s, 0, 128,
991 yyvalpcap_yyval.blk.q = yyvsppcap_yyvsp[-1].blk.q);
992#else
993 bpf_error("'ip6addr' not supported "
994 "in this configuration");
995#endif /*INET6*/
996 }
997break;
998case 20:
999#line 189 "/usr/src/lib/libpcap/grammar.y"
1000{ yyvalpcap_yyval.blk.b = gen_ecode(yyvsppcap_yyvsp[0].e, yyvalpcap_yyval.blk.q = yyvsppcap_yyvsp[-1].blk.q); }
1001break;
1002case 21:
1003#line 190 "/usr/src/lib/libpcap/grammar.y"
1004{ gen_not(yyvsppcap_yyvsp[0].blk.b); yyvalpcap_yyval.blk = yyvsppcap_yyvsp[0].blk; }
1005break;
1006case 22:
1007#line 192 "/usr/src/lib/libpcap/grammar.y"
1008{ yyvalpcap_yyval.blk = yyvsppcap_yyvsp[-1].blk; }
1009break;
1010case 23:
1011#line 194 "/usr/src/lib/libpcap/grammar.y"
1012{ yyvalpcap_yyval.blk = yyvsppcap_yyvsp[-1].blk; }
1013break;
1014case 25:
1015#line 197 "/usr/src/lib/libpcap/grammar.y"
1016{ gen_and(yyvsppcap_yyvsp[-2].blk.b, yyvsppcap_yyvsp[0].blk.b); yyvalpcap_yyval.blk = yyvsppcap_yyvsp[0].blk; }
1017break;
1018case 26:
1019#line 198 "/usr/src/lib/libpcap/grammar.y"
1020{ gen_or(yyvsppcap_yyvsp[-2].blk.b, yyvsppcap_yyvsp[0].blk.b); yyvalpcap_yyval.blk = yyvsppcap_yyvsp[0].blk; }
1021break;
1022case 27:
1023#line 200 "/usr/src/lib/libpcap/grammar.y"
1024{ yyvalpcap_yyval.blk.b = gen_ncode(NULL((void *)0), (bpf_u_int32)yyvsppcap_yyvsp[0].i,
1025 yyvalpcap_yyval.blk.q = yyvsppcap_yyvsp[-1].blk.q); }
1026break;
1027case 30:
1028#line 205 "/usr/src/lib/libpcap/grammar.y"
1029{ gen_not(yyvsppcap_yyvsp[0].blk.b); yyvalpcap_yyval.blk = yyvsppcap_yyvsp[0].blk; }
1030break;
1031case 31:
1032#line 207 "/usr/src/lib/libpcap/grammar.y"
1033{ QSET(yyval.blk.q, yyvsp[-2].i, yyvsp[-1].i, yyvsp[0].i)(pcap_yyval.blk.q).proto = (pcap_yyvsp[-2].i), (pcap_yyval.blk
.q).dir = (pcap_yyvsp[-1].i), (pcap_yyval.blk.q).addr = (pcap_yyvsp
[0].i)
; }
1034break;
1035case 32:
1036#line 208 "/usr/src/lib/libpcap/grammar.y"
1037{ QSET(yyval.blk.q, yyvsp[-1].i, yyvsp[0].i, Q_DEFAULT)(pcap_yyval.blk.q).proto = (pcap_yyvsp[-1].i), (pcap_yyval.blk
.q).dir = (pcap_yyvsp[0].i), (pcap_yyval.blk.q).addr = (0)
; }
1038break;
1039case 33:
1040#line 209 "/usr/src/lib/libpcap/grammar.y"
1041{ QSET(yyval.blk.q, yyvsp[-1].i, Q_DEFAULT, yyvsp[0].i)(pcap_yyval.blk.q).proto = (pcap_yyvsp[-1].i), (pcap_yyval.blk
.q).dir = (0), (pcap_yyval.blk.q).addr = (pcap_yyvsp[0].i)
; }
1042break;
1043case 34:
1044#line 210 "/usr/src/lib/libpcap/grammar.y"
1045{ QSET(yyval.blk.q, yyvsp[-1].i, Q_DEFAULT, Q_PROTO)(pcap_yyval.blk.q).proto = (pcap_yyvsp[-1].i), (pcap_yyval.blk
.q).dir = (0), (pcap_yyval.blk.q).addr = (5)
; }
1046break;
1047case 35:
1048#line 211 "/usr/src/lib/libpcap/grammar.y"
1049{ QSET(yyval.blk.q, yyvsp[-1].i, Q_DEFAULT, Q_PROTOCHAIN)(pcap_yyval.blk.q).proto = (pcap_yyvsp[-1].i), (pcap_yyval.blk
.q).dir = (0), (pcap_yyval.blk.q).addr = (6)
; }
1050break;
1051case 36:
1052#line 212 "/usr/src/lib/libpcap/grammar.y"
1053{ QSET(yyval.blk.q, yyvsp[-1].i, Q_DEFAULT, yyvsp[0].i)(pcap_yyval.blk.q).proto = (pcap_yyvsp[-1].i), (pcap_yyval.blk
.q).dir = (0), (pcap_yyval.blk.q).addr = (pcap_yyvsp[0].i)
; }
1054break;
1055case 37:
1056#line 214 "/usr/src/lib/libpcap/grammar.y"
1057{ yyvalpcap_yyval.blk = yyvsppcap_yyvsp[0].blk; }
1058break;
1059case 38:
1060#line 215 "/usr/src/lib/libpcap/grammar.y"
1061{ yyvalpcap_yyval.blk.b = yyvsppcap_yyvsp[-1].blk.b; yyvalpcap_yyval.blk.q = yyvsppcap_yyvsp[-2].blk.q; }
1062break;
1063case 39:
1064#line 216 "/usr/src/lib/libpcap/grammar.y"
1065{ yyvalpcap_yyval.blk.b = gen_proto_abbrev(yyvsppcap_yyvsp[0].i); yyvalpcap_yyval.blk.q = qerr; }
1066break;
1067case 40:
1068#line 217 "/usr/src/lib/libpcap/grammar.y"
1069{ yyvalpcap_yyval.blk.b = gen_relation(yyvsppcap_yyvsp[-1].i, yyvsppcap_yyvsp[-2].a, yyvsppcap_yyvsp[0].a, 0);
1070 yyvalpcap_yyval.blk.q = qerr; }
1071break;
1072case 41:
1073#line 219 "/usr/src/lib/libpcap/grammar.y"
1074{ yyvalpcap_yyval.blk.b = gen_relation(yyvsppcap_yyvsp[-1].i, yyvsppcap_yyvsp[-2].a, yyvsppcap_yyvsp[0].a, 1);
1075 yyvalpcap_yyval.blk.q = qerr; }
1076break;
1077case 42:
1078#line 221 "/usr/src/lib/libpcap/grammar.y"
1079{ yyvalpcap_yyval.blk.b = yyvsppcap_yyvsp[0].rblk; yyvalpcap_yyval.blk.q = qerr; }
1080break;
1081case 44:
1082#line 225 "/usr/src/lib/libpcap/grammar.y"
1083{ yyvalpcap_yyval.i = Q_DEFAULT0; }
1084break;
1085case 45:
1086#line 228 "/usr/src/lib/libpcap/grammar.y"
1087{ yyvalpcap_yyval.i = Q_SRC1; }
1088break;
1089case 46:
1090#line 229 "/usr/src/lib/libpcap/grammar.y"
1091{ yyvalpcap_yyval.i = Q_DST2; }
1092break;
1093case 47:
1094#line 230 "/usr/src/lib/libpcap/grammar.y"
1095{ yyvalpcap_yyval.i = Q_OR3; }
1096break;
1097case 48:
1098#line 231 "/usr/src/lib/libpcap/grammar.y"
1099{ yyvalpcap_yyval.i = Q_OR3; }
1100break;
1101case 49:
1102#line 232 "/usr/src/lib/libpcap/grammar.y"
1103{ yyvalpcap_yyval.i = Q_AND4; }
1104break;
1105case 50:
1106#line 233 "/usr/src/lib/libpcap/grammar.y"
1107{ yyvalpcap_yyval.i = Q_AND4; }
1108break;
1109case 51:
1110#line 234 "/usr/src/lib/libpcap/grammar.y"
1111{ yyvalpcap_yyval.i = Q_ADDR15; }
1112break;
1113case 52:
1114#line 235 "/usr/src/lib/libpcap/grammar.y"
1115{ yyvalpcap_yyval.i = Q_ADDR26; }
1116break;
1117case 53:
1118#line 236 "/usr/src/lib/libpcap/grammar.y"
1119{ yyvalpcap_yyval.i = Q_ADDR37; }
1120break;
1121case 54:
1122#line 237 "/usr/src/lib/libpcap/grammar.y"
1123{ yyvalpcap_yyval.i = Q_ADDR48; }
1124break;
1125case 55:
1126#line 241 "/usr/src/lib/libpcap/grammar.y"
1127{ yyvalpcap_yyval.i = Q_HOST1; }
1128break;
1129case 56:
1130#line 242 "/usr/src/lib/libpcap/grammar.y"
1131{ yyvalpcap_yyval.i = Q_NET2; }
1132break;
1133case 57:
1134#line 243 "/usr/src/lib/libpcap/grammar.y"
1135{ yyvalpcap_yyval.i = Q_PORT3; }
1136break;
1137case 58:
1138#line 246 "/usr/src/lib/libpcap/grammar.y"
1139{ yyvalpcap_yyval.i = Q_GATEWAY4; }
1140break;
1141case 59:
1142#line 248 "/usr/src/lib/libpcap/grammar.y"
1143{ yyvalpcap_yyval.i = Q_LINK1; }
1144break;
1145case 60:
1146#line 249 "/usr/src/lib/libpcap/grammar.y"
1147{ yyvalpcap_yyval.i = Q_IP2; }
1148break;
1149case 61:
1150#line 250 "/usr/src/lib/libpcap/grammar.y"
1151{ yyvalpcap_yyval.i = Q_ARP3; }
1152break;
1153case 62:
1154#line 251 "/usr/src/lib/libpcap/grammar.y"
1155{ yyvalpcap_yyval.i = Q_RARP4; }
1156break;
1157case 63:
1158#line 252 "/usr/src/lib/libpcap/grammar.y"
1159{ yyvalpcap_yyval.i = Q_TCP5; }
1160break;
1161case 64:
1162#line 253 "/usr/src/lib/libpcap/grammar.y"
1163{ yyvalpcap_yyval.i = Q_UDP6; }
1164break;
1165case 65:
1166#line 254 "/usr/src/lib/libpcap/grammar.y"
1167{ yyvalpcap_yyval.i = Q_ICMP7; }
1168break;
1169case 66:
1170#line 255 "/usr/src/lib/libpcap/grammar.y"
1171{ yyvalpcap_yyval.i = Q_IGMP8; }
1172break;
1173case 67:
1174#line 256 "/usr/src/lib/libpcap/grammar.y"
1175{ yyvalpcap_yyval.i = Q_IGRP9; }
1176break;
1177case 68:
1178#line 257 "/usr/src/lib/libpcap/grammar.y"
1179{ yyvalpcap_yyval.i = Q_PIM20; }
1180break;
1181case 69:
1182#line 258 "/usr/src/lib/libpcap/grammar.y"
1183{ yyvalpcap_yyval.i = Q_ATALK10; }
1184break;
1185case 70:
1186#line 259 "/usr/src/lib/libpcap/grammar.y"
1187{ yyvalpcap_yyval.i = Q_DECNET11; }
1188break;
1189case 71:
1190#line 260 "/usr/src/lib/libpcap/grammar.y"
1191{ yyvalpcap_yyval.i = Q_LAT12; }
1192break;
1193case 72:
1194#line 261 "/usr/src/lib/libpcap/grammar.y"
1195{ yyvalpcap_yyval.i = Q_SCA13; }
1196break;
1197case 73:
1198#line 262 "/usr/src/lib/libpcap/grammar.y"
1199{ yyvalpcap_yyval.i = Q_MOPDL15; }
1200break;
1201case 74:
1202#line 263 "/usr/src/lib/libpcap/grammar.y"
1203{ yyvalpcap_yyval.i = Q_MOPRC14; }
1204break;
1205case 75:
1206#line 264 "/usr/src/lib/libpcap/grammar.y"
1207{ yyvalpcap_yyval.i = Q_IPV616; }
1208break;
1209case 76:
1210#line 265 "/usr/src/lib/libpcap/grammar.y"
1211{ yyvalpcap_yyval.i = Q_ICMPV617; }
1212break;
1213case 77:
1214#line 266 "/usr/src/lib/libpcap/grammar.y"
1215{ yyvalpcap_yyval.i = Q_AH18; }
1216break;
1217case 78:
1218#line 267 "/usr/src/lib/libpcap/grammar.y"
1219{ yyvalpcap_yyval.i = Q_ESP19; }
1220break;
1221case 79:
1222#line 268 "/usr/src/lib/libpcap/grammar.y"
1223{ yyvalpcap_yyval.i = Q_STP21; }
1224break;
1225case 80:
1226#line 270 "/usr/src/lib/libpcap/grammar.y"
1227{ yyvalpcap_yyval.rblk = gen_broadcast(yyvsppcap_yyvsp[-1].i); }
1228break;
1229case 81:
1230#line 271 "/usr/src/lib/libpcap/grammar.y"
1231{ yyvalpcap_yyval.rblk = gen_multicast(yyvsppcap_yyvsp[-1].i); }
1232break;
1233case 82:
1234#line 272 "/usr/src/lib/libpcap/grammar.y"
1235{ yyvalpcap_yyval.rblk = gen_less(yyvsppcap_yyvsp[0].i); }
1236break;
1237case 83:
1238#line 273 "/usr/src/lib/libpcap/grammar.y"
1239{ yyvalpcap_yyval.rblk = gen_greater(yyvsppcap_yyvsp[0].i); }
1240break;
1241case 84:
1242#line 274 "/usr/src/lib/libpcap/grammar.y"
1243{ yyvalpcap_yyval.rblk = gen_byteop(yyvsppcap_yyvsp[-1].i, yyvsppcap_yyvsp[-2].i, yyvsppcap_yyvsp[0].i); }
1244break;
1245case 85:
1246#line 275 "/usr/src/lib/libpcap/grammar.y"
1247{ yyvalpcap_yyval.rblk = gen_inbound(0); }
1248break;
1249case 86:
1250#line 276 "/usr/src/lib/libpcap/grammar.y"
1251{ yyvalpcap_yyval.rblk = gen_inbound(1); }
1252break;
1253case 87:
1254#line 277 "/usr/src/lib/libpcap/grammar.y"
1255{ yyvalpcap_yyval.rblk = gen_vlan(yyvsppcap_yyvsp[0].i); }
1256break;
1257case 88:
1258#line 278 "/usr/src/lib/libpcap/grammar.y"
1259{ yyvalpcap_yyval.rblk = gen_vlan(-1); }
1260break;
1261case 89:
1262#line 279 "/usr/src/lib/libpcap/grammar.y"
1263{ yyvalpcap_yyval.rblk = gen_mpls(yyvsppcap_yyvsp[0].i); }
1264break;
1265case 90:
1266#line 280 "/usr/src/lib/libpcap/grammar.y"
1267{ yyvalpcap_yyval.rblk = gen_mpls(-1); }
1268break;
1269case 91:
1270#line 281 "/usr/src/lib/libpcap/grammar.y"
1271{ yyvalpcap_yyval.rblk = yyvsppcap_yyvsp[0].rblk; }
1272break;
1273case 92:
1274#line 282 "/usr/src/lib/libpcap/grammar.y"
1275{ yyvalpcap_yyval.rblk = yyvsppcap_yyvsp[0].rblk; }
1276break;
1277case 93:
1278#line 283 "/usr/src/lib/libpcap/grammar.y"
1279{ yyvalpcap_yyval.rblk = gen_sample(yyvsppcap_yyvsp[0].i); }
1280break;
1281case 94:
1282#line 286 "/usr/src/lib/libpcap/grammar.y"
1283{ yyvalpcap_yyval.rblk = gen_pf_ifname(yyvsppcap_yyvsp[0].s); }
1284break;
1285case 95:
1286#line 287 "/usr/src/lib/libpcap/grammar.y"
1287{ yyvalpcap_yyval.rblk = gen_pf_ruleset(yyvsppcap_yyvsp[0].s); }
1288break;
1289case 96:
1290#line 288 "/usr/src/lib/libpcap/grammar.y"
1291{ yyvalpcap_yyval.rblk = gen_pf_rnr(yyvsppcap_yyvsp[0].i); }
1292break;
1293case 97:
1294#line 289 "/usr/src/lib/libpcap/grammar.y"
1295{ yyvalpcap_yyval.rblk = gen_pf_srnr(yyvsppcap_yyvsp[0].i); }
1296break;
1297case 98:
1298#line 290 "/usr/src/lib/libpcap/grammar.y"
1299{ yyvalpcap_yyval.rblk = gen_pf_reason(yyvsppcap_yyvsp[0].i); }
1300break;
1301case 99:
1302#line 291 "/usr/src/lib/libpcap/grammar.y"
1303{ yyvalpcap_yyval.rblk = gen_pf_action(yyvsppcap_yyvsp[0].i); }
1304break;
1305case 100:
1306#line 294 "/usr/src/lib/libpcap/grammar.y"
1307{ yyvalpcap_yyval.i = yyvsppcap_yyvsp[0].i; }
1308break;
1309case 101:
1310#line 295 "/usr/src/lib/libpcap/grammar.y"
1311{ const char *reasons[] = PFRES_NAMES{ "match", "bad-offset", "fragment", "short", "normalize", "memory"
, "bad-timestamp", "congestion", "ip-option", "proto-cksum", "state-mismatch"
, "state-insert", "state-limit", "src-limit", "synproxy", "translate"
, "no-route", ((void *)0) }
;
1312 int i;
1313 for (i = 0; reasons[i]; i++) {
1314 if (strcasecmp(yyvsppcap_yyvsp[0].s, reasons[i]) == 0) {
1315 yyvalpcap_yyval.i = i;
1316 break;
1317 }
1318 }
1319 if (reasons[i] == NULL((void *)0))
1320 bpf_error("unknown PF reason");
1321 }
1322break;
1323case 102:
1324#line 308 "/usr/src/lib/libpcap/grammar.y"
1325{ if (strcasecmp(yyvsppcap_yyvsp[0].s, "pass") == 0 ||
1326 strcasecmp(yyvsppcap_yyvsp[0].s, "accept") == 0)
1327 yyvalpcap_yyval.i = PF_PASS;
1328 else if (strcasecmp(yyvsppcap_yyvsp[0].s, "drop") == 0 ||
1329 strcasecmp(yyvsppcap_yyvsp[0].s, "block") == 0)
1330 yyvalpcap_yyval.i = PF_DROP;
1331 else if (strcasecmp(yyvsppcap_yyvsp[0].s, "match") == 0)
1332 yyvalpcap_yyval.i = PF_MATCH;
1333 else if (strcasecmp(yyvsppcap_yyvsp[0].s, "rdr") == 0)
1334 yyvalpcap_yyval.i = PF_RDR;
1335 else if (strcasecmp(yyvsppcap_yyvsp[0].s, "nat") == 0)
1336 yyvalpcap_yyval.i = PF_NAT;
1337 else if (strcasecmp(yyvsppcap_yyvsp[0].s, "binat") == 0)
1338 yyvalpcap_yyval.i = PF_BINAT;
1339 else if (strcasecmp(yyvsppcap_yyvsp[0].s, "scrub") == 0)
1340 yyvalpcap_yyval.i = PF_SCRUB;
1341 else
1342 bpf_error("unknown PF action");
1343 }
1344break;
1345case 103:
1346#line 330 "/usr/src/lib/libpcap/grammar.y"
1347{ yyvalpcap_yyval.rblk = gen_p80211_type(yyvsppcap_yyvsp[-2].i | yyvsppcap_yyvsp[0].i,
1348 IEEE80211_FC0_TYPE_MASK0x0c |
1349 IEEE80211_FC0_SUBTYPE_MASK0xf0);
1350 }
1351break;
1352case 104:
1353#line 334 "/usr/src/lib/libpcap/grammar.y"
1354{ yyvalpcap_yyval.rblk = gen_p80211_type(yyvsppcap_yyvsp[0].i,
1355 IEEE80211_FC0_TYPE_MASK0x0c); }
1356break;
1357case 105:
1358#line 336 "/usr/src/lib/libpcap/grammar.y"
1359{ yyvalpcap_yyval.rblk = gen_p80211_type(yyvsppcap_yyvsp[0].i,
1360 IEEE80211_FC0_SUBTYPE_MASK0xf0); }
1361break;
1362case 106:
1363#line 338 "/usr/src/lib/libpcap/grammar.y"
1364{ yyvalpcap_yyval.rblk = gen_p80211_fcdir(yyvsppcap_yyvsp[0].i); }
1365break;
1366case 108:
1367#line 342 "/usr/src/lib/libpcap/grammar.y"
1368{ if (strcasecmp(yyvsppcap_yyvsp[0].s, "data") == 0)
1369 yyvalpcap_yyval.i = IEEE80211_FC0_TYPE_DATA0x08;
1370 else if (strcasecmp(yyvsppcap_yyvsp[0].s, "mgt") == 0 ||
1371 strcasecmp(yyvsppcap_yyvsp[0].s, "management") == 0)
1372 yyvalpcap_yyval.i = IEEE80211_FC0_TYPE_MGT0x00;
1373 else if (strcasecmp(yyvsppcap_yyvsp[0].s, "ctl") == 0 ||
1374 strcasecmp(yyvsppcap_yyvsp[0].s, "control") == 0)
1375 yyvalpcap_yyval.i = IEEE80211_FC0_TYPE_CTL0x04;
1376 else
1377 bpf_error("unknown 802.11 type");
1378 }
1379break;
1380case 110:
1381#line 356 "/usr/src/lib/libpcap/grammar.y"
1382{ if (strcasecmp(yyvsppcap_yyvsp[0].s, "assocreq") == 0)
1383 yyvalpcap_yyval.i = IEEE80211_FC0_SUBTYPE_ASSOC_REQ0x00;
1384 else if (strcasecmp(yyvsppcap_yyvsp[0].s, "assocresp") == 0)
1385 yyvalpcap_yyval.i = IEEE80211_FC0_SUBTYPE_ASSOC_RESP0x10;
1386 else if (strcasecmp(yyvsppcap_yyvsp[0].s, "reassocreq") == 0)
1387 yyvalpcap_yyval.i = IEEE80211_FC0_SUBTYPE_REASSOC_REQ0x20;
1388 else if (strcasecmp(yyvsppcap_yyvsp[0].s, "reassocresp") == 0)
1389 yyvalpcap_yyval.i = IEEE80211_FC0_SUBTYPE_REASSOC_RESP0x30;
1390 else if (strcasecmp(yyvsppcap_yyvsp[0].s, "probereq") == 0)
1391 yyvalpcap_yyval.i = IEEE80211_FC0_SUBTYPE_PROBE_REQ0x40;
1392 else if (strcasecmp(yyvsppcap_yyvsp[0].s, "proberesp") == 0)
1393 yyvalpcap_yyval.i = IEEE80211_FC0_SUBTYPE_PROBE_RESP0x50;
1394 else if (strcasecmp(yyvsppcap_yyvsp[0].s, "beacon") == 0)
1395 yyvalpcap_yyval.i = IEEE80211_FC0_SUBTYPE_BEACON0x80;
1396 else if (strcasecmp(yyvsppcap_yyvsp[0].s, "atim") == 0)
1397 yyvalpcap_yyval.i = IEEE80211_FC0_SUBTYPE_ATIM0x90;
1398 else if (strcasecmp(yyvsppcap_yyvsp[0].s, "disassoc") == 0 ||
1399 strcasecmp(yyvsppcap_yyvsp[0].s, "disassociation") == 0)
1400 yyvalpcap_yyval.i = IEEE80211_FC0_SUBTYPE_DISASSOC0xa0;
1401 else if (strcasecmp(yyvsppcap_yyvsp[0].s, "auth") == 0 ||
1402 strcasecmp(yyvsppcap_yyvsp[0].s, "authentication") == 0)
1403 yyvalpcap_yyval.i = IEEE80211_FC0_SUBTYPE_AUTH0xb0;
1404 else if (strcasecmp(yyvsppcap_yyvsp[0].s, "deauth") == 0 ||
1405 strcasecmp(yyvsppcap_yyvsp[0].s, "deauthentication") == 0)
1406 yyvalpcap_yyval.i = IEEE80211_FC0_SUBTYPE_DEAUTH0xc0;
1407 else if (strcasecmp(yyvsppcap_yyvsp[0].s, "data") == 0)
1408 yyvalpcap_yyval.i = IEEE80211_FC0_SUBTYPE_DATA0x00;
1409 else
1410 bpf_error("unknown 802.11 subtype");
1411 }
1412break;
1413case 112:
1414#line 389 "/usr/src/lib/libpcap/grammar.y"
1415{ if (strcasecmp(yyvsppcap_yyvsp[0].s, "nods") == 0)
1416 yyvalpcap_yyval.i = IEEE80211_FC1_DIR_NODS0x00;
1417 else if (strcasecmp(yyvsppcap_yyvsp[0].s, "tods") == 0)
1418 yyvalpcap_yyval.i = IEEE80211_FC1_DIR_TODS0x01;
1419 else if (strcasecmp(yyvsppcap_yyvsp[0].s, "fromds") == 0)
1420 yyvalpcap_yyval.i = IEEE80211_FC1_DIR_FROMDS0x02;
1421 else if (strcasecmp(yyvsppcap_yyvsp[0].s, "dstods") == 0)
1422 yyvalpcap_yyval.i = IEEE80211_FC1_DIR_DSTODS0x03;
1423 else
1424 bpf_error("unknown 802.11 direction");
1425 }
1426break;
1427case 113:
1428#line 402 "/usr/src/lib/libpcap/grammar.y"
1429{ yyvalpcap_yyval.i = BPF_JGT0x20; }
1430break;
1431case 114:
1432#line 403 "/usr/src/lib/libpcap/grammar.y"
1433{ yyvalpcap_yyval.i = BPF_JGE0x30; }
1434break;
1435case 115:
1436#line 404 "/usr/src/lib/libpcap/grammar.y"
1437{ yyvalpcap_yyval.i = BPF_JEQ0x10; }
1438break;
1439case 116:
1440#line 406 "/usr/src/lib/libpcap/grammar.y"
1441{ yyvalpcap_yyval.i = BPF_JGT0x20; }
1442break;
1443case 117:
1444#line 407 "/usr/src/lib/libpcap/grammar.y"
1445{ yyvalpcap_yyval.i = BPF_JGE0x30; }
1446break;
1447case 118:
1448#line 408 "/usr/src/lib/libpcap/grammar.y"
1449{ yyvalpcap_yyval.i = BPF_JEQ0x10; }
1450break;
1451case 119:
1452#line 410 "/usr/src/lib/libpcap/grammar.y"
1453{ yyvalpcap_yyval.a = gen_loadi(yyvsppcap_yyvsp[0].i); }
1454break;
1455case 121:
1456#line 413 "/usr/src/lib/libpcap/grammar.y"
1457{ yyvalpcap_yyval.a = gen_load(yyvsppcap_yyvsp[-3].i, yyvsppcap_yyvsp[-1].a, 1); }
1458break;
1459case 122:
1460#line 414 "/usr/src/lib/libpcap/grammar.y"
1461{ yyvalpcap_yyval.a = gen_load(yyvsppcap_yyvsp[-5].i, yyvsppcap_yyvsp[-3].a, yyvsppcap_yyvsp[-1].i); }
1462break;
1463case 123:
1464#line 415 "/usr/src/lib/libpcap/grammar.y"
1465{ yyvalpcap_yyval.a = gen_arth(BPF_ADD0x00, yyvsppcap_yyvsp[-2].a, yyvsppcap_yyvsp[0].a); }
1466break;
1467case 124:
1468#line 416 "/usr/src/lib/libpcap/grammar.y"
1469{ yyvalpcap_yyval.a = gen_arth(BPF_SUB0x10, yyvsppcap_yyvsp[-2].a, yyvsppcap_yyvsp[0].a); }
1470break;
1471case 125:
1472#line 417 "/usr/src/lib/libpcap/grammar.y"
1473{ yyvalpcap_yyval.a = gen_arth(BPF_MUL0x20, yyvsppcap_yyvsp[-2].a, yyvsppcap_yyvsp[0].a); }
1474break;
1475case 126:
1476#line 418 "/usr/src/lib/libpcap/grammar.y"
1477{ yyvalpcap_yyval.a = gen_arth(BPF_DIV0x30, yyvsppcap_yyvsp[-2].a, yyvsppcap_yyvsp[0].a); }
1478break;
1479case 127:
1480#line 419 "/usr/src/lib/libpcap/grammar.y"
1481{ yyvalpcap_yyval.a = gen_arth(BPF_AND0x50, yyvsppcap_yyvsp[-2].a, yyvsppcap_yyvsp[0].a); }
1482break;
1483case 128:
1484#line 420 "/usr/src/lib/libpcap/grammar.y"
1485{ yyvalpcap_yyval.a = gen_arth(BPF_OR0x40, yyvsppcap_yyvsp[-2].a, yyvsppcap_yyvsp[0].a); }
1486break;
1487case 129:
1488#line 421 "/usr/src/lib/libpcap/grammar.y"
1489{ yyvalpcap_yyval.a = gen_arth(BPF_LSH0x60, yyvsppcap_yyvsp[-2].a, yyvsppcap_yyvsp[0].a); }
1490break;
1491case 130:
1492#line 422 "/usr/src/lib/libpcap/grammar.y"
1493{ yyvalpcap_yyval.a = gen_arth(BPF_RSH0x70, yyvsppcap_yyvsp[-2].a, yyvsppcap_yyvsp[0].a); }
1494break;
1495case 131:
1496#line 423 "/usr/src/lib/libpcap/grammar.y"
1497{ yyvalpcap_yyval.a = gen_neg(yyvsppcap_yyvsp[0].a); }
1498break;
1499case 132:
1500#line 424 "/usr/src/lib/libpcap/grammar.y"
1501{ yyvalpcap_yyval.a = yyvsppcap_yyvsp[-1].a; }
1502break;
1503case 133:
1504#line 425 "/usr/src/lib/libpcap/grammar.y"
1505{ yyvalpcap_yyval.a = gen_loadlen(); }
1506break;
1507case 134:
1508#line 426 "/usr/src/lib/libpcap/grammar.y"
1509{ yyvalpcap_yyval.a = gen_loadrnd(); }
1510break;
1511case 135:
1512#line 428 "/usr/src/lib/libpcap/grammar.y"
1513{ yyvalpcap_yyval.i = '&'; }
1514break;
1515case 136:
1516#line 429 "/usr/src/lib/libpcap/grammar.y"
1517{ yyvalpcap_yyval.i = '|'; }
1518break;
1519case 137:
1520#line 430 "/usr/src/lib/libpcap/grammar.y"
1521{ yyvalpcap_yyval.i = '<'; }
1522break;
1523case 138:
1524#line 431 "/usr/src/lib/libpcap/grammar.y"
1525{ yyvalpcap_yyval.i = '>'; }
1526break;
1527case 139:
1528#line 432 "/usr/src/lib/libpcap/grammar.y"
1529{ yyvalpcap_yyval.i = '='; }
1530break;
1531case 141:
1532#line 435 "/usr/src/lib/libpcap/grammar.y"
1533{ yyvalpcap_yyval.i = yyvsppcap_yyvsp[-1].i; }
1534break;
1535#line 1528 "grammar.c"
1536 }
1537 yyssppcap_yyssp -= yym;
1538 yystate = *yyssppcap_yyssp;
1539 yyvsppcap_yyvsp -= yym;
1540 yym = yylhspcap_yylhs[yyn];
1541 if (yystate
6.1
'yystate' is equal to 0
== 0 && yym
6.2
'yym' is not equal to 0
== 0)
7
Taking false branch
1542 {
1543#if YYDEBUG0
1544 if (yydebugpcap_yydebug)
1545 printf("%sdebug: after reduction, shifting from state 0 to\
1546 state %d\n", YYPREFIX"pcap_yy", YYFINAL1);
1547#endif
1548 yystate = YYFINAL1;
1549 *++yyssppcap_yyssp = YYFINAL1;
1550 *++yyvsppcap_yyvsp = yyvalpcap_yyval;
1551 if (yycharpcap_yychar < 0)
1552 {
1553 if ((yycharpcap_yychar = yylexpcap_yylex()) < 0) yycharpcap_yychar = 0;
1554#if YYDEBUG0
1555 if (yydebugpcap_yydebug)
1556 {
1557 yys = 0;
1558 if (yycharpcap_yychar <= YYMAXTOKEN324) yys = yynamepcap_yyname[yycharpcap_yychar];
1559 if (!yys) yys = "illegal-symbol";
1560 printf("%sdebug: state %d, reading %d (%s)\n",
1561 YYPREFIX"pcap_yy", YYFINAL1, yycharpcap_yychar, yys);
1562 }
1563#endif
1564 }
1565 if (yycharpcap_yychar == 0) goto yyaccept;
1566 goto yyloop;
1567 }
1568 if ((yyn = yygindexpcap_yygindex[yym]) && (yyn += yystate) >= 0 &&
8
Assuming 'yyn' is 0
1569 yyn <= YYTABLESIZE939 && yycheckpcap_yycheck[yyn] == yystate)
1570 yystate = yytablepcap_yytable[yyn];
1571 else
1572 yystate = yydgotopcap_yydgoto[yym];
1573#if YYDEBUG0
1574 if (yydebugpcap_yydebug)
1575 printf("%sdebug: after reduction, shifting from state %d \
1576to state %d\n", YYPREFIX"pcap_yy", *yyssppcap_yyssp, yystate);
1577#endif
1578 if (yyssppcap_yyssp >= yysslimpcap_yysslim && yygrowstack())
9
Assuming 'pcap_yyssp' is < 'pcap_yysslim'
1579 {
1580 goto yyoverflow;
1581 }
1582 *++yyssppcap_yyssp = yystate;
1583 *++yyvsppcap_yyvsp = yyvalpcap_yyval;
1584 goto yyloop;
10
Control jumps to line 788
1585yyoverflow:
1586 yyerrorpcap_yyerror("yacc stack overflow");
1587yyabort:
1588 if (yysspcap_yyss)
1589 free(yysspcap_yyss);
1590 if (yyvspcap_yyvs)
1591 free(yyvspcap_yyvs);
1592 yysspcap_yyss = yyssppcap_yyssp = NULL((void *)0);
1593 yyvspcap_yyvs = yyvsppcap_yyvsp = NULL((void *)0);
1594 yystacksizepcap_yystacksize = 0;
1595 return (1);
1596yyaccept:
1597 if (yysspcap_yyss)
1598 free(yysspcap_yyss);
1599 if (yyvspcap_yyvs)
1600 free(yyvspcap_yyvs);
1601 yysspcap_yyss = yyssppcap_yyssp = NULL((void *)0);
1602 yyvspcap_yyvs = yyvsppcap_yyvsp = NULL((void *)0);
1603 yystacksizepcap_yystacksize = 0;
1604 return (0);
1605}