From d4a1fe7da7b65b2be74457f9de20b8696cf636d7 Mon Sep 17 00:00:00 2001 From: michael Date: Wed, 23 Nov 2005 19:16:24 +0000 Subject: [PATCH] fix kernel commandline "parsing" -> do not always cut off the last byte, it's not always a newline! --- boot.cpp | 12 ++++++++---- out/linexec.exe | Bin 16896 -> 17408 bytes 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/boot.cpp b/boot.cpp index 5e5da9b..5b0a0b7 100644 --- a/boot.cpp +++ b/boot.cpp @@ -35,9 +35,8 @@ void setup_linux_params(long bootimg_dest, UINT32 initrd,UINT32 initrdl, long dr // now the cmdline tag tag->hdr.tag = ATAG_CMDLINE; - // must be at least +3!! 1 for the null and 2 for the ??? - tag->hdr.size = (strlen(cmdline) + 3 + sizeof(struct tag_header)) >> 2; - //tag->hdr.size = (strlen(cmdline) + 10 + sizeof(struct tag_header)) >> 2; + // tag header, zero-terminated string and round size to 32-bit words + tag->hdr.size = (sizeof (struct tag_header) + strlen (cmdline) + 1 + 3) >> 2; strcpy(tag->u.cmdline.cmdline,cmdline); tag = tag_next(tag); @@ -312,7 +311,12 @@ void load_boot(char *ParamFile) initrd[strlen(initrd)-1]=0; fgets(cmd,200,stream); - cmd[strlen(cmd)-1]=0; + if (cmd[strlen(cmd)-1] == 0x0a) + { + cmd[strlen(cmd)-1]=0; + if (cmd[strlen(cmd)-2] == 0x0d) + cmd[strlen(cmd)-2]=0; + } fclose(stream); diff --git a/out/linexec.exe b/out/linexec.exe index 0ce0334fce597edef5e030ffdf90e02b6fbdf65b..529d0c6db42582adc9458f25ddae95244912c59d 100755 GIT binary patch delta 1605 zcmXw3e{54#6h7zCb#2+Y*KUKZ-DpdPgRvhKiW>sq8C)Q7kq$`s10gPI)Hn@l79bKf zSc6C`EIAkfZPvxiKTr}_fxiSqOq3rpb5W6KpzHG`Vg;in1Wa&#cRZK$e)oLmJLjHz z?s@A^asNIZ%txO(pISxsU!E#>COfOB2}Ix_c~zLNc{&?m>G(BCffsUIyjlY|j6aq&n`n>O%v7XEc5)DkddgTma?%yz7i0|U7P;jL)ooPj#aVMX4VXS# zt=sCPMBQKc=0I_6YU;OC7gH6b3lX{RUL7p~JD<{)vngvj;(JU6a&^}926vnDane81 z?WyE@((4KHZF$f0BHxq;o@IPlmd>2w{j#)dS@m0`R6K>ubu4BC{)fElR6HY3Yp@u{xV=ea$S!Ia-5?nWa4)6}} z5t~0JFITkks2r&X)qDcKE1t19Qdvk4c~0QIDt1K1D%$GahqnsWx~ZvREwa=iOVU;h zN>pF$9)LpWQ?glK#am@qZ{_FZTRp^^<+k4DUTgc4((GG}r|tEv?3ky{M79mc)QPu> z!`AH@+rjC`Hy0e?w0hf~qhesI_fY4S@OLfCV1BLF~qt)xV zj+6|=m4PN&Z+eM>O(>!sh2NLqS(R?|xA+VW|6R_`iY@R=>oZmfFo`&foJo4tR85)z z&gCDnda%DK?%54}cM;nO>rbF+$^UA_{Q>S2p6pW|vaVpCfd50-3HZ)U+ZpRTFa>TW zG+)@79$RzT)|>&ZcraB|ReXj$Q`VdS66G7sF>Klq5J!Sh?A0M^PShbI({{%C7--1# z*=?K`M8B5dP|W=uEcCZnfHzDuyS!x{y0 z-Y9I3rwiW5Kz>}GnDkJWS&cVV{$t8d@aNM7iXX^NzfR<$rFKm> zIp)J@$9|yv5%~3VL8IMy%HxXp&oM)ppw$Ow00XoO&$2y|F1R34#cs|Nj?;C|pf;6C6^;9lTXU@CXKzCqJE6S*HAX)Mj1(2^`Cv<;&zX;$FvxJU0PD#(q%cB8RV$OWhKxiUb}t#OMZkk(Jefee zMn)&lF%S7{`&Wg?dr$E?8ObFN?W^rf^;}K{EkyxkWW;TJ7DzM5=u!3(GGti0k@L3y G<^B)OH9LF& delta 1503 zcmYjRVN6?96h5aEXrYwX0;5n!+Z4iJFpAUx!m_6eV_9$v5sle2PE8iG%}f^zBuj=H zQI=S?v+9*9d#U& z4H!4ba~Rw8Hy!UXzb+AHi1+G`V&t&w&RxgB6-ki`xnJ|EcJpi?TPA zq{?2gd5tN<89QPykjqkrxAF~R zEmksQcR>l?lA(eS{~)Id_VA)SDClHeItrKhpmcaT%U(i_c~riF%I^TJ9loF+^Wbo0 zGF{Z?_%~1fDca7zNw@cDzAl=#lfRUk78-7mc zPUvA;k;Jvgj_Ces~$zP6zqxR$rPaL;4$Hq^o>eyUGcu(#^W*Zp667uNr_$zbx8ohsjm`6|9B}JCtay&x_r2)9olDs}=+@Q&#$(dVrCfQ%zusz( zKg!?AXa3{-f%KO|@j!-3n)$p;m+WNGxwM!ggUBsZMl%sk-EyThlW4*WE1GF_!$n6k z+w_*Q0j^$ht~S;KnP|Z95>+;06E)a)MyA%3xUa&o3yWWqOKYO_f3Ns8^A2za4uvOY zkdiX2Cj9};iBsX350l1PDAgPk1^jO*8+X~l+;#)@O5=pY;t!Z z-#UIo5*4B97BK60m^l<3+Gx zut^}N)y!}#k@1F)rmYT<@;UBVGY=ycz#X4L=Z3?Hj7v#mta=mrv8uQ79J4LDKl&Zl zPa~Xy?LFX0;1qBim;@dIYQO`)N!?vr=WyI@)gP*B$iEm%xDNM_+O?L6{iKcoiAfy? zI$f;JGy+vpXYfzUSwm|3dSIB;Pl1lDq~2%-A0lLIAoVWLS&Mq{RsObx vsCx$JR7kyN^8@WnHC#mM`