From eff481492826c2a9031d0b982e45f9cbdb7130f0 Mon Sep 17 00:00:00 2001 From: Ugo Cirmignani Date: Mon, 24 Dec 2018 00:18:55 +0100 Subject: [PATCH] Working on memory tables --- build/modules/configRead.o | Bin 41600 -> 40488 bytes build/modules/connection.o | Bin 50760 -> 50504 bytes build/modules/daemon.o | Bin 14296 -> 14296 bytes build/modules/dynamicMemory.o | Bin 14432 -> 14440 bytes build/modules/dynamicVectors.o | Bin 16240 -> 16240 bytes build/modules/errorHandling.o | Bin 7192 -> 7200 bytes build/modules/fileManagement.o | Bin 31848 -> 31936 bytes build/modules/ftpCommandElaborate.o | Bin 69704 -> 71736 bytes build/modules/ftpData.o | Bin 44032 -> 44680 bytes build/modules/ftpServer.o | Bin 57688 -> 57632 bytes build/modules/logFunctions.o | Bin 7328 -> 7328 bytes build/modules/openSsl.o | Bin 1264 -> 1264 bytes build/modules/signals.o | Bin 11200 -> 11200 bytes build/uFTP | Bin 192040 -> 192096 bytes ftpCommandElaborate.c | 131 ++++++++++++++-------------- ftpCommandsElaborate.h | 2 +- ftpData.c | 102 ++++++++++++---------- ftpData.h | 19 ++-- ftpServer.c | 30 ++++--- library/configRead.c | 24 +++-- library/connection.c | 4 +- library/dynamicMemory.c | 26 ++++-- library/fileManagement.c | 5 +- library/fileManagement.h | 2 +- uFTP.c | 62 ++++++++++++- 25 files changed, 248 insertions(+), 159 deletions(-) diff --git a/build/modules/configRead.o b/build/modules/configRead.o index 4576e6f21b5e497119db1ec751d85e0dbc89a383..9ebe4bc7830bb629d03d337cf751090d35f8760b 100644 GIT binary patch delta 7555 zcmZ`;4OG-s7Jv5-DubAi=JQYZL1m(D{-sPZJs64S51OrPrh?jt+6TFspCPVeyHu+IDSVDFAt?@1>t#U%L5$TzT?F=6B=gE7yfJ*CBa zV8sI&TOY5_*gUB`!}Cdo=ftJY9gJmcom8K(^?t?}%kZ4=Z!+S*KQHnm$NGe~v3$S? zOdEKQf9b$qx*I3s{Y!^Da+|RL@UIV+Ljv04_QN6nm2t&}aWWo#v--s!?<3+cR(Mj?#!fxs0I@amIgUV!vp7@X;_|EukOZ+ z`0mW)-U*;!5ga3CCC4u4ggpWN^jVQ`@AZg~)Z8AS_q!Nl1_O4yXXtZ8@6h`=!e{iv z)!9G5AEHWk}Wuuo-?6%h=Lap zKAbUjw}Nj__(K)^g%CbG7$`|Gys0=0Q}FSa^(1%A7I|sF)bz{4;C~}rR3n}YM)Q3x z41QPluH(0cmKE2p>i&k-8xcBOM)aMu;avPK2!()Wq|` z;5CHHk@zwcm(?qLwLyDDcO<@9fGZFPBzI*HJ*(hq1>4>-Qyf%5xAY3lw5%XT{2_K2!gWF8H2!Gf zPwI*D+!;cXjNv9bhbfnT-!wHv# zy%Q0vpRv)3gQ_%Bb2v{49t*>NUgM7z3K(NYG+YX8aw&mSrJrjK=@jT2g|7WM#vaPd){vS$f*$)WI(!*azzP2kZId`x@{!#|+$lY`p}V}0T}3H=?LK!(9&5OFPK z&K~RRz#bv~T!pU+t;4KE+;uRF^$jiBClsxRIQ7t@psvmX375n474ef4zM9<`!aI(L zk+fsxg>hJ|CCDZIDTS{Jx}fn_6aR|Bk5@Os0d!fB73?90p@fU^Rx6mS;Of4!APl~y zD_ksV)m<3^fxzJ~c(a15r}s|@mjwVFDK0DgQA)#f>r2a;ba0RZ@7poQs>6MROa5)d zpA?3ltMLaAe_02ANv8xAnnN-mE!9oRB6E9P6m48^lZx$e0{@-000)apuahdBv(Bv?O3bxncDl{S2e zo|P8Z*tpV$>j(uloWaZj%lwhHua`))%$SYd0&d<(OZ_{V6|uR%f>>-XuwXPMuHxo6 zx`xRAL&!J}W7aAQGSR)tf>iXa;_wBYTIGah99C#S9%dIh%_r$>)twG`()Sf?DJ(Fb zpzFbO%{mHmSKIJ+e0jCge2cQ5);QBKu}EYbTVz8IbQf_LjJt|#IErmW9GdY)Q2{h# z{uqFEELy_mxX=vZq*I%ciqa0T<$7Qh8;Tg$=18*3}fr)Wm1so7-S3E1GW;m>&4 zWkDpG>zrU>;kp7CgYE0M*^jFGjvglI)f*Gt9Dc#EZVR?!p4$eFKDPyLV4K?sK1?g& z;K%F|%M4IOr>U7`gfFn6ghMMfmRL}ZmrE?@fo7=pwct0{T*_e@o-MV^ zL8Qb(*LxY~c}y&`pb4|exVe&Myiwz1pu5b1ZRjhrAPd{dZ1W3xUiynLtmAp9$F%hv z+?c)IGK=ZtnXYlluwgxiYHVEZgm^SJSTGDTHynhYuzdpuFFH2b@DpZjl6f!1?Mr@BgQk+<22JL z&MX=aneiw#d$@U!YWHZ?`?1}_&H1EO-o~YGD<*DoLMpm9aq}GY@MSH+?daR&gpC-t z*@EXWZ8L{wF?+KGC(yImGRM+*?xqYf@wFDJT~v-=J&Li{q|SZ z_MH|~Vd5?^xMO!&<`{86V2m|s%ya18#m%S4`k7{}Mc*!N?x*tF$tw13;Si5)yE>+X z(*;2)ti`xm3$9{XEjNQ-cQM9hYMfTguN6btP|IOEHr9&8`f_an9Kzh)+?3x>tqV!N zdBz!o-ran%{C?_f%__efyP)B6lH`BI<%#KdPyctjM?$ZYbc753pnGp0e5kH}^fPlq zKz$s}uNz}T-7dZ}#MkSRw?+mudvYVa~o(V`mN4?n^bS@px`us>3-x6o}b#ZkW_ L^yyt}s2lWucf<8@ delta 8405 zcmb7JeNt_U})-MdKPx%GTo5DR?M|es? zf^~dw4{Rd|o~vJpj|RZ|WctW~0fOL8X|3MWN{Sbz?p*S0YJJMKRQH8c_o-_qf?$*w z-Y>O2vM(;rcSOaHEn4e%+>u$7SD0X-=o4eI zR*X%sl-P5M9Z}Pw#^hvCCG_)u`LDO<>h2Si;?+g@Sr8I=EH)@8GjILs>@^E@CC&-C zj@-P$^2PQibNmijQStHda4K@VYj(z?^Hb*Aa_u=ed6`j}_M99?mJpPZt0iR2nsnXTyl zJA&9RKpY+Bzm4#!hbnfDlMm^aG%{k$X-{Ao#S$So?vI%sgM zIBQ^k@j5J8Vh%|n3>KgOEHMv`6Im=q^mZ)iM;;8nM;nFxUhRILAPAyBgsZ{Y_ka-X z{t)6N!4S0cHn{~PeH2_=76DP|QREg_(-qSSnp6;kBq&dx1bEF&@23~EP^EZzfY%E zZ`2b{lK!h#=M+2FLe=u`h704hWCBe}$M%a)`%HwY6_VMG)_#H@gfrGM&TA@u-$K1y zuNZiJW`IA0m7rN9CQBWI%M88?ab0r}#sv)rb!DjQpaJIv4zEGq!-!K2v}5%;yvyX+u!$s zAk0IYPn^Z^^}#>I;kuy0K6s2ET)~lTG)Pbj9-9QotAeNfiIMqApD=>39LL|zL>a~K z--m9SWd0}Tm4#lH7%z5azoof}57JgiuKod zj?ZaI8pl{G7`!LF&*y72z;7b1PxJ%WOg|gov$gkvHlb{S{|5GU7>f@w{V{%u!P(Bc zVSo<^>Wwp=ozVOG7;MW4CqzFjv&ndFMza6 ziEO7=`&ov=iu=|8AA+x6Ufc-8X&dy2^Z9&Bp(|5z zNW}Rp<2il~^4Dp&)+7^{IdO9iJJ10P5*+3DZy^7;0snj-zDp2B;i?W9)H_$Kpb3c6 zxU}P^B0rhovvqxf<7Xk?@ke}@&*v-Q9L}P{8;k=hsFUM=kNkfzd{$5}?#J{21mja< zSco7b&@uCK7RxylqJsmvR!goL&RT)iU5NA1+ByCXS zC0fv+ms&!HRK|f7oG*`Pah)0miQjboHq5`F#FNOgUdhau8MU2dj1( z;=1^MAYV1$uVZk0zt9@^eAT}<_&==%_?rg!CkA*IgR@7PpN7&G4Krdh?iWm8eoB(Z z(8CvFos8B=e(NI6nu1n`-&)04=c5(;*4H_!9jzy*)m4v&b-k`dXx)oA?IJoNeP8@5 zgFndN!8kg~XZHfB49@bGYPj}>WF5f3;W-9p`Cl_Q+hCy)T0#3P1E0^A(g$arcO{I0 zRr;y{e#HQv457J_oJ!{&`|n&kM$0hHF(%WTvl? zaY$nDvxw{Mu?gGb3x?0O$2E@Mi2NV>@R`#{06o1jeg6zP3`CsozmXjO739Ym@F#Qp zwzCReFs-c>um(l6wt){0QPxIs7g@a%XV(TPR51EK@W6x7!38@>UW%bmrM)Gwyq4 zY9a)Brl32zGDypp$ODj_ugE@p^)BZ)Z$W#$N?PDy^Eh;~YHI_h~7PqVt7(U9hp$R5acDkKD&oQj-? zCz1dhw$7XaT~3Ku;jU95sW7%kk*DDc@G*{g1qzC6&L3wd0 zSpnU}5(xoQiAv5wT8WLk3+*M6ya=OR!VR#V_X>2CsB(YQuWxsC>nO06s`4?cPYPW= z^iSDX?c;E$w3HkNxlAR00ehJwFF@ucju{1>GKIVhC(0DE4Z6z|@&QDbOLC+>M%;Jl zkxxTfxg>X>sw&R<0aP)*`#I}rXfIdgS?GI#vtEbL4W;sB)M>@$)bmb&LmPGz2be1) zVu868DtQw;6$%M}6BRZR0nr;v<#0+C1mRnKkAc+)hxUzB_Y*xr`VBRdrS1{)19H#^9n-x+Ap3MsB4<|OOOcP9e!)uao3VjP)YNG=Zm1 zBELafol2%acb!DGfN7gbZbI5NswaD!N}`~B+k50H6u2dF3*2r+o`Lqd+vg_$Hq^VvdOQEY?A$ADeL3`f1L+a5s5l@eL-e4%$p^!v4w8KUQ0NE*# z!yxZe+pR01AD^w9bOwjfU5!}Ps56c_yho)1lpimd;1wwbe5Kv$zeJP^89lJ&nJ zo#7&%0P9|=DZk;Y`b7Fg zVMS@6tHIvp{S%0IEfUT=Ju&ExP4inD20={|#kdh*eS8?CH^u4yeYzOFzC#P%Zx!(#)mrJ>02jU>OK4WAbtP;uR3+=)LHKB zd$7=ZaGrNzH~mJu`?`jejW5}8Mdj|!s41z-*~%Zf{OHjy(>L8yb!KI=9_w0lINeIA z&Ppkz-_jFWD&>ievzJqqxg1M%S(oc8so9_o`YP%@2=y4cY0&k04b2_Y;qt2zrp4O) zF`p|u&R<>PrG0}sX%C$ql&FYM)Xuem%i zDbPEiUg6N+O>!<*8b97>MXqyM;;?58+d(N^8cA3$&+Td>DB>> zoL8IfCq*mP@^!lLofNI88J^bQ zhQznN!_!8MG2ar&xX<(?DSEyv{C~4iP_N4QAQ5~1+OWEkQ&pcc$Ik?lrKIS>wPB@H zdgaT*ul3ORoA92Vz4QR|UfQoo|0Z29)ZDKxyJTSNrGrp6SE^S7Y?^JP}z0F;iSr+@BOktrRQO9V`?;RNOGcvvo1~fAJ5=s z4ZXKkjvRMGQg>U}rb;eTT7{Z8O`5Kn&j!X1HlaO_zOIugG6{4V6;Jv@=t#07v9qq5 zc3gbxckmNDF9VG4Z|>l)Fn%rLGbk%}ihh80<_0|Pwx+Lgd+92|$pJltLX!i*Y3&@d zkMy^8kD;um0H_qwVhvMDRV6e%C}#@j!4#YVc(>0{npxFCDRurg z=d;&nLZ2{eWA4GNfBQRDO}HMcK2fepsg_hd1+bf7TW|)_4I4VZtcj$hD-sVEfc4pv zt(r1!^q0BxgDHC|gw6=7rpDZ;e#a`Mslyv@m%F_6q4-q5Y!_=r*=A`v)lLPR%dCyC z54TlF{%N4MB{Z)H&0VaiGMeB~m;Y3k|9`viG#Bop*fhZFn*IMV-$OOiK+mS&(}43? zBV$`cIZuPGOlV#g8XMc*gytj4n+7>Qy4rF_a`~kfVgOf!w=izoeS-UYk4x_!wMVJ$ zX~3|HZR_$@LTS$cZWKN@u+OcO{R{*TyKLPf__46s$5tm3RzC>#OJ;v_d2`3vg=(Jx zyqZ@UBQ|r{j(7(7r-QyPp&27IHmlEA|5yZcZx}|JsF{s+$49H&}0CGb@B`>rLTjF%07l!ayGl4nt*SpvSjN2R@;odEG>D`sKPUyd2{r2C{S2=jNzJV4ddZpBX z-!YhK<}s(z6mdH1=P+(AZ*X-P!#QO4gA_zK2PxNtLt?C7=Wbg}={tncFB zG&kZ8&t;9F2D)q)3EMSnTjJ8Y$M#JZ?yj%n!q1EB=N}H% zHs^iccyUkm^vc-m@}%%^-bqbGntvWc0CFA1+j*LGl@O(b5{P`mMW~I{D;E9U}r8+Y{Rp9mnGhN_4DLNN0 z$X3q@_8O|53%;ftL?K1y0-c+i;>%+FVv5fN>YAV83o%kcwR3^)%TMuTGqR5S`9S&k zDL#7!-%45eK(FMd_;OhDBIV@++S9BZ)$z=}MzMUL)&(h;$H+br=aZCG0OQ;6=)Eo2 zd0YkW2|U8yjtP7h`?05P8&3i2Kc$=kpc4ftz9=JKP_zK3(YzEaX5<^;vk?X7fiK4F zS*j}lJSQ}pnLSTw^MIDmOTjoJNhSoYb@TNls-6eBkZPX~=x@kh2x*`2T{Ulp${3mh zV}#p4itGm(RoE5xa5nloF6))IQLGR!-%NI;>Td7XX$qYF8a= zb&C8&0eyh7iU9w`=jMFjVHD*R0se=hwVtepkrXQe9KyMJP1w$(nj*j_`Cjt4V3&|y z2zoK$!T?^un#SCY_5UvAECjrUPtu(Pdp$)L0xewF$e$^gF;u+}@FupqPp~Caw-E3n z9>d24JC)L+fW_RW0>S=;vZJ7Hrt#50u$2i@DfOn%c(}ga7x-&*C>p@sysDiMERlZ^ z;Cnm|8guR1OjJ?UBESe&`fY;!g7Ovt7V(|hp9Gstu|X6FlbHq|TweTGgi3gB^$ z{E*O;Qjh?raaEoa?9Y@#fFn6$KMJ-JMG3H&D>Rw+XWOriR84^8Y-`U!mfb;h1fkd1 z<{n{-JR3#}yaQ+WNrC^JvKIrM<8dz(Y+H&f2Asq`*9mqD#TNs%;2P-GckDYrXIuuoHb8Q@y3 z_43ijXRUk;&moUwAjCh_RMByhV|zbbG=dCLKR;IVsKu!ktNJfKHY z&GLZ0o^&zbNRGKPSBlNmISLj7rgQ5Vg6&Q@#egY1LbnRG8%2u&d-IwzRx){P= zab(X4wguxw0)L6;zdakC)KP3{12Dfr-J>EbO~TCmv|$d2)3t-C|Cm6gv%vWusbQIB%lvcv;?r4 zhw2WY=|a^dfG=~d#tC*X)s+C+$6K=mJC@Q`fsW91s{;5(e&A9eG}#nc1-OTMbx^SV zDZUEuanANhN1^j`JJ1YeHSIQ{`9LSTWLa=8jS_)`yK;9H= zKdLSToWM2nsbF)dt`zVS9@8^|{TrpN0i3}3YQ$q}MCNNR%3cGQ!DxHI1}U-zumO*z zRax6{6kh`#@X+Bky)c!h-y_0B5&2`FtEgKnfT@NS+?KM8gQ1imU}Z%+cDX7f5T?^QTOT^0)(Au6R|2n|N{KWBc!4^^0x`5tDdFuc_;zEfF%`u9t z11#hn?~q`xp_+Aof8piwXTk0wy&mukSJ!1+BQ~~2DYzc+GoIMp1$&Zm)&s^kV}k^{ zl%nea+i_hzAlMyLy&kYXXX-J*4yU^HfZub>^8|YrrELJ5$yK*cuwlyH0Qf#<`%}R- zqsRu(|4YRi0yvWWH|4zAUKdmC20-Mx?IhS?07 zM!;j7u{nYrL^T@$-{Q#aGj|)+OwyYm^d2umyM=8s=lN}cf5-hlA@HM=vkCBdw)#%6 z<0!fbuoc%zBd!h`$y%!36wn>1ZWHKq@@)=aUshxbWpB#f40xVfnJCyoifo3EJ=M<< zY;&%SMFK~z^HPCNrrOPbyEx{Zg55>_7XSyb?NPz@rK}eKxAVBz*A2{o4Y#nb-U>p}C)8 z+W`A={O<_%?^Lr5@G+hVUkG*|>Ft13eE2vo*jp&L9k3~nbqk*Tw(svy&UV0+992)j z?xg5;z+A3}p@Myhs<%Vvd)`?d7OaogiirZZcdSzdUO;K(fS2)J6BVqNvdaN~<;rqp4rqT(-78q4csXF0^YT~0o}t=uz>_?_KMD2@@>c+kwkH7|ADg`ylvM%P?h0r2 zg#_!Ryb90@sGuT%J^0tKBB2>bH5GuzIkqZh%}|;lDIy&Q9LkmXxnLVmFb-JGkvHTR zt?fq2i39q%Cc7|eBmXBw;}AM!E|pR@3frUngUP+Zsu{U#P-EYwL1X)JUgxt>@DQ41gtVY zgDRy)2-Ztkl@KcC%uZp}=I~wq9d&`U;wV=Mya~lB1Ns4~sf4iAd@M9uc)olk@Oydw z)-i5lu&2;Q=I3kI^Iz*91kV1$s*50UcmR4aZX2*K_zV?#+rV7{-_8#f#tM7{FZvS` zcv#gpVBaj7Eevb}QGweAVgkRB*RV~D+YZ<_n%;2h&6`lRfg{4;L%Wc=4U|$J@KpL< z;P&MRFPDRD_!sumnsHl@#!uo+tS*AEjxvO!jyy|m5qcZYNP$~F6NR4;`rum|jN@m;+ zK^hO)l|uhnn2!K`1+kB}kQ)WwhxK<0d?C2$d+x32*z>je;9(C|=ed=tap9_N+&*OhFZUa5Y+f4&rZtW1*+0;_tHqcHN z;bEnsJYUl$GA^iaF_6Q9e3k7p|?*~i-rCOx4v2E-{x+= z?%)?nbvN&;?+SyloR7~%10}qde(%Crn)sY^;ijtXNvf@RZLU7AVWo<=XK5D^N}cCO zdoXVEXFr34-d4b!0=ES)THuKSFs1sqAZ!IZD{xx@B=Dh}xwQhfl~F11uX&R1ZL8En z7gC|>E9NL0*dC8CUzAd31iqH>OZZhWTk_?OT(zdOD!`tCwUv}f*;Rle1Z(SNEJdm= z91X2!TO{)+UIqS@!nTAyswxWErNRE(Zw}MupIzJ5aC8>8i}P-Qr&0WMsDEWTkqq`^ zEbYN2m2+Ud*%Q@3fzKfS8xVSc4|uZ#YY&@i1a6P6y9GXk^4@^@_pIe>8}=}6e?Ygf zwX59uMnLOKI=wr?_vgo){!XQC)fsvwI~195$dof)Aww5 zNB$~}-;?2M{k(H^kT&nh@MR8nu3~h0PloU0P0m$s%AU}iuHV~Pzec0?X6j^$?H%A7 zaI?c6rPF(_)m7ACU#9P}YzOO3nXNxfaj4%%nS20YC;m7-`B}A?h)#+e}Jx{ g(fcz!o5oYw{!Gt_$#iP}fJXdM#@#FDet=E&u=k delta 13308 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 diff --git a/build/modules/daemon.o b/build/modules/daemon.o index d372df36c6fa915e6d86b501c6b70b59ecaaac98..5336d71c9689ada6175fa3275b64ceb5abae316e 100644 GIT binary patch delta 1706 zcmZ9MZD`GL6vyw`E^AA;p3cr*V7qs_&;Q@O9yU*5X}E7_q&%bA~9CB{daeld!45t6nxa@c$M32-F11|6dhlVWrXc ztKMex0ffSiuAnu{REce2M|J28I}!C?H2zB%39~d;mgQT94uB$D@i&ONh$me-^e1DQ zgU$%cO>Obl(1+-caNW#FWjRFUr@!9!Af81$x`0xI=@qIQ9R;wou|wLl;F>8oi$WvI z6WwOW&>I+STt{;eZ*sCtJ5;IHkKB!X(>mFy<1RP!5k{IE6+lr(tC5YeywHqZbs{XwG49ifAvh39vKA75jC`DO*D;+mNTdU|FkuYYlyk{shZqeXS#g_Mwn--(WnSHFvwwYjoc(qn|-{(oqV9B-25>OgdSpogWxy4?-!X zX^5wsOz3U@7|%lFQ=IEjb(&`Sck`TCy19o(Po3({RoEN-E1 O$TqK{*@OA!ee@5|EX@@F delta 1732 zcmZ9MU1-y16vlhf)KVR4igG-9F>BK1qs{+K*lcNq&MNAHPWvGnD?%G2bsuaY)`DJm zQHzBlOzJ~-vm2#|;>Buh9SG}1h8DaSBfaQk!?Ai{6-5Z5MRp@B=YMkoA^e};^FGfx zZ$cjBALVbqtpCt`mH#g1Mo#73(cGDRx$O7D-KX>4N57&g z%oN6#VMiU92s>$4{}tn(M=8wmxwhOibO99Mz>XShk9d+>SE2tHQ!BC&mPL*D&(LK| zMtJ*2H5ECei~H+ssKIX$kA6lu!t?@ljgEGry>UQtdf=KlFpk+qmdCoyJwxwfrSTAT zBHrZWoF>$&*RQ;QLen8RujB49^e>c}9F;&(M}tU5S)OW#f8&1646;#{U$kY~fPOW4Wa42je-6P@JVk)p4@c3sFzPwFgjtW}cm3WA#xsHykLd*7c}{L9 zyJtK%(dAekYr>MDAEV$L_2Zi340MwA+R9&?KkWwH;(*cpyX!IfRZz;&-$4Rz@O^5(uyUk=g?-tBIq=Sa7HLR;nvt*7Wc D?1k49 diff --git a/build/modules/dynamicMemory.o b/build/modules/dynamicMemory.o index 46ad50b2a9605646a5243b49debd95fb700624d1..d946445fc36dc3af2bc0c8095f573aa5c727204b 100644 GIT binary patch delta 3523 zcmZ`+ZEREL6@JgP<6H-lI*{aYi__Q%Nt}e(7?RxjN9RPX@l6Yaw8}z2!Zi?=6t|=y zp_DcAvamAG`@lWZR46|{E$TNLv#Jtc?IKNO{g?=Bps4GrR4XMYqDs_Bg$jx3^*z_} z-iiCe*Y9(l^E~Ig@A0)gGdMeV$OE2J4LU3vADw6S9C(W{rjL)_WFwUmj4^iRAv_L8 zist94jpYtJ4i)%&O9>v79Eo{O(NjHBdMY%nC$H$q^Rrnf8JgD(!4hChKOdUO!skOq zI2HP6lE95(Cpk&18#S4l0H5oyI)vo$Q=&P!*E^*kNj7Vmcr?{*FKN8|C`+oQwSTv&q}3VW

`r#Ili6hc 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 ry~@OPVYWwDE%pTAafCn+1~C)}!Vhsa5QK4D3 diff --git a/build/modules/dynamicVectors.o b/build/modules/dynamicVectors.o index 626873ef84d73e281017e373e4016f798c3179d4..ba7ff14fa18b0fde019f3e001661bd7ad4c83d41 100644 GIT binary patch delta 1446 zcmZ9KUr1A77{<@HT&85S3;p^Q+SKU6ZRguL+u3YjH7`<0P@xEKQjy53Xg5V6k{4bm zL5v3@3W7n9L^Q{s%WMUK6qrPm5Y*_V2>e5YbkQH?-no3w&EY)H?|q-=`#9?p>l5>< zD!0#jp$e<&kkH7t9>(pav$^%A1AAS+t5EAVUDIyF{pZxOFt(n~(#xnd45P*{j4R0c zrP8jF+|S&*DEPIQf+x_WLRBR*#h7{|15yMq9T-w^V%{_6D@0IwH>krJb2nYEgD2G~ zD$z<L$U>JH|fM?To4p3-cRxh-fmwYZ4^Q;RevO{q*G78rR0SyL)d$_jJu zpkPXsCie$(=it#&y`&Cx^e*>*hJ==?c30`tEzF%kQcKlFo8!zqjI@?LeKb48+%ME) zhUuT_`xevhL4>rJg%y(OHF-;nS;R<4s)MBdWbSFCLPORXsYj?+`J`>6+f4t6W=o1| zIBIG2olZK&m|09(Qn^XJ&fH;SEiEphU`h3WQsx;`2ahdPC%KK3Q|{J{ge}z|xe?~h zB57CBdzm|ov|UVJwkzr5j9G*TOHl_E*4rH(F=h@UVX5Ab8giHZh;qX-NQJfVAs?2? zOUyW99BhQ87)DJ*D<3hh81ozhk>Z}oNY^&gvU_LNI}{>Py`|geWo|t@PH{uRk>U~t zol4eyMtYHUWX&iwSb}gQJ~;cuCw%*Fs^SaPZ9>-9knYF|tIo2lN630f54uX_ zgrKic^cwXH?)Dy?s4l^baKcEnlj_I4_7Q!BozKGg0p+7(Zl1CxC{-cgyQpt4KEYAT z5g#MtBc0^doq|pw@9WWD`EE+kZnW4&y~L1hR2~yH=>awtggJ|>O*+R@mIZx6KjmA<-F&=*J<(tX@HCg=ss80x*rcc%oc;`jTaZm~Zt z>TjU@M$NXx9lknxW=hq?brKFeR)$96!}zo5k-^#o@eqYu=S z_K+0LJSH5{ZCp(YnnuH&%l>32M3PB=ce1EjArZRCxXvn3G^kiNq-B2*ZNnD2AwRlef{2e3)=Fd`fj89wzk=m&29* zPsQCBX2PT=d1^t>VJwA7{l&_E9U5!*PX7oevYl`=Qt6Wv&NMPRPCi2F6P6>DJPX2{ zL`#%hO)kWuc5i`~@<&J>uGjA08>RgFH;DQrWTQqEP>hnk#y?s@IM3nkFshJ?cMR63 Z-^g@E)myypJnvfdAluxKYd)7y{{Xf6xb^@5 diff --git a/build/modules/errorHandling.o b/build/modules/errorHandling.o index 4df7f04cb31d9ac5bb0d2502c124b5e8a67c86e6..965b9e4144da549f5383b1ed20972cf1c548b0d7 100644 GIT binary patch delta 831 zcmZ9KJ!lj`6vy{%P?IZezi#s~yMh5Beu0xqV@%dlRwun~>!A&m>Q`JLAPuh*~TBlHScU5`zUluTh5GG5e=(+tRARkur?mXlSp%CUl` z!!(Z6(X<=qoerJFz+rV-^0$oqI~2|$t)T1j*h#7N8AY9O)ph9^Hrx(f#?WQuik+r% zi>l&9cplro2nW43-9Y9seZ)0S(;+lS7k3)0{>XJN$tzZN zFWxpZO@TsgR?Ti1nL^e+HaH;-wVIN;KMcEy^^ont>fH-p6P@d2oDiKtKGCNq$kZkJ shC+2{0Y{@F|NfgOp#kzJp=}gVVq4>wiI34FvN)j$R delta 890 zcmZ9J&1(~35Qj6{L+z^F>~7LGvk}TFLV9tl2Q5WiV(52E2j zbQmqC&bO@;wv}@O8;+qZ44uooD9%UaoI*2i__}QQspw}c2_8xE z5k*TD4!AX5m3C9%zi7J=oyIdaqAoUF!((EsDRTv(XSgqG))gI~;Te7@bW71UXnBU8 zN_VGN*#~^UvS;{*(A|pe#fE2iLAtYw-ht~I9+hr(1zGY{RDHv*CHcOZok!D;Xc|kt z;pgJKRnAwu_f2q1=r2WgSg;B;J~onG*p$?4{U6L1BD#Qf!R&9!=sD%=lISa{KZo@~ z#5I|EsAvaa(XcDCtBQtb6eFskRWw0I5{Algskc&mL3FK`n3(7!`lU7MBH;!4h9TGK xJgUJVx`!l)t$~ej`vl$v6&hd|#MbX3X3IyZgrpo(9{qAWR+&hDLKjst`42sld*uKC diff --git a/build/modules/fileManagement.o b/build/modules/fileManagement.o index 90fbc85693f49ce84a4151ee238c9edeb55744e7..824b9acde4d5ad366a531b69ce231d3602ae91dd 100644 GIT binary patch delta 8443 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 delta 8471 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 OcZ#B<^P2SV^#2D^507U6 literal 69704 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 LdMBXb=pFwHoBrFg delta 13387 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 B66*i} delta 10721 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 KZ3pIFX!3vlgfhzj diff --git a/build/modules/logFunctions.o b/build/modules/logFunctions.o index a8ef6e7693da67be2fc1cfee52876cab857d7de2..28f97b6c14a824647bbd839907aa90de40615131 100644 GIT binary patch delta 1096 zcmZ9LJxmi}7{}lDY7lHg?>Me+URW@3@MCyGz>qqqV8R6ky+PTmG1yc|pp*{@Vd$g` zBqsP62Q*4`&=?2X4lWLMASB(4Ch8!>!Nd>-5gCdL3HQI{x#jZwe*fpW_nynGrdQMN zzBE_=H9xVs%&j4PIgV73Qono(nnUY)Ah@?S4yClZ-I_81qLN$NbYG&%`~{3yf!|?D(>i8qN*<0YiVV%u6b?DeZ&qF>6t& z&DV3Fr!XU0${muf(sj^F%nnkw>+2Qt&M~_|%dU}=RCA4dL_4n1TUg&3OMa!}?W(u| zy2

)Z2_lb%XI;)J^!%(YqM%=ue1vEX>jSc4x>&<|OO=kCXQ@{ucR*jAzL4ls*f) z#OxXB_mr+)MPX*7&CMtPKzd@$XG70+RDSZw053}b;rhIE(R)}Ucgy2_KHv9!e{L_mmp=X#qHOqy z_cOF(P%%8^{SH?RJ=7-dKhqyXhY;ei5aNO=5oKHnszu)GwDj#u7Ru5@ROwH!8DHDjvq9SuV)6UTg%@l(ua7!OYJj`0)pFEEb&0g+|m0P_!w=c!`4@&&cb zdHn~ae_3Xqa&e`XKyR3RO69n#w?O;R5j@H|NlWPl=p?g?l(Jm?4Qp4Ky`z%l$RbrO zM}DEErE~|9XDoS3Jzc7B2U=(LA%56D#yi1Vj9cK3Fa~#dgIwSP-s|V+YnM6w9GO10 zwi_oOX8Z^80Py8r7*@Bq|BsXGpqlQ;tm Llb`|wlQaapH$oH4 diff --git a/build/modules/signals.o b/build/modules/signals.o index 510666823c8e4564eef1c1a45e697fadad6e6635..a5f5a547c83b81620b630d645497399196ed9daf 100644 GIT binary patch delta 831 zcmZ9KKWGzS7{k4?%P>+KPIsr$a%+Bj6$~Ef!0WAQcy< zK%T`x3SF$=(sB+iVlqi^G2oC-qg;!aJ z{5YJtN%4p58pVsb@8fg>9&7I~rH-DNie+@dY4 z<~4tj*|ss;#&$lS&lu(d`ij%G=Eu_Z*GT$k*qU0{uzh|aZF7`_Mw=W**Vg=28ZH_3 z1%BI_ejrl_=o7+%rZ>1-i0CqUh3HX6IuDGgtnjq7j?U7;a|SO8cMM(?zF_eAv7~Uu?u%_3wuwDQb6sp~*gF_F0XK#IG;AG9u1`&@x|-^E>P9rg&|Rl1 zXm}AFpz8(HL#7naKEl#E?VwkRER{yBe47`f?9}-G|3U}bWzA>BUN!75^vjx`i+yO= tT~MWkkL3wGtISaz-AY8A*sH!9BNv1Db2JUEU9`^UuzB)Cyi&VH{{SbBlN)gFo zaSHYyTomabx(Jpx>0p~hEG{}Jc1ouf3RMTqA_{#cgZD0n`+xuW&*5^n=eFlw*Hh7A z>IR{na-xsvyA(}jx`R}Q%i8UoP{(I9F6xw0YDg*dR&>VnxW)osq3hUWpU$JpZF-7k zR`WOUtQ);eY-9s^gM(~9ySQL$%<{?M--c@v^R}itSh0P+B}o$$oBCUvM#t9t#ER9c z27Qhnwx&HKa{)!DV zINla7^22;jSYUXP_?-8xJquQ0iPo@E@cF02eK)K5 z7&MQXqxrq`E*kV5T8`#VLe~x2z^0?QDl{_a47yIh{dtE5tzx?9Qv=PSrYas5L)ynd zahW{KyCHo+#|`KulBIx-P%ACd1MHMS>u&;;@=YF+u*t#y|H3nDly!1c=ry!Fjj!c2 uuZps2_}d__O|S6C^NG>%LfVSl@vQ_o=$^eqX>euAx|~7l%viKgnWcY+%YHln diff --git a/build/uFTP b/build/uFTP index ab3ecd7608a6c37de2f940b2a809a016360cb9d9..8d16368fd5c4534026fe4285020180ae53dec8de 100755 GIT binary patch literal 192096 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%0A;n_exMXhfxl;p$Y1C2Qb4pD_j!fRgSfNAb zzgF04TY9bUc@nYCpRF`fBdtmbleaz)x|>-ayt@L^y88oV+#+A{{KK5GJOGk1!GM%y zi$ifj^YWKWl~d}b<$oI$1kwDFVtaT_#hF+_Abas^4L(Z|1f42rq}4sTCIPb#vNB*& z@}0zdVo1!0O02OQO)~=MNu?>AN z%4PZHIgfe0+9W0_u~14+N1P@C%I?OwVR`5Xuy~M6^cnA1HgNqkTzOnEbU6po$`({U zOOUj8ebQA!HYE(*y4XZzRm2}9#l(+Nf*ul|dSfN|Sj8j=SU!YNk#%YFN@=&8eNaS} za?1Qs7y>XdvobIMU^br^z~$`E^M?Gh@h(N)+iJ<`k3-1T%4!D9#IEt>pg9K`nwXYW zXY=iaQZz>tDfKbwq6o8$%dT<*4_`;_v13we*9mj8$xS>;CKHpY(&+S#4x&M^Mo7CV zPy6|h`)T7S_2`SK@uIJl+MFxav zgpmG{YT^qSD;6;g@Hld@;CZMVq8QxqQlFVeY(?0SK;;s#cjd{)4Z+ zvcnK3zzN^0JOfT%XM#7CutaRK37YewNXVQO60|7kq=;6T){gQ>g^}JLY+HXvRG$9n z3aBFWJTJ@Fu;9Hgc?7%?!*N|zUJrp25xJXi&qp=+iJNrrninXiiV0l#D)FWe$3%XS zF8Bmxr~iES&s0pub_XDz@0cwUIRP7Pc+6^tB_c2XG9VaP9`~H^pUbK5Cg4P=<1tON3zEZ`ZShRX?gn>6ZCCXW_1o=|dVl*~tt3;QDg-1(sq1 zNPe7pXOolfDEn*W>kF{rvj0}NzMIF-^!&BTgu#3V@tzLbL#hkhdNP2#l|wUaafSzB zoggrawv(qtd@CQq*i5Xntqg2O!#mG^%Nzx3S8{Zq~B2d-XuGd zC{w80&7DFX|5yh~m6n6_lQz>7qX-jodS_&u4KW9fE53*JKfEM37IR@_)Ld<$xgXLy z>C+$_&q0c$x8L^!ej37c;B($isCP#6HVJ*hmtPk?$VAK~DsZ3x{}%^F%%R%^|IQ5} zBj)e|%{kcQ7IR62n=5l_$lKaOFUdYpQQF_8683-IgcWmCd;<~^A%7EYcAxXq#u&1U zop7ME{fPI`+pjh@;1*>51o?&bf9xNX=i>jL9yqs$qYpj?O7r||zF#@xijPUs=jB3R zE`cp?<1OsF9BXgmqwE9e3ve`I%iHrw`?hf`_9>T#@R(=5|NY38xA}$kZOikqTY7$C zpOz39t6|IAJVg6`l#?dm7#;d<&tI-#0w*z_ENj2bSG4cDN)0aa?`MP%-_Nz*<~7l-)$J6 zxyQEKKL4#$-sYLw_rs+MOCQB2O66@nYWlW;8vK;&hhuKYrQ~q0G#~5q9mKaXzWr?9 ze<_536hd3x=C|Jde_8(TSodssn+H4O@|LkyjcmPEju6HSEltaFzU(ld_TO*6DD~gc z`D&?r8Yj#FI<_AB*mCxP{7Zn@YV0}j9xne5o5;sc*&hENuAkG7(#MwPW9{^@+HBvD zc4Gg}Kd<5XZ?THWPZ<}&oXaqH&Lsr>nhhwaD1U85`Tjgr{4Fp#xu;y$4_A~w!-2WK z!+CV}DVN9JkrrZte;09r*9%IFwdL*m=8F1X{#(@k$8E*@*mCxP&m|V)^E8+LG^aX4 o)aL3G`wRBP>Q4T7^fN^Dfgiv>NXMF1e)S)y{7R|8rH|s@0efCktN;K2 literal 192040 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 diff --git a/ftpCommandElaborate.c b/ftpCommandElaborate.c index 900fccf..239055e 100644 --- a/ftpCommandElaborate.c +++ b/ftpCommandElaborate.c @@ -42,6 +42,7 @@ #include "library/configRead.h" #include "library/openSsl.h" #include "library/connection.h" +#include "library/dynamicMemory.h" #include "ftpCommandsElaborate.h" @@ -54,7 +55,7 @@ int parseCommandUser(ftpDataType * data, int socketId) if (strlen(theUserName) >= 1) { - setDynamicStringDataType(&data->clients[socketId].login.name, theUserName, strlen(theUserName)); + setDynamicStringDataType(&data->clients[socketId].login.name, theUserName, strlen(theUserName), &data->clients[socketId].memoryTable); returnCode = socketPrintf(data, socketId, "s", "331 User ok, Waiting for the password.\r\n"); if (returnCode <= 0) @@ -179,10 +180,10 @@ int parseCommandPass(ftpDataType * data, int socketId) } else { - setDynamicStringDataType(&data->clients[socketId].login.password, thePass, strlen(thePass)); - setDynamicStringDataType(&data->clients[socketId].login.absolutePath, ((usersParameters_DataType *) data->ftpParameters.usersVector.Data[searchUserNameIndex])->homePath, strlen(((usersParameters_DataType *) data->ftpParameters.usersVector.Data[searchUserNameIndex])->homePath)); - setDynamicStringDataType(&data->clients[socketId].login.homePath, ((usersParameters_DataType *) data->ftpParameters.usersVector.Data[searchUserNameIndex])->homePath, strlen(((usersParameters_DataType *) data->ftpParameters.usersVector.Data[searchUserNameIndex])->homePath)); - setDynamicStringDataType(&data->clients[socketId].login.ftpPath, "/", strlen("/")); + setDynamicStringDataType(&data->clients[socketId].login.password, thePass, strlen(thePass), &data->clients[socketId].memoryTable); + setDynamicStringDataType(&data->clients[socketId].login.absolutePath, ((usersParameters_DataType *) data->ftpParameters.usersVector.Data[searchUserNameIndex])->homePath, strlen(((usersParameters_DataType *) data->ftpParameters.usersVector.Data[searchUserNameIndex])->homePath), &data->clients[socketId].memoryTable); + setDynamicStringDataType(&data->clients[socketId].login.homePath, ((usersParameters_DataType *) data->ftpParameters.usersVector.Data[searchUserNameIndex])->homePath, strlen(((usersParameters_DataType *) data->ftpParameters.usersVector.Data[searchUserNameIndex])->homePath), &data->clients[socketId].memoryTable); + setDynamicStringDataType(&data->clients[socketId].login.ftpPath, "/", strlen("/"), &data->clients[socketId].memoryTable); data->clients[socketId].login.ownerShip.ownerShipSet = ((usersParameters_DataType *) data->ftpParameters.usersVector.Data[searchUserNameIndex])->ownerShip.ownerShipSet; data->clients[socketId].login.ownerShip.gid = ((usersParameters_DataType *) data->ftpParameters.usersVector.Data[searchUserNameIndex])->ownerShip.gid; @@ -532,7 +533,6 @@ int parseCommandAbor(ftpDataType * data, int socketId) int returnCode; if (data->clients[socketId].workerData.threadIsAlive == 1) { - void *pReturn; if (data->clients[socketId].workerData.threadIsAlive == 1) { pthread_cancel(data->clients[socketId].workerData.workerThread); @@ -579,7 +579,7 @@ int parseCommandList(ftpDataType * data, int socketId) char *theNameToList; theNameToList = getFtpCommandArg("LIST", data->clients[socketId].theCommandReceived, 1); - getFtpCommandArgWithOptions("LIST", data->clients[socketId].theCommandReceived, &data->clients[socketId].workerData.ftpCommand); + getFtpCommandArgWithOptions("LIST", data->clients[socketId].theCommandReceived, &data->clients[socketId].workerData.ftpCommand, &data->clients[socketId].workerData.memoryTable); if (data->clients[socketId].workerData.ftpCommand.commandArgs.text != NULL) printf("\nLIST COMMAND ARG: %s", data->clients[socketId].workerData.ftpCommand.commandArgs.text); @@ -587,19 +587,19 @@ int parseCommandList(ftpDataType * data, int socketId) printf("\nLIST COMMAND OPS: %s", data->clients[socketId].workerData.ftpCommand.commandOps.text); printf("\ntheNameToList: %s", theNameToList); - cleanDynamicStringDataType(&data->clients[socketId].workerData.ftpCommand.commandArgs, 0); - cleanDynamicStringDataType(&data->clients[socketId].workerData.ftpCommand.commandOps, 0); - cleanDynamicStringDataType(&data->clients[socketId].listPath, 0); + cleanDynamicStringDataType(&data->clients[socketId].workerData.ftpCommand.commandArgs, 0, &data->clients[socketId].workerData.memoryTable); + cleanDynamicStringDataType(&data->clients[socketId].workerData.ftpCommand.commandOps, 0, &data->clients[socketId].workerData.memoryTable); + cleanDynamicStringDataType(&data->clients[socketId].listPath, 0, &data->clients[socketId].memoryTable); if (strlen(theNameToList) > 0) { - isSafePath = getSafePath(&data->clients[socketId].listPath, theNameToList, &data->clients[socketId].login); + isSafePath = getSafePath(&data->clients[socketId].listPath, theNameToList, &data->clients[socketId].login, &data->clients[socketId].memoryTable); } if (isSafePath == 0) { - cleanDynamicStringDataType(&data->clients[socketId].listPath, 0); - setDynamicStringDataType(&data->clients[socketId].listPath, data->clients[socketId].login.absolutePath.text, data->clients[socketId].login.absolutePath.textLen); + cleanDynamicStringDataType(&data->clients[socketId].listPath, 0, &data->clients[socketId].memoryTable); + setDynamicStringDataType(&data->clients[socketId].listPath, data->clients[socketId].login.absolutePath.text, data->clients[socketId].login.absolutePath.textLen, &data->clients[socketId].memoryTable); } pthread_mutex_trylock(&data->clients[socketId].workerData.conditionMutex); @@ -616,7 +616,7 @@ int parseCommandNlst(ftpDataType * data, int socketId) int isSafePath = 0; char *theNameToNlist; theNameToNlist = getFtpCommandArg("NLIST", data->clients[socketId].theCommandReceived, 1); - cleanDynamicStringDataType(&data->clients[socketId].nlistPath, 0); + cleanDynamicStringDataType(&data->clients[socketId].nlistPath, 0, &data->clients[socketId].memoryTable); printf("\nNLIST COMMAND ARG: %s", data->clients[socketId].workerData.ftpCommand.commandArgs.text); printf("\nNLIST COMMAND OPS: %s", data->clients[socketId].workerData.ftpCommand.commandOps.text); @@ -624,13 +624,13 @@ int parseCommandNlst(ftpDataType * data, int socketId) if (strlen(theNameToNlist) > 0) { - isSafePath = getSafePath(&data->clients[socketId].nlistPath, theNameToNlist, &data->clients[socketId].login); + isSafePath = getSafePath(&data->clients[socketId].nlistPath, theNameToNlist, &data->clients[socketId].login, &data->clients[socketId].memoryTable); } if (isSafePath == 0) { - cleanDynamicStringDataType(&data->clients[socketId].nlistPath, 0); - setDynamicStringDataType(&data->clients[socketId].nlistPath, data->clients[socketId].login.absolutePath.text, data->clients[socketId].login.absolutePath.textLen); + cleanDynamicStringDataType(&data->clients[socketId].nlistPath, 0, &data->clients[socketId].memoryTable); + setDynamicStringDataType(&data->clients[socketId].nlistPath, data->clients[socketId].login.absolutePath.text, data->clients[socketId].login.absolutePath.textLen, &data->clients[socketId].memoryTable); } pthread_mutex_trylock(&data->clients[socketId].workerData.conditionMutex); @@ -648,11 +648,11 @@ int parseCommandRetr(ftpDataType * data, int socketId) char *theNameToRetr; theNameToRetr = getFtpCommandArg("RETR", data->clients[socketId].theCommandReceived, 0); - cleanDynamicStringDataType(&data->clients[socketId].fileToRetr, 0); + cleanDynamicStringDataType(&data->clients[socketId].fileToRetr, 0, &data->clients[socketId].memoryTable); if (strlen(theNameToRetr) > 0) { - isSafePath = getSafePath(&data->clients[socketId].fileToRetr, theNameToRetr, &data->clients[socketId].login); + isSafePath = getSafePath(&data->clients[socketId].fileToRetr, theNameToRetr, &data->clients[socketId].login, &data->clients[socketId].memoryTable); } if (isSafePath == 1 && @@ -679,11 +679,11 @@ int parseCommandStor(ftpDataType * data, int socketId) int isSafePath = 0; char *theNameToStor; theNameToStor = getFtpCommandArg("STOR", data->clients[socketId].theCommandReceived, 0); - cleanDynamicStringDataType(&data->clients[socketId].fileToStor, 0); + cleanDynamicStringDataType(&data->clients[socketId].fileToStor, 0, &data->clients[socketId].memoryTable); if (strlen(theNameToStor) > 0) { - isSafePath = getSafePath(&data->clients[socketId].fileToStor, theNameToStor, &data->clients[socketId].login); + isSafePath = getSafePath(&data->clients[socketId].fileToStor, theNameToStor, &data->clients[socketId].login, &data->clients[socketId].memoryTable); } if (isSafePath == 1) @@ -710,41 +710,42 @@ int parseCommandCwd(ftpDataType * data, int socketId) int returnCode; char *thePath; - cleanDynamicStringDataType(&absolutePathPrevious, 1); - cleanDynamicStringDataType(&ftpPathPrevious, 1); - cleanDynamicStringDataType(&theSafePath, 1); + cleanDynamicStringDataType(&absolutePathPrevious, 1, &data->clients[socketId].memoryTable); + cleanDynamicStringDataType(&ftpPathPrevious, 1, &data->clients[socketId].memoryTable); + cleanDynamicStringDataType(&theSafePath, 1, &data->clients[socketId].memoryTable); thePath = getFtpCommandArg("CWD", data->clients[socketId].theCommandReceived, 0); if (strlen(thePath) > 0) { - isSafePath = getSafePath(&theSafePath, thePath, &data->clients[socketId].login); + //printf("Memory data address 1st call : %lld", &data->clients[socketId].memoryTable); + isSafePath = getSafePath(&theSafePath, thePath, &data->clients[socketId].login, &data->clients[socketId].memoryTable); } if (isSafePath == 1) { //printf("\n The Path requested for CWD IS:%s", theSafePath.text); - setDynamicStringDataType(&absolutePathPrevious, data->clients[socketId].login.absolutePath.text, data->clients[socketId].login.absolutePath.textLen); - setDynamicStringDataType(&ftpPathPrevious, data->clients[socketId].login.ftpPath.text, data->clients[socketId].login.ftpPath.textLen); + setDynamicStringDataType(&absolutePathPrevious, data->clients[socketId].login.absolutePath.text, data->clients[socketId].login.absolutePath.textLen, &data->clients[socketId].memoryTable); + setDynamicStringDataType(&ftpPathPrevious, data->clients[socketId].login.ftpPath.text, data->clients[socketId].login.ftpPath.textLen, &data->clients[socketId].memoryTable); if (theSafePath.text[0] != '/') { if (data->clients[socketId].login.absolutePath.text[data->clients[socketId].login.absolutePath.textLen-1] != '/') - appendToDynamicStringDataType(&data->clients[socketId].login.absolutePath, "/", 1); + appendToDynamicStringDataType(&data->clients[socketId].login.absolutePath, "/", 1, &data->clients[socketId].memoryTable); if (data->clients[socketId].login.ftpPath.text[data->clients[socketId].login.ftpPath.textLen-1] != '/') - appendToDynamicStringDataType(&data->clients[socketId].login.ftpPath, "/", 1); + appendToDynamicStringDataType(&data->clients[socketId].login.ftpPath, "/", 1, &data->clients[socketId].memoryTable); - appendToDynamicStringDataType(&data->clients[socketId].login.absolutePath, theSafePath.text, theSafePath.textLen); - appendToDynamicStringDataType(&data->clients[socketId].login.ftpPath, theSafePath.text, theSafePath.textLen); + appendToDynamicStringDataType(&data->clients[socketId].login.absolutePath, theSafePath.text, theSafePath.textLen, &data->clients[socketId].memoryTable); + appendToDynamicStringDataType(&data->clients[socketId].login.ftpPath, theSafePath.text, theSafePath.textLen, &data->clients[socketId].memoryTable); } else if (theSafePath.text[0] == '/') { - cleanDynamicStringDataType(&data->clients[socketId].login.ftpPath, 0); - cleanDynamicStringDataType(&data->clients[socketId].login.absolutePath, 0); + cleanDynamicStringDataType(&data->clients[socketId].login.ftpPath, 0, &data->clients[socketId].memoryTable); + cleanDynamicStringDataType(&data->clients[socketId].login.absolutePath, 0, &data->clients[socketId].memoryTable); - setDynamicStringDataType(&data->clients[socketId].login.ftpPath, theSafePath.text, theSafePath.textLen); - setDynamicStringDataType(&data->clients[socketId].login.absolutePath, data->clients[socketId].login.homePath.text, data->clients[socketId].login.homePath.textLen); + setDynamicStringDataType(&data->clients[socketId].login.ftpPath, theSafePath.text, theSafePath.textLen, &data->clients[socketId].memoryTable); + setDynamicStringDataType(&data->clients[socketId].login.absolutePath, data->clients[socketId].login.homePath.text, data->clients[socketId].login.homePath.textLen, &data->clients[socketId].memoryTable); if (strlen(theSafePath.text)> 0) { @@ -757,7 +758,7 @@ int parseCommandCwd(ftpDataType * data, int socketId) } if (strlen(theDirPointer) > 0) - appendToDynamicStringDataType(&data->clients[socketId].login.absolutePath, theDirPointer, strlen(theDirPointer)); + appendToDynamicStringDataType(&data->clients[socketId].login.absolutePath, theDirPointer, strlen(theDirPointer), &data->clients[socketId].memoryTable); } } @@ -767,14 +768,14 @@ int parseCommandCwd(ftpDataType * data, int socketId) } else { - setDynamicStringDataType(&data->clients[socketId].login.absolutePath, absolutePathPrevious.text, absolutePathPrevious.textLen); - setDynamicStringDataType(&data->clients[socketId].login.ftpPath, ftpPathPrevious.text, ftpPathPrevious.textLen); + setDynamicStringDataType(&data->clients[socketId].login.absolutePath, absolutePathPrevious.text, absolutePathPrevious.textLen, &data->clients[socketId].memoryTable); + setDynamicStringDataType(&data->clients[socketId].login.ftpPath, ftpPathPrevious.text, ftpPathPrevious.textLen, &data->clients[socketId].memoryTable); returnCode = socketPrintf(data, socketId, "sss", "530 Can't change directory to ", data->clients[socketId].login.absolutePath.text, ": No such file or directory\r\n"); } - cleanDynamicStringDataType(&absolutePathPrevious, 0); - cleanDynamicStringDataType(&ftpPathPrevious, 0); - cleanDynamicStringDataType(&theSafePath, 0); + cleanDynamicStringDataType(&absolutePathPrevious, 0, &data->clients[socketId].memoryTable); + cleanDynamicStringDataType(&ftpPathPrevious, 0, &data->clients[socketId].memoryTable); + cleanDynamicStringDataType(&theSafePath, 0, &data->clients[socketId].memoryTable); if (returnCode <= 0) return FTP_COMMAND_PROCESSED_WRITE_ERROR; @@ -784,9 +785,9 @@ int parseCommandCwd(ftpDataType * data, int socketId) } else { - cleanDynamicStringDataType(&absolutePathPrevious, 0); - cleanDynamicStringDataType(&ftpPathPrevious, 0); - cleanDynamicStringDataType(&theSafePath, 0); + cleanDynamicStringDataType(&absolutePathPrevious, 0, &data->clients[socketId].memoryTable); + cleanDynamicStringDataType(&ftpPathPrevious, 0, &data->clients[socketId].memoryTable); + cleanDynamicStringDataType(&theSafePath, 0, &data->clients[socketId].memoryTable); return FTP_COMMAND_NOT_RECONIZED; } } @@ -843,9 +844,9 @@ int parseCommandMkd(ftpDataType * data, int socketId) theDirectoryFilename = getFtpCommandArg("MKD", data->clients[socketId].theCommandReceived, 0); - cleanDynamicStringDataType(&mkdFileName, 1); + cleanDynamicStringDataType(&mkdFileName, 1, &data->clients[socketId].memoryTable); - isSafePath = getSafePath(&mkdFileName, theDirectoryFilename, &data->clients[socketId].login); + isSafePath = getSafePath(&mkdFileName, theDirectoryFilename, &data->clients[socketId].login, &data->clients[socketId].memoryTable); if (isSafePath == 1) { @@ -885,11 +886,11 @@ int parseCommandMkd(ftpDataType * data, int socketId) } else { - cleanDynamicStringDataType(&mkdFileName, 0); + cleanDynamicStringDataType(&mkdFileName, 0, &data->clients[socketId].memoryTable); functionReturnCode = FTP_COMMAND_NOT_RECONIZED; } - cleanDynamicStringDataType(&mkdFileName, 0); + cleanDynamicStringDataType(&mkdFileName, 0, &data->clients[socketId].memoryTable); return functionReturnCode; } @@ -915,8 +916,8 @@ int parseCommandDele(ftpDataType * data, int socketId) theFileToDelete = getFtpCommandArg("DELE", data->clients[socketId].theCommandReceived, 0); - cleanDynamicStringDataType(&deleFileName, 1); - isSafePath = getSafePath(&deleFileName, theFileToDelete, &data->clients[socketId].login); + cleanDynamicStringDataType(&deleFileName, 1, &data->clients[socketId].memoryTable); + isSafePath = getSafePath(&deleFileName, theFileToDelete, &data->clients[socketId].login, &data->clients[socketId].memoryTable); if (isSafePath == 1) { @@ -953,7 +954,7 @@ int parseCommandDele(ftpDataType * data, int socketId) functionReturnCode = FTP_COMMAND_NOT_RECONIZED; } - cleanDynamicStringDataType(&deleFileName, 0); + cleanDynamicStringDataType(&deleFileName, 0, &data->clients[socketId].memoryTable); return functionReturnCode; } @@ -1003,8 +1004,8 @@ int parseCommandRmd(ftpDataType * data, int socketId) dynamicStringDataType rmdFileName; theDirectoryFilename = getFtpCommandArg("RMD", data->clients[socketId].theCommandReceived, 0); - cleanDynamicStringDataType(&rmdFileName, 1); - isSafePath = getSafePath(&rmdFileName, theDirectoryFilename, &data->clients[socketId].login); + cleanDynamicStringDataType(&rmdFileName, 1, &data->clients[socketId].memoryTable); + isSafePath = getSafePath(&rmdFileName, theDirectoryFilename, &data->clients[socketId].login, &data->clients[socketId].memoryTable); if (isSafePath == 1) { @@ -1040,7 +1041,7 @@ int parseCommandRmd(ftpDataType * data, int socketId) functionReturnCode = FTP_COMMAND_NOT_RECONIZED; } - cleanDynamicStringDataType(&rmdFileName, 0); + cleanDynamicStringDataType(&rmdFileName, 0, &data->clients[socketId].memoryTable); return functionReturnCode; } @@ -1055,9 +1056,9 @@ int parseCommandSize(ftpDataType * data, int socketId) theFileName = getFtpCommandArg("SIZE", data->clients[socketId].theCommandReceived, 0); - cleanDynamicStringDataType(&getSizeFromFileName, 1); + cleanDynamicStringDataType(&getSizeFromFileName, 1, &data->clients[socketId].memoryTable); - isSafePath = getSafePath(&getSizeFromFileName, theFileName, &data->clients[socketId].login); + isSafePath = getSafePath(&getSizeFromFileName, theFileName, &data->clients[socketId].login, &data->clients[socketId].memoryTable); if (isSafePath == 1) { @@ -1076,7 +1077,7 @@ int parseCommandSize(ftpDataType * data, int socketId) { returnCode = socketPrintf(data, socketId, "s", "550 Can't check for file existence\r\n"); } - cleanDynamicStringDataType(&getSizeFromFileName, 0); + cleanDynamicStringDataType(&getSizeFromFileName, 0, &data->clients[socketId].memoryTable); if (returnCode <= 0) return FTP_COMMAND_PROCESSED_WRITE_ERROR; @@ -1091,9 +1092,9 @@ int parseCommandRnfr(ftpDataType * data, int socketId) char *theRnfrFileName; theRnfrFileName = getFtpCommandArg("RNFR", data->clients[socketId].theCommandReceived, 0); - cleanDynamicStringDataType(&data->clients[socketId].renameFromFile, 0); + cleanDynamicStringDataType(&data->clients[socketId].renameFromFile, 0, &data->clients[socketId].memoryTable); - isSafePath = getSafePath(&data->clients[socketId].renameFromFile, theRnfrFileName, &data->clients[socketId].login); + isSafePath = getSafePath(&data->clients[socketId].renameFromFile, theRnfrFileName, &data->clients[socketId].login, &data->clients[socketId].memoryTable); if (isSafePath == 1&& (FILE_IsFile(data->clients[socketId].renameFromFile.text) == 1 || @@ -1126,9 +1127,9 @@ int parseCommandRnto(ftpDataType * data, int socketId) char *theRntoFileName; theRntoFileName = getFtpCommandArg("RNTO", data->clients[socketId].theCommandReceived, 0); - cleanDynamicStringDataType(&data->clients[socketId].renameToFile, 0); + cleanDynamicStringDataType(&data->clients[socketId].renameToFile, 0, &data->clients[socketId].memoryTable); - isSafePath = getSafePath(&data->clients[socketId].renameToFile, theRntoFileName, &data->clients[socketId].login); + isSafePath = getSafePath(&data->clients[socketId].renameToFile, theRntoFileName, &data->clients[socketId].login, &data->clients[socketId].memoryTable); if (isSafePath == 1 && data->clients[socketId].renameFromFile.textLen > 0) @@ -1179,7 +1180,7 @@ int parseCommandCdup(ftpDataType * data, int socketId) if(strncmp(data->clients[socketId].login.absolutePath.text, data->clients[socketId].login.homePath.text, data->clients[socketId].login.homePath.textLen) != 0) { - setDynamicStringDataType(&data->clients[socketId].login.absolutePath, data->clients[socketId].login.homePath.text, data->clients[socketId].login.homePath.textLen); + setDynamicStringDataType(&data->clients[socketId].login.absolutePath, data->clients[socketId].login.homePath.text, data->clients[socketId].login.homePath.textLen, &data->clients[socketId].memoryTable); } returnCode = socketPrintf(data, socketId, "sss", "250 OK. Current directory is ", data->clients[socketId].login.ftpPath.text, "\r\n"); @@ -1303,7 +1304,7 @@ char *getFtpCommandArg(char * theCommand, char *theCommandString, int skipArgs) return toReturn; } -int getFtpCommandArgWithOptions(char * theCommand, char *theCommandString, ftpCommandDataType *ftpCommand) +int getFtpCommandArgWithOptions(char * theCommand, char *theCommandString, ftpCommandDataType *ftpCommand, DYNMEM_MemoryTable_DataType **memoryTable) { #define CASE_ARG_MAIN 0 #define CASE_ARG_SECONDARY 1 @@ -1369,10 +1370,10 @@ int getFtpCommandArgWithOptions(char * theCommand, char *theCommandString, ftpCo } if (argMainIndex > 0) - setDynamicStringDataType(&ftpCommand->commandArgs, argMain, argMainIndex); + setDynamicStringDataType(&ftpCommand->commandArgs, argMain, argMainIndex, &*memoryTable); if (argSecondaryIndex > 0) - setDynamicStringDataType(&ftpCommand->commandOps, argSecondary, argSecondaryIndex); + setDynamicStringDataType(&ftpCommand->commandOps, argSecondary, argSecondaryIndex, &*memoryTable); return 1; } diff --git a/ftpCommandsElaborate.h b/ftpCommandsElaborate.h index a4a31cc..04247fd 100644 --- a/ftpCommandsElaborate.h +++ b/ftpCommandsElaborate.h @@ -84,7 +84,7 @@ int parseCommandRnto(ftpDataType * data, int socketId); long long int writeRetrFile(ftpDataType * data, int theSocketId, long long int startFrom, FILE *retrFP); char *getFtpCommandArg(char * theCommand, char *theCommandString, int skipArgs); -int getFtpCommandArgWithOptions(char * theCommand, char *theCommandString, ftpCommandDataType *ftpCommand); +int getFtpCommandArgWithOptions(char * theCommand, char *theCommandString, ftpCommandDataType *ftpCommand, DYNMEM_MemoryTable_DataType **memoryTable); int setPermissions(char * permissionsCommand, char * basePath, ownerShip_DataType ownerShip); #ifdef __cplusplus diff --git a/ftpData.c b/ftpData.c index c63c812..49b1ce4 100644 --- a/ftpData.c +++ b/ftpData.c @@ -37,8 +37,9 @@ #include "library/configRead.h" #include "library/fileManagement.h" #include "library/connection.h" +#include "library/dynamicMemory.h" -void cleanDynamicStringDataType(dynamicStringDataType *dynamicString, int init) +void cleanDynamicStringDataType(dynamicStringDataType *dynamicString, int init, DYNMEM_MemoryTable_DataType **memoryTable) { if (init == 1) { @@ -50,7 +51,7 @@ void cleanDynamicStringDataType(dynamicStringDataType *dynamicString, int init) if (dynamicString->textLen != 0) { if (dynamicString->text != 0) { - free(dynamicString->text); + DYNMEM_free(dynamicString->text, &*memoryTable); } } @@ -58,38 +59,43 @@ void cleanDynamicStringDataType(dynamicStringDataType *dynamicString, int init) } } -void cleanLoginData(loginDataType *loginData, int init) +void cleanLoginData(loginDataType *loginData, int init, DYNMEM_MemoryTable_DataType **memoryTable) { loginData->userLoggedIn = 0; - cleanDynamicStringDataType(&loginData->homePath, init); - cleanDynamicStringDataType(&loginData->ftpPath, init); - cleanDynamicStringDataType(&loginData->name, init); - cleanDynamicStringDataType(&loginData->password, init); - cleanDynamicStringDataType(&loginData->absolutePath, init); + cleanDynamicStringDataType(&loginData->homePath, init, &*memoryTable); + cleanDynamicStringDataType(&loginData->ftpPath, init, &*memoryTable); + cleanDynamicStringDataType(&loginData->name, init, &*memoryTable); + cleanDynamicStringDataType(&loginData->password, init, &*memoryTable); + cleanDynamicStringDataType(&loginData->absolutePath, init, &*memoryTable); } -void setDynamicStringDataType(dynamicStringDataType *dynamicString, char *theString, int stringLen) +void setDynamicStringDataType(dynamicStringDataType *dynamicString, char *theString, int stringLen, DYNMEM_MemoryTable_DataType **memoryTable) { if (dynamicString->textLen == 0) { - dynamicString->text = (char *) malloc ((sizeof(char) * stringLen) + 1); + //printf("\nMemory data address before memset call : %lld", memoryTable); + dynamicString->text = (char *) DYNMEM_malloc (((sizeof(char) * stringLen) + 1), &*memoryTable); + //printf("\nMemory data address after memset call : %lld", memoryTable); memset(dynamicString->text, 0, stringLen + 1); memcpy(dynamicString->text, theString, stringLen); dynamicString->textLen = stringLen; } else { - if(stringLen != dynamicString->textLen) { - dynamicString->text = (char *) realloc (dynamicString->text, (sizeof(char) * stringLen) + 1); + if(stringLen != dynamicString->textLen) + { + dynamicString->text = (char *) DYNMEM_realloc (dynamicString->text, ((sizeof(char) * stringLen) + 1), &*memoryTable); } memset(dynamicString->text, 0, stringLen + 1); memcpy(dynamicString->text, theString, stringLen); dynamicString->textLen = stringLen; } + + //printf("\ndynamicString->text = %lld", dynamicString->text); } -int getSafePath(dynamicStringDataType *safePath, char *theDirectoryName, loginDataType *loginData) +int getSafePath(dynamicStringDataType *safePath, char *theDirectoryName, loginDataType *loginData, DYNMEM_MemoryTable_DataType **memoryTable) { #define STRING_SIZE 4096 int theLen, i; @@ -158,30 +164,36 @@ int getSafePath(dynamicStringDataType *safePath, char *theDirectoryName, loginDa while (theDirectoryNamePointer[0] == '/') theDirectoryNamePointer++; - setDynamicStringDataType(safePath, loginData->homePath.text, loginData->homePath.textLen); - appendToDynamicStringDataType(safePath, theDirectoryNamePointer, strlen(theDirectoryNamePointer)); + //printf("\nMemory data address 2nd call : %lld", memoryTable); + setDynamicStringDataType(safePath, loginData->homePath.text, loginData->homePath.textLen, &*memoryTable); + //printf("\nMemory data address 3rd call : %lld", memoryTable); + appendToDynamicStringDataType(safePath, theDirectoryNamePointer, strlen(theDirectoryNamePointer), &*memoryTable); } else { - setDynamicStringDataType(safePath, loginData->absolutePath.text, loginData->absolutePath.textLen); + setDynamicStringDataType(safePath, loginData->absolutePath.text, loginData->absolutePath.textLen, &*memoryTable); if (loginData->absolutePath.text[loginData->absolutePath.textLen-1] != '/') { - appendToDynamicStringDataType(safePath, "/", 1); + appendToDynamicStringDataType(safePath, "/", 1, &*memoryTable); } - appendToDynamicStringDataType(safePath, theDirectoryName, strlen(theDirectoryName)); + appendToDynamicStringDataType(safePath, theDirectoryName, strlen(theDirectoryName), &*memoryTable); } return 1; } -void appendToDynamicStringDataType(dynamicStringDataType *dynamicString, char *theString, int stringLen) +void appendToDynamicStringDataType(dynamicStringDataType *dynamicString, char *theString, int stringLen, DYNMEM_MemoryTable_DataType **memoryTable) { + //printf("\nRealloc dynamicString->text = %lld", dynamicString->text); int theNewSize = dynamicString->textLen + stringLen; - dynamicString->text = realloc(dynamicString->text, theNewSize + 1); + + dynamicString->text = DYNMEM_realloc(dynamicString->text, theNewSize + 1, &*memoryTable); + memset(dynamicString->text+dynamicString->textLen, 0, stringLen+1); memcpy(dynamicString->text+dynamicString->textLen, theString, stringLen); + dynamicString->text[theNewSize] = '\0'; dynamicString->textLen = theNewSize; } @@ -220,7 +232,7 @@ void setRandomicPort(ftpDataType *data, int socketPosition) //printf("data->clients[%d].workerData.connectionPort = %d", socketPosition, data->clients[socketPosition].workerData.connectionPort); } -int writeListDataInfoToSocket(ftpDataType *ftpData, int clientId, int *filesNumber, int commandType) +int writeListDataInfoToSocket(ftpDataType *ftpData, int clientId, int *filesNumber, int commandType, DYNMEM_MemoryTable_DataType **memoryTable) { int i, x, returnCode; int fileAndFoldersCount = 0; @@ -286,7 +298,7 @@ int writeListDataInfoToSocket(ftpDataType *ftpData, int clientId, int *filesNumb if (strlen(data.fileNameNoPath) > 0) { - data.finalStringPath = (char *) malloc (strlen(data.fileNameNoPath)+1); + data.finalStringPath = (char *) DYNMEM_malloc (strlen(data.fileNameNoPath)+1, &*memoryTable); strcpy(data.finalStringPath, data.fileNameNoPath); } @@ -296,12 +308,12 @@ int writeListDataInfoToSocket(ftpDataType *ftpData, int clientId, int *filesNumb { int len = 0; data.isLink = 1; - data.linkPath = (char *) malloc (CLIENT_COMMAND_STRING_SIZE*sizeof(char)); + data.linkPath = (char *) DYNMEM_malloc (CLIENT_COMMAND_STRING_SIZE*sizeof(char), &*memoryTable); if ((len = readlink (fileList[i], data.linkPath, CLIENT_COMMAND_STRING_SIZE)) > 0) { data.linkPath[len] = 0; - FILE_AppendToString(&data.finalStringPath, " -> "); - FILE_AppendToString(&data.finalStringPath, data.linkPath); + FILE_AppendToString(&data.finalStringPath, " -> ", &*memoryTable); + FILE_AppendToString(&data.finalStringPath, data.linkPath, &*memoryTable); } } @@ -405,10 +417,7 @@ int searchInLoginFailsVector(void * loginFailsVector, void *element) return i; } } - void cleanup_openssl() - { - EVP_cleanup(); - } + return -1; } @@ -417,7 +426,7 @@ void deleteLoginFailsData(void *element) ; //NOP } -void getListDataInfo(char * thePath, DYNV_VectorGenericDataType *directoryInfo) +void getListDataInfo(char * thePath, DYNV_VectorGenericDataType *directoryInfo, DYNMEM_MemoryTable_DataType **memoryTable) { int i; int fileAndFoldersCount = 0; @@ -479,7 +488,7 @@ void getListDataInfo(char * thePath, DYNV_VectorGenericDataType *directoryInfo) if (strlen(data.fileNameNoPath) > 0) { - data.finalStringPath = (char *) malloc (strlen(data.fileNameNoPath)+1); + data.finalStringPath = (char *) DYNMEM_malloc (strlen(data.fileNameNoPath)+1, &*memoryTable); strcpy(data.finalStringPath, data.fileNameNoPath); } @@ -489,12 +498,12 @@ void getListDataInfo(char * thePath, DYNV_VectorGenericDataType *directoryInfo) { int len = 0; data.isLink = 1; - data.linkPath = (char *) malloc (CLIENT_COMMAND_STRING_SIZE*sizeof(char)); + data.linkPath = (char *) DYNMEM_malloc (CLIENT_COMMAND_STRING_SIZE*sizeof(char), &*memoryTable); if ((len = readlink (data.fileList[i], data.linkPath, CLIENT_COMMAND_STRING_SIZE)) > 0) { data.linkPath[len] = 0; - FILE_AppendToString(&data.finalStringPath, " -> "); - FILE_AppendToString(&data.finalStringPath, data.linkPath); + FILE_AppendToString(&data.finalStringPath, " -> ", &*memoryTable); + FILE_AppendToString(&data.finalStringPath, data.linkPath, &*memoryTable); } } @@ -578,8 +587,8 @@ void resetWorkerData(ftpDataType *data, int clientId, int isInitialization) memset(data->clients[clientId].workerData.activeIpAddress, 0, CLIENT_BUFFER_STRING_SIZE); memset(data->clients[clientId].workerData.theCommandReceived, 0, CLIENT_BUFFER_STRING_SIZE); - cleanDynamicStringDataType(&data->clients[clientId].workerData.ftpCommand.commandArgs, isInitialization); - cleanDynamicStringDataType(&data->clients[clientId].workerData.ftpCommand.commandOps, isInitialization); + cleanDynamicStringDataType(&data->clients[clientId].workerData.ftpCommand.commandArgs, isInitialization, &data->clients[clientId].workerData.memoryTable); + cleanDynamicStringDataType(&data->clients[clientId].workerData.ftpCommand.commandOps, isInitialization, &data->clients[clientId].workerData.memoryTable); /* wait main for action */ if (isInitialization != 1) @@ -638,7 +647,7 @@ void resetClientData(ftpDataType *data, int clientId, int isInitialization) { if (isInitialization != 1) { - void *pReturn; + if (data->clients[clientId].workerData.threadIsAlive == 1) pthread_cancel(data->clients[clientId].workerData.workerThread); @@ -679,18 +688,17 @@ void resetClientData(ftpDataType *data, int clientId, int isInitialization) memset(data->clients[clientId].clientIpAddress, 0, INET_ADDRSTRLEN); memset(data->clients[clientId].buffer, 0, CLIENT_BUFFER_STRING_SIZE); memset(data->clients[clientId].theCommandReceived, 0, CLIENT_COMMAND_STRING_SIZE); - cleanLoginData(&data->clients[clientId].login, isInitialization); + cleanLoginData(&data->clients[clientId].login, isInitialization, &data->clients[clientId].memoryTable); //Rename from and to data init - cleanDynamicStringDataType(&data->clients[clientId].renameFromFile, isInitialization); - cleanDynamicStringDataType(&data->clients[clientId].renameToFile, isInitialization); - cleanDynamicStringDataType(&data->clients[clientId].fileToStor, isInitialization); - cleanDynamicStringDataType(&data->clients[clientId].fileToRetr, isInitialization); - cleanDynamicStringDataType(&data->clients[clientId].listPath, isInitialization); - cleanDynamicStringDataType(&data->clients[clientId].nlistPath, isInitialization); - - cleanDynamicStringDataType(&data->clients[clientId].ftpCommand.commandArgs, isInitialization); - cleanDynamicStringDataType(&data->clients[clientId].ftpCommand.commandOps, isInitialization); + cleanDynamicStringDataType(&data->clients[clientId].renameFromFile, isInitialization, &data->clients[clientId].memoryTable); + cleanDynamicStringDataType(&data->clients[clientId].renameToFile, isInitialization, &data->clients[clientId].memoryTable); + cleanDynamicStringDataType(&data->clients[clientId].fileToStor, isInitialization, &data->clients[clientId].memoryTable); + cleanDynamicStringDataType(&data->clients[clientId].fileToRetr, isInitialization, &data->clients[clientId].memoryTable); + cleanDynamicStringDataType(&data->clients[clientId].listPath, isInitialization, &data->clients[clientId].memoryTable); + cleanDynamicStringDataType(&data->clients[clientId].nlistPath, isInitialization, &data->clients[clientId].memoryTable); + cleanDynamicStringDataType(&data->clients[clientId].ftpCommand.commandArgs, isInitialization, &data->clients[clientId].memoryTable); + cleanDynamicStringDataType(&data->clients[clientId].ftpCommand.commandOps, isInitialization, &data->clients[clientId].memoryTable); data->clients[clientId].connectionTimeStamp = 0; data->clients[clientId].tlsNegotiatingTimeStart = 0; diff --git a/ftpData.h b/ftpData.h index 33c5900..7a6f5c1 100644 --- a/ftpData.h +++ b/ftpData.h @@ -259,14 +259,18 @@ struct ftpListData char lastModifiedDataString[LIST_DATA_TYPE_MODIFIED_DATA_STR_SIZE]; } typedef ftpListDataType; -void cleanLoginData(loginDataType *loginData, int init); -void cleanDynamicStringDataType(dynamicStringDataType *dynamicString, int init); -void setDynamicStringDataType(dynamicStringDataType *dynamicString, char *theString, int stringLen); -int getSafePath(dynamicStringDataType *safePath, char *theDirectoryName, loginDataType *theHomePath); -void appendToDynamicStringDataType(dynamicStringDataType *dynamicString, char *theString, int stringLen); +void cleanLoginData(loginDataType *loginData, int init, DYNMEM_MemoryTable_DataType **memoryTable); +void cleanDynamicStringDataType(dynamicStringDataType *dynamicString, int init, DYNMEM_MemoryTable_DataType **memoryTable); + +void setDynamicStringDataType(dynamicStringDataType *dynamicString, char *theString, int stringLen, DYNMEM_MemoryTable_DataType **memoryTable); +int getSafePath(dynamicStringDataType *safePath, char *theDirectoryName, loginDataType *theHomePath, DYNMEM_MemoryTable_DataType **memoryTable); +void appendToDynamicStringDataType(dynamicStringDataType *dynamicString, char *theString, int stringLen, DYNMEM_MemoryTable_DataType **memoryTable); + + void setRandomicPort(ftpDataType *data, int socketPosition); -void getListDataInfo(char * thePath, DYNV_VectorGenericDataType *directoryInfo); -int writeListDataInfoToSocket(ftpDataType *data, int clientId, int *filesNumber, int commandType); +void getListDataInfo(char * thePath, DYNV_VectorGenericDataType *directoryInfo, DYNMEM_MemoryTable_DataType **memoryTable); +int writeListDataInfoToSocket(ftpDataType *data, int clientId, int *filesNumber, int commandType, DYNMEM_MemoryTable_DataType **memoryTable); + int searchInLoginFailsVector(void *loginFailsVector, void *element); void deleteLoginFailsData(void *element); void deleteListDataInfoVector(void *TheElementToDelete); @@ -275,6 +279,7 @@ void resetClientData(ftpDataType *data, int clientId, int isInitialization); int compareStringCaseInsensitive(char *stringIn, char* stringRef, int stringLenght); int isCharInString(char *theString, int stringLen, char theChar); void destroyConfigurationVectorElement(DYNV_VectorGenericDataType *theVector); + #ifdef __cplusplus } #endif diff --git a/ftpServer.c b/ftpServer.c index 4143f6f..087b73d 100644 --- a/ftpServer.c +++ b/ftpServer.c @@ -381,7 +381,7 @@ void *connectionWorkerHandle(void * socketId) } //returnCode = writeListDataInfoToSocket(ftpData.clients[theSocketId].listPath.text, ftpData.clients[theSocketId].workerData.socketConnection, &theFiles, theCommandType); - returnCode = writeListDataInfoToSocket(&ftpData, theSocketId, &theFiles, theCommandType); + returnCode = writeListDataInfoToSocket(&ftpData, theSocketId, &theFiles, theCommandType, &ftpData.clients[theSocketId].workerData.memoryTable); if (returnCode <= 0) { ftpData.clients[theSocketId].closeTheClient = 1; @@ -485,6 +485,9 @@ void runFtpServer(void) //Endless loop ftp process while (1) { + + printf("\nUsed memory : %lld", DYNMEM_GetTotalMemory()); + /* waits for socket activity, if no activity then checks for client socket timeouts */ if (selectWait(&ftpData) == 0) { @@ -654,8 +657,8 @@ static int processCommand(int processingElement) //printTimeStamp(); //printf ("Command received from (%d): %s", processingElement, ftpData.clients[processingElement].theCommandReceived); - cleanDynamicStringDataType(&ftpData.clients[processingElement].ftpCommand.commandArgs, 0); - cleanDynamicStringDataType(&ftpData.clients[processingElement].ftpCommand.commandOps, 0); + cleanDynamicStringDataType(&ftpData.clients[processingElement].ftpCommand.commandArgs, 0, &ftpData.clients[processingElement].memoryTable); + cleanDynamicStringDataType(&ftpData.clients[processingElement].ftpCommand.commandOps, 0, &ftpData.clients[processingElement].memoryTable); if (ftpData.clients[processingElement].login.userLoggedIn == 0 && (compareStringCaseInsensitive(ftpData.clients[processingElement].theCommandReceived, "USER", strlen("USER")) != 1 && @@ -866,17 +869,24 @@ static int processCommand(int processingElement) void deallocateMemory(void) { - printf("\n Deallocating the memory.. "); + int i = 0; +// printf("\n Deallocating the memory.. "); +// printf("\nDYNMEM_freeAll called"); +// printf("\nElement size: %ld", ftpData.generalDynamicMemoryTable->size); +// printf("\nElement address: %ld", (long int) ftpData.generalDynamicMemoryTable->address); +// printf("\nElement nextElement: %ld",(long int) ftpData.generalDynamicMemoryTable->nextElement); +// printf("\nElement previousElement: %ld",(long int) ftpData.generalDynamicMemoryTable->previousElement); - printf("\nDYNMEM_freeAll called"); - printf("\nElement size: %ld", ftpData.generalDynamicMemoryTable->size); - printf("\nElement address: %ld", (long int) ftpData.generalDynamicMemoryTable->address); - printf("\nElement nextElement: %ld",(long int) ftpData.generalDynamicMemoryTable->nextElement); - printf("\nElement previousElement: %ld",(long int) ftpData.generalDynamicMemoryTable->previousElement); + for (i = 0; i < ftpData.ftpParameters.maxClients; i++) + { + DYNMEM_freeAll(&ftpData.clients[i].memoryTable); + DYNMEM_freeAll(&ftpData.clients[i].workerData.memoryTable); + } + + DYNMEM_freeAll(&ftpData.ftpParameters.usersVector.memoryTable); DYNMEM_freeAll(&ftpData.generalDynamicMemoryTable); //printf("\n ftpData.generalDynamicMemoryTable = %ld", ftpData.generalDynamicMemoryTable); - #ifdef OPENSSL_ENABLED SSL_CTX_free(ftpData.serverCtx); cleanupOpenssl(); diff --git a/library/configRead.c b/library/configRead.c index 9d788ae..0c49eaf 100644 --- a/library/configRead.c +++ b/library/configRead.c @@ -47,9 +47,9 @@ void destroyConfigurationVectorElement(DYNV_VectorGenericDataType *theVector) int i; for (i = 0; i < theVector->Size; i++) { - printf("\n(parameter_DataType *)theVector->Data[%d])->value = %ld", i, ((parameter_DataType *)theVector->Data)->value); + //printf("\n(parameter_DataType *)theVector->Data[%d])->value = %ld", i, ((parameter_DataType *)theVector->Data)->value); DYNMEM_free(((parameter_DataType *)theVector->Data[i])->value, &theVector->memoryTable); - printf("\n(parameter_DataType *)theVector->Data[%d])->name = %ld", i, ((parameter_DataType *)theVector->Data)->name); + //printf("\n(parameter_DataType *)theVector->Data[%d])->name = %ld", i, ((parameter_DataType *)theVector->Data)->name); DYNMEM_free(((parameter_DataType *)theVector->Data[i])->name, &theVector->memoryTable); DYNMEM_free(theVector->Data[i], &theVector->memoryTable); } @@ -100,7 +100,7 @@ void configurationRead(ftpParameters_DataType *ftpParameters) } DYNV_VectorGeneric_Destroy(&configParameters, destroyConfigurationVectorElement); - printf("\n\nconfigParameters.memoryTable = %d ***", configParameters.memoryTable); + //printf("\n\nconfigParameters.memoryTable = %d ***", configParameters.memoryTable); return; } @@ -144,13 +144,13 @@ void initFtpData(ftpDataType *ftpData) ftpData->connectedClients = 0; ftpData->clients = (clientDataType *) DYNMEM_malloc((sizeof(clientDataType) * ftpData->ftpParameters.maxClients), &ftpData->generalDynamicMemoryTable); - printf("\nDYNMEM_malloc called"); - printf("\nElement location: %ld", (long int) ftpData->generalDynamicMemoryTable); - fflush(0); - printf("\nElement size: %ld", ftpData->generalDynamicMemoryTable->size); - printf("\nElement address: %ld", (long int) ftpData->generalDynamicMemoryTable->address); - printf("\nElement nextElement: %ld",(long int) ftpData->generalDynamicMemoryTable->nextElement); - printf("\nElement previousElement: %ld",(long int) ftpData->generalDynamicMemoryTable->previousElement); + //printf("\nDYNMEM_malloc called"); + //printf("\nElement location: %ld", (long int) ftpData->generalDynamicMemoryTable); + //fflush(0); + //printf("\nElement size: %ld", ftpData->generalDynamicMemoryTable->size); + //printf("\nElement address: %ld", (long int) ftpData->generalDynamicMemoryTable->address); + //printf("\nElement nextElement: %ld",(long int) ftpData->generalDynamicMemoryTable->nextElement); + //printf("\nElement previousElement: %ld",(long int) ftpData->generalDynamicMemoryTable->previousElement); ftpData->serverIp.ip[0] = 127; @@ -578,9 +578,6 @@ static int parseConfigurationFile(ftpParameters_DataType *ftpParameters, DYNV_Ve userData.ownerShip.groupOwnerString = NULL; userData.ownerShip.userOwnerString = NULL; - - - userData.name = DYNMEM_malloc((strlen(((parameter_DataType *) parametersVector->Data[searchUserIndex])->value) + 1), &ftpParameters->usersVector.memoryTable); userData.password = DYNMEM_malloc((strlen(((parameter_DataType *) parametersVector->Data[searchPasswordIndex])->value) + 1), &ftpParameters->usersVector.memoryTable); userData.homePath = DYNMEM_malloc((strlen(((parameter_DataType *) parametersVector->Data[searchHomeIndex])->value) + 1), &ftpParameters->usersVector.memoryTable); @@ -625,7 +622,6 @@ static int parseConfigurationFile(ftpParameters_DataType *ftpParameters, DYNV_Ve printf("\nuserData.gid = %d", userData.ownerShip.gid); printf("\nuserData.uid = %d", userData.ownerShip.uid); printf("\nuserData.ownerShipSet = %d", userData.ownerShip.ownerShipSet); - ftpParameters->usersVector.PushBack(&ftpParameters->usersVector, &userData, sizeof(usersParameters_DataType)); } diff --git a/library/connection.c b/library/connection.c index 3c4103d..9fc00f3 100644 --- a/library/connection.c +++ b/library/connection.c @@ -155,7 +155,7 @@ int socketWorkerPrintf(ftpDataType * ftpData, int clientId, const char *__restri char theBuffer[SOCKET_PRINTF_BUFFER]; int theStringSize = 0; memset(&theBuffer, 0, SOCKET_PRINTF_BUFFER); - printf("\nWriting to worker socket id %dd, TLS %d: ", clientId, ftpData->clients[clientId].dataChannelIsTls); + //printf("\nWriting to worker socket id %dd, TLS %d: ", clientId, ftpData->clients[clientId].dataChannelIsTls); va_list args; va_start(args, __fmt); while (*__fmt != '\0') @@ -462,7 +462,7 @@ void closeClient(ftpDataType * ftpData, int processingSocket) if (ftpData->clients[processingSocket].workerData.threadIsAlive == 1) { - void *pReturn; + pthread_cancel(ftpData->clients[processingSocket].workerData.workerThread); //pthread_join(ftpData->clients[processingSocket].workerData.workerThread, &pReturn); printf("\nQuit command received the Pasv Thread has been cancelled."); diff --git a/library/dynamicMemory.c b/library/dynamicMemory.c index ab42fb8..10672c8 100644 --- a/library/dynamicMemory.c +++ b/library/dynamicMemory.c @@ -59,8 +59,7 @@ void *DYNMEM_malloc(size_t bytes, DYNMEM_MemoryTable_DataType **memoryListHead) DYNMEM_MemoryTable_DataType *newItem = NULL; memory = calloc(bytes,1); newItem = calloc(1, sizeof(DYNMEM_MemoryTable_DataType)); - - printf("Allocating new item in memory, size of %d", bytes); + //printf("Allocating new item in memory, size of %d", bytes); if(memory) { @@ -89,10 +88,10 @@ void *DYNMEM_malloc(size_t bytes, DYNMEM_MemoryTable_DataType **memoryListHead) //printf("\nmemoryListHead = newItem %ld", (int) *memoryListHead); } - //printf("\nElement size: %ld", (*memoryListHead)->size); - printf("\nElement address: %ld", (long int) (*memoryListHead)->address); - //printf("\nElement nextElement: %ld",(long int) (*memoryListHead)->nextElement); - //printf("\nElement previousElement: %ld",(long int) (*memoryListHead)->previousElement); +// printf("\nElement size: %ld", (*memoryListHead)->size); +// printf("\nElement address: %ld", (long int) (*memoryListHead)->address); +// printf("\nElement nextElement: %ld",(long int) (*memoryListHead)->nextElement); +// printf("\nElement previousElement: %ld",(long int) (*memoryListHead)->previousElement); return memory; } @@ -106,15 +105,19 @@ void *DYNMEM_malloc(size_t bytes, DYNMEM_MemoryTable_DataType **memoryListHead) void *DYNMEM_realloc(void *theMemoryAddress, size_t bytes, DYNMEM_MemoryTable_DataType **memoryListHead) { void *newMemory = NULL; + //printf("\nSearching address %lld", theMemoryAddress); newMemory = realloc(theMemoryAddress, bytes); - //printf("Reallocating item in memory, size of %d", bytes); + //printf("\nReallocating item in memory, size of %d", bytes); + //printf("\nSearching address %lld", theMemoryAddress); + //printf("(*memoryListHead) = %lld", (*memoryListHead)); if(newMemory) { DYNMEM_MemoryTable_DataType *temp = NULL,*found = NULL; for( temp = (*memoryListHead); temp!=NULL; temp = temp->nextElement) { + //printf("\n %lld == %lld", temp->address, theMemoryAddress); if(temp->address == theMemoryAddress) { found = temp; @@ -124,7 +127,12 @@ void *DYNMEM_realloc(void *theMemoryAddress, size_t bytes, DYNMEM_MemoryTable_Da if(!found) { - report_error_q("Unable to free memory not previously allocated",__FILE__,__LINE__, 0); + fflush(0); + //Debug TRAP + char *theData ="c"; + strcpy(theData, "NOOOOOOOOOOOOOOOO"); + + report_error_q("Unable to reallocate memory not previously allocated",__FILE__,__LINE__, 0); // Report this as an error } @@ -184,7 +192,7 @@ void DYNMEM_free(void *f_address, DYNMEM_MemoryTable_DataType ** memoryListHead) DYNMEM_DecreaseMemoryCounter(found->size + sizeof(DYNMEM_MemoryTable_DataType)); - printf("\nFree of %ld", f_address); + //printf("\nFree of %ld", f_address); free(f_address); if(found->previousElement) diff --git a/library/fileManagement.c b/library/fileManagement.c index c9fb21a..f9c24ed 100644 --- a/library/fileManagement.c +++ b/library/fileManagement.c @@ -40,6 +40,7 @@ #include "fileManagement.h" #include "dynamicVectors.h" +#include "dynamicMemory.h" static int FILE_CompareString(const void * a, const void * b); @@ -605,10 +606,10 @@ time_t FILE_GetLastModifiedData(char *path) return statbuf.st_mtime; } -void FILE_AppendToString(char ** sourceString, char *theString) +void FILE_AppendToString(char ** sourceString, char *theString, DYNMEM_MemoryTable_DataType ** memoryTable) { int theNewSize = strlen(*sourceString) + strlen(theString); - *sourceString = realloc(*sourceString, theNewSize + 10); + *sourceString = DYNMEM_realloc(*sourceString, theNewSize + 10, &*memoryTable); strcat(*sourceString, theString); (*sourceString)[theNewSize] = '\0'; } diff --git a/library/fileManagement.h b/library/fileManagement.h index 9724dcb..06ff676 100644 --- a/library/fileManagement.h +++ b/library/fileManagement.h @@ -64,7 +64,7 @@ char * FILE_GetOwner(char *fileName); char * FILE_GetGroupOwner(char *fileName); time_t FILE_GetLastModifiedData(char *path); - void FILE_AppendToString(char ** sourceString, char *theString); + void FILE_AppendToString(char ** sourceString, char *theString, DYNMEM_MemoryTable_DataType ** memoryTable); void FILE_DirectoryToParent(char ** sourceString); int FILE_LockFile(int fd); int FILE_doChownFromUidGidString(const char *file_path, const char *user_name, const char *group_name); diff --git a/uFTP.c b/uFTP.c index 3b93183..fd7d6d5 100644 --- a/uFTP.c +++ b/uFTP.c @@ -22,6 +22,53 @@ * THE SOFTWARE. */ +/* +void myFunction (void * p); +void myFunction2 (void * p); +void myFunction3 (void * p); +void myFunction4 (void **p); + +void myFunction (void * p) +{ + static int i2 = 11; + myFunction2(p); + p = &i2; + printf("\n1 p = %lld address of the pointer is %lld", p, &p); + printf(" intval %d", *(int *) p); +} + +void myFunction2 (void * p) +{ + myFunction3(p); + printf("\n2 p = %lld address of the pointer is %lld", p, &p); + printf(" intval %d", *(int *) p); +} + +void myFunction3 (void * p) +{ + printf("\n3 p = %lld address of the pointer is %lld", p, &p); + printf(" intval %d", *(int *) p); +} + +void myFunction4 (void **p) +{ + static int oraSi = 12; + printf("\n4 p = %lld address of the pointer is %lld", *p, &*p); + printf(" intval %d", *(int *) *p); + + *p = &oraSi; + myFunction5(&*p); +} + +void myFunction5 (void **p) +{ + static int oraSi = 13; + printf("\n5 p = %lld address of the pointer is %lld", *p, &*p); + printf(" intval %d", *(int *) *p); + + *p = &oraSi; +} +*/ #include #include @@ -29,6 +76,19 @@ int main(int argc, char** argv) { + /* + void *p; + int a = 10; + p = (void *)&a; + + printf("\np at init = %lld address of the pointer is %lld", p, &p); + //myFunction(p); + printf("\np after myFunction = %lld address of the pointer is %lld", p, &p); + myFunction4(&p); + printf("\np after myFunction4 = %lld address of the pointer is %lld", p, &p); + printf(" intval %d", *(int *) p); + exit(0); +*/ runFtpServer(); return (EXIT_SUCCESS); -} \ No newline at end of file +}