From 63e5583c18388e351d698790785e1132526fa164 Mon Sep 17 00:00:00 2001 From: Andreas Kling Date: Fri, 26 Oct 2018 15:04:20 +0200 Subject: [PATCH] Properly null-terminate the argv list created by sh. --- Kernel/_fs_contents | Bin 1024000 -> 1024000 bytes Userland/sh.cpp | 8 ++++---- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/Kernel/_fs_contents b/Kernel/_fs_contents index d31ada7ac0d95fd5b6b1f7bf87fb673a0670e9a6..920ef4e3fa57d8c38a1a4abdc68bba8ad7b3db56 100644 GIT binary patch delta 5204 zcmZoTVApWKZi5aBXRyHKXb`U1Y|7%y$kZjVk+F?w69In-#oEyyGgh8V)gAOvB6 zO?$$?!0?oTf#Deg1H*F$28I_53=A(B7#LnLFfhDkU|@JNkx_bcim?V0UQ;BP7#Jj( z7#O6O7#O6P7#L)j7#L)k7#QT37#QT47#I{L8yZMYeqy@91>_D8hB$$dK@7qGyCso< zfgy>3fgzcJfgy!~fgzQFfgz27fgzoNfgyu|fgzKDfgy{5fnoYbS4NS^Ps}v%x@jR3 z1H&RF28P8<3=B({7#Nl^F)%D+VqjR##K5qEiGg7y*i9+s8f+l<1Pe@_WEwR2iMfU; zgnKy};xa}CJ_rNs#8pfT46B(K7}hW`Fsx-_U|7e*z_6Z)fnmdBLj&c>DHa;C=(?GZ zbibX*Xg&D}0Y&dXic&1`du}5W1H&dJ28PW{3=CVC7#OxPF)(anVqnv$pz>vqlz>v?tz)--zz);A*z)-}%z);Mo6$PE` z3OS4qlqU*sOip0sXcxG`xLx21(+B5mE=&q4ixsW}ELU&w!wC<~KYU`k(~<=l}oz%|`@4p~UdAkBNby`3F;- zKv-Bnh7*!>^Z)4*H#yW9eWp9y_ zedbLL1NMEOoZ0I){lZNSd7rH>{{H{pdG7VK<1M`)CMdK51H&@Pk<4%X#@`~y$iT3x zoq>U&yA`DD1;}Ns2l!jhF)%RrmGXjI+%;YM7Ka(*oasroILsLrO`mm(Lz-;|C~t;O zZ@9%F8W|Q4oN*S!x9Ge9HlXuh=dFbx8^OHS)w>>}TTm(<82H~5q$C5J<3ZLo9}##R z@E`2(j1QpfHfOr#Z4L{$uOOpWgN-`Y3idLXZFu12!@vLkZ=X1kF_>+;K{4ZI=IyOd zIWideiZc}I6cUTllND?gR8zLUe#WtugVA>T%=aA8O!X@n85kJl85q_vGB7ZiGcbTc z4a7eQ;(IbM+=0q}0`Ywr7+9GY7?^Ar82FeN7#Qst7=%HzJfuir@?l^w1xo=Mta(=NE^-^qAiqJkuq9bI33*m|h4H_4&;qz?d>U z_BV$*M%;bchEYnq1GKx(9@|Qz^ ziAQES+dmF9#xK(+9^n?B?(&aAfJsJXdKgGdetNACmpZE^Hv@wf#0h&q(mFEJ&;8?2 zV-4nJVBmv@JFI48nJ)03gNHSdn}I3f4YK~8`ApF^E>KQ9A=)bzsBOd?ZNIr$l;b=DWW z3=A${!=@hL6kuF3^(v=2s}3K?c^en9icgndTGR%3=BMs(@!ySDltx(Z1_ifItvr00OOVEqD-9Xj32-vAs~^S>8T(QpXt3! zoa(G00t^fS(-qwrg{PkZ$)-%d%fzY9WFS0U&y7)Rx(qX?0G#8(%qhTXAk4tPGTktT zMPzy|GbcZz!Sq^Yh=zZjENYAf)6X(VbU1OII*j0!T#6+9SK7$1Pj)O5xv(>rf)$S~dn6|F|~Q~v({4=xcp@f5O+ zxC>c&MDwh+wt`+r1CpBIIy!9qz9!G?*9E%2v;_~r}@tD*dD zAigI9!+9wGDTwdO!0-b^+b}RNg34KY1_m||EziIp1S)5J7#K7_v>QV`gCR)5ih;ol zBwzupA>@}s1W>~gR3U)cf1nBj)D8oQgIX0#=FSWZCqNqI85qt&>6;(}d>9zOHG?yxW?-~p zVE6$Nw_spkgH{N<&Kkf(w3db#NEV1Xl-7!Ax*<@D`~$SOKmMSe3XK7?5j&1CZJv1XA>aYl91r z+MpaF1g;GpKx%_o@Y;a!!}P77`r!yf5vU@V{NWeNbdG-e7bZ||u3AHBZ0M`U(z%{`Ha7}Oksr-N$(6-Z5Bf>sk)fNFyM@R|VH&dy;}0X08vaKP(; z!{9nVji@>xd-}f{9Fpn(2^RSJcnf^u%KICXm-nDDU6zr70aEDi0yW*yTIon7JEUN* zVqjo+c^_2Xx4!xN|9``Dt6Lo9;DUSwsE`LY*d?c5xy7-Z4VgCzTX^bjI~IGrvjw#oQo(t10aRxesD1fEu`j0~$+_au@gj)pM zjApzsJ@g-kI^&<|4?!*KDgQVGSlLhuP{tS2&;H|3XEnf9e%hgxpOI+gXFj<6oV?%{ z%k&xlIaC;nASI{+qy(LVT7m|EOVDlL5;Ou_f*wUJK@-3wC?{G8S^z0QjUgpy1Ed6v z1(%?#$$Sh9f2KF4GYU_?!^kNxx#5olq%}POQikq9l%XDwGE@RmhANL4W9C$2{4@FBUv&`g95bgHD-T-v$p9)pA2UxB5CIQv nELTurl-aJ}0U7;h=Xk-@&hdh~o#O>hJI4#&?Hn)oeryK-HD5}8 delta 14204 zcmZoTVApWKZi5aB=Lx>c(I8y8*_6eZktteyBV!xWCJr6}UIqpRhKBzTAU}~&UGRUi z1H=FS{2*}<{$oFpQG0WZM2BRci4Frpm-RWYK_J6G(hLlY3=$9q10w?iLp2ivLk$xH zLoE{nLmd+XLp>7%Ljw~7Ln9LdLlYANLo*WtLkklFLn{*lL)+v~qwTgJlRy|^2qS|K zgaJ0KgMopelYxPui-Ccmn}LC$hk=2imw|zykAZ=qpMim4!bC>t%_+tjOl%+%PVh~h zWF9p6iRlVK2={U{#4JVzvB`6-v^kBK7#NJ17#K_@8yW~teqyG9*Yb%B3=ESP7#Joq zFfdGEU|^Waz`!t#fq`K<0|Ubh1_p+i6B(r^r}FtK*u%iU zuoq-Vij{(+g$x5jEiWY5g8T>Z5+j2EgaHnieGCi?`xzJ*4lpn<9Asc%IK;rfaF~IC z;Rpi*!_kS1@|&Mn+00z7(88#*T)~A&Wx0X^qs(%J6-)u!6;^OOkl$v*tf;eHQGxNl zbi2Y2#_b9}m>$S)VR^~4{lHz0tIXT?WpN})ZdXuXdZ4_$@Ai-3fTzY5Q8i@{6TzEuzntfqti3*a+glO`;RMay1_keRv9w}23-aQ z21aoP29TqeG#MB`jtB8Qw|_jwEX+22Pb`zl^baq%Sy(j~7#Q@Y2Uau6Pv?kZ3Si`z zuFJ-)KD{B1NrTa1`p2`(>eDwo=Uy zGe80%Ac14k3qb-4JlQy=FSx+0!1!_c!3)gljK8N(Jj*CP?IN=Pf$bw-)#7ePV~Ktc@DYq`1A87rng ztYZ|PZg81dfU#q`<7H-b#*oPmKZ{Rq0EvW5p9m2#{31U60z^bGl}Vj3WIE>+W_4B( zAqIxi(*@;Nlv#I(F))1H{!oKMo_V4`$+R!riqOQpfh7}`xUYFJ%57Kr&b5qn`hfs& z;=Uii=s&$ofJcaN`*g=ZM%j7=hB#0HU|?W?rf`N7C?Arjxf!ydd|09{g7P8qoD7vv zJ}lAKL;0{o-wNe}(v1*<61Xk^34zmSJ%b25m4gzP5Cb19m4h7uO7);37^DG~=s~3_ zh!0Ejt3VtE1_rQ!4AS6I3M2$e^q|59#D^vNqaY3g0|O}0vkEcrFr1oRDaca=O7*GJ z6ArPk>X=W%`1%%q*-H zh+Lo(#TYQX;VcWwbOSbSmFWvkvuH3TKr+II(<}=ZCrsaYj#+*B92p)B#ud{!&oiq} ze8zO0-6FN8~y z@!xcbs~qZ#Hq#xha@b4tF8TZazvc;)C$*%Q3e~Ta^1H-OzP|K(lBn-B^ z^#FhCIR*v>|LKBZT)j*I0n-iL-%7?^w*7*s*D8v}zLNZbn2)?%_?V6X=9zUBoeKj)CWvpvz>o*xTQJl! zlz{}~A+1IxUj~K_5Z|7Gp%n3=CUA;^qtt zN1^;vQ2H83+=qeTF^G0%VE6zMw_;%U3gTNZFfcQNJi^Vuz{SkKz+}q6AhuocGN(H` zqsw%|GA?aK-RTRzaVRsUOm8gXQfKU*{_qy3I^&G#7ePFh>4vvC)fp#DS1jjJpKkM= zgJ*irZB7}+4buzDxzrg`re6d}Uz&apB<*m7n`OGn9Zr?$EI&9TrYGFt6kvQcz3>jF zI%CW9#0oBTM)~OnLA*KBH-dP9(*^Hxg0d-NC6_v5$@D}JZ_o5V5O4bQjUe8c=?g); zgVP!BajG-knf?*Pdon!`#CtQ{v5HHbk$?I^5KnUY#40Xzra#it|NY`nV|1SW5F{Bm z-SIxBI%Cds!)h*d#-`~LK|G%6J3&&_z>(R!CEeLMz`sOAl{Vei6CCV^n)N?+4PMdUdeR9N1W=6 zOQti{aj7$2n4SpY#Y_(b@pPtd1o2F!F9h*irZYa~RA&^J9{8A3e7eJ9P5}rTB(xAD zGyx*C5TR;v!55ICk023+=@09<)EPy#J3isu&pc5;W!nU11(ng%?TU| zD&S7uVuc?p+Z8r2K2Tn^fvX*Xi~`fMHgg+H*XrjDm~J

7|N+2M<9CAiY#chSeYr0|NuBmkJt)0|`NT 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 ayy0qBc*EVU@P?;d;SKM0g*SW;HUj`LO7GGD diff --git a/Userland/sh.cpp b/Userland/sh.cpp index 30d9526b7f..68bd4dd286 100644 --- a/Userland/sh.cpp +++ b/Userland/sh.cpp @@ -74,19 +74,19 @@ static int runcmd(char* cmd) memcpy(buf, cmd, 128); const char* argv[32]; - size_t argi = 1; + size_t argc = 1; argv[0] = &buf[0]; size_t buflen = strlen(buf); for (size_t i = 0; i < buflen; ++i) { if (buf[i] == ' ') { buf[i] = '\0'; - argv[argi++] = &buf[i + 1]; + argv[argc++] = &buf[i + 1]; } } - argv[argi + 1] = nullptr; + argv[argc] = nullptr; int retval = 0; - if (handle_builtin(argi, argv, retval)) { + if (handle_builtin(argc, argv, retval)) { return 0; }