From 1929b634a1f746d6ae774a8e6102949474822f01 Mon Sep 17 00:00:00 2001 From: Evgenii Stratonikov Date: Fri, 9 Sep 2022 14:34:49 +0300 Subject: [PATCH] [#332] netmap/parser: Disallow trailing garbage Signed-off-by: Evgenii Stratonikov --- netmap/parser/Query.g4 | 2 +- netmap/parser/Query.interp | Bin 4346 -> 4300 bytes netmap/parser/QueryLexer.interp | Bin 7060 -> 6957 bytes netmap/parser/query_base_listener.go | 2 +- netmap/parser/query_base_visitor.go | 2 +- netmap/parser/query_lexer.go | 303 +++++++------ netmap/parser/query_listener.go | 2 +- netmap/parser/query_parser.go | 643 +++++++++++++++++++-------- netmap/parser/query_visitor.go | 2 +- netmap/policy_test.go | 1 + 10 files changed, 617 insertions(+), 340 deletions(-) diff --git a/netmap/parser/Query.g4 b/netmap/parser/Query.g4 index fc74c6f..52fcb4f 100644 --- a/netmap/parser/Query.g4 +++ b/netmap/parser/Query.g4 @@ -4,7 +4,7 @@ options { tokenVocab = QueryLexer; } -policy: repStmt+ cbfStmt? selectStmt* filterStmt*; +policy: repStmt+ cbfStmt? selectStmt* filterStmt* EOF; repStmt: REP Count = NUMBER1 // number of object replicas diff --git a/netmap/parser/Query.interp b/netmap/parser/Query.interp index 9512ecb628462c54d2fb7c893a4d88015cbb1ffc..298ddaebe73fcd27e8b70021fc7ba1a1add1ab2d 100644 GIT binary patch literal 4300 zcmaKvTTdfL5QX3SSMWv>5y|bl_bFbOjjR|O+1?-}iV(1~5?XVSF-rLN`<<$p@pQ96 z8oIkqpQ<`lGoESokKf9NqwU?k++A;v9)5Y0wI9{%fD|=O3V9yo| z(>25C$4`vwVqTnXSbSP7&o#~Fn*yKXU$i+rFPP3|>&8?mKR~U(zu?TU(5@wkQQc(FkJ^k1(y^gD7c((Ih&uIPFH8)bUyvO zF0Lf3Uf1fv{OV%5Di&c?&C^YoofV5sSbRSJSgd0Bt5_|=db64>eh-)H5Oy!yvX=KG zt*>EMKCSon`*3^n)#m4NTi)&++Frjrm*MN(mSz|KJ?*NcZI%c7kMgzJ`SW`FQqukV zn{pSvm9PIk?!JV(FXhAD$IH_Y!u9^)L-@OYauiRFy8OjnhsDVecLX7TChd88O>Dy_IivIw zmQl`{;0nib00-IVt9WK(3I(cAEUwDCk1GNNwAg)8{*aBzHrss|e|UKT1J~mWmFGp) zqm!}`lWXWIn!O4|1KJvtc-h){Bc_H&BzQiehxI!nj?(P@@9^4Dpm9xr$SEH>s)>Sy zlbOB=uqWr8QO|)t4gWJDOPr3k!Rh4m%&s}=2?2AM#F)(pMeE3;%f7=>3#Xp66vZdM zXQ~8OO|k1Y#@3jEebUNERr145D*?_}#9`qgEUyBCNLR$YD-M`)b-^$_nj(pNuv8{> z0J4_`?K#->GTHVEbf7r3?S2ELZb6uX%#l68{5n|*tF~(U zfvJLG=B|Fk=(oFJszFh;x09=5vD>uA$!cNj=I$iYYXxpofLhg+fL1xi0Z1^6ysdf_ zspAO`yO*`BM?$@(nAm|J4XlJGzQVFTm|s?LkK*)#!(A(nN3Ft>cyRQ>OE6;fvcB}d z`eIiY0Esqa3|HRSHWK$PufLl@KBIv&2duZo(6m6(YNz-6X|&BTxk+kPxWw ziewYNokG8b0e~{qOtZ1T^mBCg0W}QJ2iSx(8w=QIQnNkxRgsg4icng<+@OB%6rL+~mMEjHn5Qq2on@5n9|gnDo_I6;C!mf+=^_2Yt#W zRmr&dC18S>L(Pf^F!8&}c16UV_)TrSAcP#g;m(X5=GZ|F3H52LVQJKXhg_`?u_K)w zKxu$ZA`4)WsDmgh>mX`U$05B#$Zuq&QtWmU{5x%GYJcOB!;>bcoE0Sj$zaDY1SFDG zwt9|(KIxS>JtMIrpBfV2s5}xBD?bQCI})h}Sw3rVjaw26740-4Jky~%s&k!7GaZJi ztBDRnvq#U)mHCOp&n;?tyU$U8{cDy)Rk`X6)aDmrKz^i&=BwtaW<3fnFWOqT1QNyz z@gvcjd=}L_YN9HZcUSHSC_rbUtjB(~0=I_L9)8+-8$>NIkD6%t)QWa<1nO=gz)nVV hMIU#4LhbXzo?g;=lj)akzgRn5+B0L1qgOWi=R3Yv5C8xG literal 4346 zcmaKv-A)@x5QXpiDSXH7ii>I60xC!Tgoq?Pbn>&5xy*<356g~c+=)&Wt$B?SozE+3q2f%a7;p=c^e0p06&#db3(A{|Hy>5FVbk z&0gLQX?+e4&5!l&ZWlg(`fBrIvu!@_9NOMIJvQO%?UrWG|NrrjmbTd(>_405wDZ@^ z_Nk%!cb}Sv@U40N@B71-aQmgX-}!iT5<DhonTW}XUmR4>Ss(YNHu@H8Hd%AA_60FmEBtY9WNSv& zWCCYoO#;@8tXcTQI+6xMldR|#lPpiJNfwF4^!yP-7L)c|f+n`%BY<(hPmwh_F1|Lf z9Kb`in&L!E-x>aUNb3z?<1B)cT6n9+cgU= zyQ8?4a4M~ZiCC;LxyEcLwQo`hwvR+${l+M7Zf*+j2C*9k8rPJrC@V|dXHC?r4JNgW zC0;x@Z;W)8-8V)A>JC&2PcmnwKBt;BMJ2Qa1`%cE6M>8q)1BTk{6SC!;`8fFe*aXK zyj50TgYu;UZT2OC&kwYa% zMeTa4s(3gPQg)^o{i#X_VaXF?AyRFNIt#OyO4KjhbyliHC~b?fUKN7GIUGHn-Rz>T zhP9CrPj*qYo!)36FFOzvU!0<4hLxJJhh<)h)0v06ZkoqaSFpNG5JyK~hACFjLB$_R zlST46WDg51idAYEQqGWCP@(4<1#-mFMix+|mx)yz+>9rzEX3`MMyOJs9`c%6h(I#0 zLw1c6F#GELvdLu1L zpLq*|nPJ$Y;*QE5Q6yVBo0DzfU ztuHTN&!AA)>BVut)PGkZ=`N7f7-<5$*K!s>G{unVOn`~X0d#~d0eUBQt%n?&F(}$-4UX)!KkzV6O^$>@PuLK z-U_Dzp|m;R8rID#jI{O$torhB@!`*n!yF= zdz*Mm5B~Z}JeaB2KI*LK?`D{^|{i6?t5q z%P=5TP!&aq$YTNIt*@tUYhop-((?+6SB^^VivSX&97=bnJ60-OI1cs^<0_;*R`_I* z9mOL@@h)HJQFkWlxi9kR2Di94{ESL}3@>!38{*^{4F!4yB~Ff_LEl?Bs21rSb!#!8 z{0Om6m8cs8)t?np4bVqL7FB8NgHtuD9^Z}XtKrH@7)(RhjxVIye}wYLLn}4zIjA=1 zlvTdYJ+-xPOE?2ATS-%I^T3I=x^2^ OT6<>vLz@hU`1dDLSRRG| diff --git a/netmap/parser/QueryLexer.interp b/netmap/parser/QueryLexer.interp index d453ff6e05930c0ed8b54aaca3ea4cceb2712edd..80a47ce78550f67276c2402cfc6719ca56b462ca 100644 GIT binary patch literal 6957 zcmc(jTW=dT5QX3OSLn@c;R2#{&r=m^-3XN>Lz0oAMPay!(HeDZAaNf0?{mHxa(Bs1 zgA{!zpylOoICEymC1>^g^w-_v;NkxH?)~k<;PLj|-G>*|SVcHom3~g{YmWa z>nruwTNTTLiu0EjDi8IhK0m5)vEN-%tvAP7b56cvaCup)TCESq_12`mQTJOtKSZr= zYS`^n&&KJ)-|v2Zdbod+krJny-Bq>QQy$irSDTuas8#E2wLDZJRXL>!LY330UavQ+ z^W}b3oo|-chx!I$sh!wWo13fUzTQ^*STB#&dR1?a)%N=GWxWs8FZF&`9gh3;_Q&e= zp{m}0e7H;W{vT$m`#9mNB(es=ctbO0|RNXn=}dH0`#75XMw7=H{vBIRPqqPJxP^lc1vK z9H{6y5h{94g-X3M=R!r#xlqy5g9e)VITtE=&V`DebD^T=T&UZhozIp6i=U^NQ@<}& z9!WM9QvbU0fUy&q?qN!mhlriXn1`oRfdh_w8LSO`FnCap1>kp_?4e};qS3>ZDi06) z7sd3(5#dew->PzLpt$KxZD>Z@-TwGoUjPSaN-z9AXZCvUqjXKx#_fclZKjhRc? z9xb5$M7Cu&UTU+$x{xMuWOX4;n)%z^IHXCOC0!}SYR=Z{kYFw5rAZl>7gKo^**@7^ znOGF@w_|z8UhWvN6)9KU)}&l_Ta|b(G@jUzU`1CahRfx#wJ8_KP7W(N(>X>$xgs1Y zfg_|#-d2+Hqzl^2Nf8g5IV(YC&WeC=Duh`PIu4Uit_5dSm?PdH&j}Xh#dO;^tg5BSwt>uBt;~G0{W7gGm}^@ zNzci*JW+)I4M*63>FHtesl;I4!^E?Pl{Q4AG$HjYo@lnq1u&Nlfh}nO76nN){RdDG zM9n+~OjVRqYc4iKL-G-Xo|;|SZ2Gx4Vp>lW6u`!3tW_z%GQlJzS&k}R24-tG&KAJM z4Jbtp+D-1>5X}e*h=qVNl&L zbl-SGk_zY!-McmphJ<11pCMrwm#jli&A{G}jgB)QF~4_fDudl7>;%bBN0@H7Z*zpLFp&c!4vgfujl#k-L#sq_7w^) zo2-WErj1}J&o;G5$(~6Y%9IS%bo+|UQCSWnCS3+XsWo)tJ%@LO|a0xOnU z@QN3HbFzhqlT7mJn>_I-^O0c5h)qd~O_msy`G;}v37M?LsOJj+saEEpsl=5WMJ)N< zI%tXYghlU~Gt@$op#-5P3J}vW^5hsevN!wJ#bcLH!oxv|CXI075(?%Ao01f?C{r?2 z(|hj|*Kvq>mfarFAW$H)!k}b0xf2w)4NIKe!F5sM>IcsB5*K9ea+jffZIF4%E4ODR z1@zux`v$R8%XVI3Ef>qrApbHU*V3R=MN!MfWF!mGLcKs@B?9^-QGBzZ1Zlv;0{K?1 z0igWsaWT@cTozzaE|UQyVjAGGOC;3nodCXV$Z-4;up`%wF+VX_Tz`k;d$7%EJ0{YO H(fI8X@5$ho literal 7060 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