From ca53ffbeff50d5dd1d423eb746314a43b10bb5fb Mon Sep 17 00:00:00 2001 From: Ugo Cirmignani Date: Mon, 31 Dec 2018 16:43:43 +0100 Subject: [PATCH] removed some printf --- build/modules/configRead.o | Bin 38064 -> 38064 bytes build/modules/connection.o | Bin 52520 -> 52288 bytes build/modules/dynamicMemory.o | Bin 13368 -> 13368 bytes build/modules/fileManagement.o | Bin 36544 -> 36016 bytes build/modules/ftpCommandElaborate.o | Bin 75416 -> 74256 bytes build/modules/ftpServer.o | Bin 59864 -> 59712 bytes build/uFTP | Bin 218400 -> 214208 bytes ftpCommandElaborate.c | 19 +++++++++---------- ftpServer.c | 2 +- library/auth.c | 14 +++++++------- library/configRead.c | 1 - library/connection.c | 4 ++-- library/dynamicMemory.c | 2 -- library/fileManagement.c | 11 +++++------ 14 files changed, 24 insertions(+), 29 deletions(-) diff --git a/build/modules/configRead.o b/build/modules/configRead.o index c4431d74473b3f0ef13ba7d809bf7d71b277d936..e81b2d3b7eb18c237d7ba9c3e2597908b90b03f8 100644 GIT binary patch delta 513 zcmdn6l4-+ArVT&z7@H^m)Kjc)W?Uk|z`#85MVLGT0|NtNGvg{S|3R1nnBU4+!2pu~ zg2w*<<+n5X3WMY?ghSMK!1(bHekY8d4&isf`1xQy6Jz(}+4>5JdQ1>&{y>d|@f)DV z!uTy{{0=mJ4;udm)I9ykG6u4YC6lcT6m3cv_cJgsFinhr__ze@W2T7#5C@ilJUCh4HW7(g7h;_T#>H=5rl-;0vK0Q3?w@vUllC76XLNW`D&RA zjJqJ54Ny5KcMB?a2P$_DD)&IXD#YO35LcXlO7Dln!viSyz~pE{Wk$Ej^@fU!v6~kf Oo@Qg@+MH|Q90LGr3Tb=* delta 513 zcmdn6l4-+ArVT&z7+WU))Kjc)VO%1@z`#85MVLGT0|NtN3*#y<|3R1nnBT@&!2pu~ zg2w*<<##ap3WMY?ghSMK!uatJeiw|N4&ish`1xQy6JyWh+4>5J`b-dO{y>d|@f)DV z!uTy{{0=mJ4;udm)I5X9G6u4YrIW1;6m3cw_cJgsFinhr__!48W2T7#5C@inJ#7;U{D5!#-_>B4HW7(f%G#^T#>H=5rl-;0vK0Q3?w@vUllC73*xaO`D&RA zjJqM64Ny5KcMB?a2P$_DD)&IXD#YMD5LcXlN*{p4!viSy;N)mSWk&bO^@fU!ahn$! Oo@Qg@-kfXU90LH4XKA7U diff --git a/build/modules/connection.o b/build/modules/connection.o index 876db4245f4c615f70b208d28c52108de63d46d6..ce97e9080fc0fed7296ff87f30b33666505b29fd 100644 GIT binary patch delta 6081 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 diff --git a/build/modules/dynamicMemory.o b/build/modules/dynamicMemory.o index e151d4d3aa86e1d417074fcdf700fe1b5bd6b758..ec502b0d07c269d2b3b608419b3f151dc654d4ec 100644 GIT binary patch delta 173 zcmdmyu_I%{FDAy0$pS2rlSP~z{EFs8FMD%p3MR*2JDQNCOdM=@LytO zWnf^M7$L&Iz`($Gb#e~3l*cj<8wA7{AvEKhbXEoiF%XAwSsMdb1C$5R9stq4f*WjD q0+hG;9QQF6#;VCv1yqEqIQDTk?mo$32SU%7W3Dl)ZayQBqYMCS(I@Z# delta 173 zcmdmyu_I%{FDAy$$pS2rlSP~z{EFs8FMD%zRdzG2JDPiCOdM=@LyqN zWnf^M7$L&Iz`($GeR2-Bl*e)q8wA7{AvEKhbXEoiF%XAwc^d;*1C$5R9stq4k{fJT q0+hG;9QQF6#_Gva1yqEqIrecl?mo$32SU%7qpvZmZ9XHAqYMCZq9_3X diff --git a/build/modules/fileManagement.o b/build/modules/fileManagement.o index 070c2b4b7b5362d9b50b62801e952bf870e31510..0d8bd3640304b77daefd71c90ea805c666339d90 100644 GIT binary patch delta 2909 zcmZ8jeN0nV6u@xi_}9A9oEX(KO}keQ z6=~TkQhsb-uW1^0-*W}qTQp7UZm-caEvVny#uM5{cP6&=@gQnoY!YL^_VsXOrX%t! zt=I%#WR=m9$X{8%Sys>Hl=}4uf9WxQ5+T{#qPfc3gb*eCrQg1F(u(@+&6{^l+UNZC z<|ab(!Jg|#b19iqc*HVz>!>Mo+ak; z`WgsLR!qq}vXPj~mDFIl3paC}fxAqwtaRwq_t0D_%s+Kg2}c9=U0WLnz0a0VtjWy> z%%z((qRvAm>eLEF6Ko_&lohha8SmY=iuDKZ=S?dd$D)l+y~sEgX>jUA#<55((p-h% zJcr||PNsy<1?=xN5qgbXGVxkV$qSs9M&W6mJrHF(6kV?9Cd!6VxVe_kepn}9;aagU zhS~7E+4Q2JcMU!W|3%DhB*bL)nF*F1WJY+15CTW?QI`_ASkX z9@E!L36J`bwGBQka0c2i>lCuKA?pCLwi_#fc1K*5&dDlXAECYaCXuSF)ANmMIu%d! zm~}cK4nkan&~>rK#10WD{4Ek&#ITJ<1K9kM@{9hu5GDI;)uI=9tLX zg1b|{M!X_T;Kq@47ADrJwo&xD zXA194oXF4I8~6pi+35makKRX!dlBbv0>3PZ&_FVTJtBUH1Mv~W8xWs|_-s`G;=mxJ zR3Rjl5b#ycu&u(F8jJ~IZX+K7-Ole7dokt?#w@^?4#cxE1z_NZ5U)bqn8_)fbBN!E z-VCwGkqrejGWyoz#3Bbyl`jfc`HX*OG);3MoJ3+@$OkIRcq2RwCZQK{rzE_qudyi~#mAY7*gE=yiH>#2mx zS@UrJaSde>TdRauN_a2g#(cStUm);}F~=%&9G8fSB%(_a5#J?7^Z!WkoWsChkM!5y zvC=AN-Cf9TWx~+zGMWWXc9*j|DwO!jXbp7xd~`O@mU1?d0hKNDD1kjKKKedPw3JgX z6z@4mv*G-nP1Fr@_8z1a@Xg+nbTN4Ljj$)yNX~~RlIddju2Z!c2UQpEk`TQo{^*8@ zPSs`{MPqSZFF3o@3gh5O!T->B5dSj{o|ofr4m6ZQ$vdbtst0?%N%-s@&}%OI=I&C<*H urw6=!1uU~1j`q2kc|Tn5b6du7YdFApV3E066pw=Ez(UJthp+~@l>Y&|Rjr)> delta 3368 zcmaJ?e{56N6+ZVq8XS{u!KQtAr6zV2C!w9n7^TpxGfZV9pUwuEe!t(j+@l5fzkDO&Vh=O>is41wkfFYs%CK_Q%k=sH(N98=_sqrfU6z>P`3E z^USSL`y@ZV^PTT}=f}P8zUiZU?l_-p=D*0z-0yMu+r~#1KQYa=+#lPU+|)U)FvirFOo6(pXwGPLElf7VkNad%dw0l?|) z?hkkWEE4VW4t2%C(S&y>9D6Dfk4FZhaqnQ%+v4@d!Rg%{568TbxHmR9m{82YWHcND zXK!R6?CtJ~dVd=B#=>1a;pi8!WGs?Mgrm?GPRI!G$6LI3)!4|+6l(AJpt_?$G;Up= z(my+vasu2dEY_&~5CF8P*HfOzEo(OAiG>rl?DHv4Yyem@Zf@|p*K2imh>*)EfO<w~Fc+9YjPCr1EBk2GVpTSofJ)34o zoW?Z6b*ph2(~Ol%j7bU>NNNvtaSE%OeD|HQg0!jmlw_Ue<%O05I)WWdzRn{=n@!0^ zj*$2?g&nPsd9f_x>5Bn7ZcSaAnoE)DA-vG!OCO@BQ>1!`R9`05j6GtqpR34{y_IDs z32fY2Y9-4KE8f1IVDgC_bA27a3y=n2JIam8rI#V%-H>Z<+jgT*T9Vb}_e)N#n+p8{ z71~4geCj@HGlZ=ylG|G@x^7juGT6-&_~JWBr2T z#0kea#~#Q0hrpMxs>!NfIow+HOD~^zg*UG_DX{;F+r)N<`@*@m9q#1Y4tL?5jmg?I z`$YTS{aS5?KXzx87G^a|9ag?ATqd{1Q}%Zj;_W}z*qenL9hDl2aWqY{S;0k*HvTqcFOg|uvUa!>OLb#|(oH6!r`xLxU!GDQeLEX5Zc-0>ND!lBb$Y?m}EfUHNio%2F z3+Y|oSG-M%_n3mKQ4V^4gqmOB4=cDBfL(tMJ41TcjN%o$-1dH;;9C{EhTbTVrB%Tn zRd7|O4@)84cv11HQ6J;}EBJNMD;oA*-C9#!d@LHmk@2tab4R2-hcyKt$Ch*2^D}O-8mIDv60gN0- zvUjm`pp`A)>f{8=Vlf$Hr_mUhU~k}WM}EVC*m>|Gf6QHQJ^j)$7Q~rR-LTKq9BQ%edd0n0=Lgxan`E2=5c>UH|&%2aD_L6 zCo?)L7K$02u`_t(xed-a`erWHpey?@|F`v-#89@GEn+Ua$ylWE{$1uNUk)r~oA{sZ zL1!+&r@L`mF2J8!i(|O}Us#8iashsM6rE#%>Y9gSOcXoEHgL$`*jRu+-GZ0K0{kzn z=*$QB=dI$~jG=rphc+C`2Y6iuFXaQ(^N-8ejkx^qM#oNRT*S`98>%m7r8SM6+4}zj Ds?I14 diff --git a/build/modules/ftpCommandElaborate.o b/build/modules/ftpCommandElaborate.o index e0c762b4adf86daf5eb0677ca74ec0d38b8ba796..b384d52ef3a82509168445e4122ed9fe6f9fe85c 100644 GIT binary patch delta 12534 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 Ii=Q|9f18WmFaQ7m delta 13247 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 LB?knBFJ=A@>=Nk( delta 3001 zcmZ{me@sn$nbfBC!x}mZw$g~pkA?+oDp^k3``q{Dd(YDP!zS{6UcN{a7~ww&fjn9~@u zsJO5&wMu4#n1|nd?S{Z+6U$weGB_kEN=D?c=Oy!!Xju#_Vw{ijD|7Npm;e0n3`c=|~jh zTHm}kXqr7!3_cu&VT>{i<91l!_n;aNHw+`*FpT>T1IJzReU31J;5b4OwI4%xiLZ0` zyp2b8@%1rz7MJABhVj2YRtgQn_>tOL)h_8=59nmknqapbB(kz!+>QA`>$ z9%f2xOuS;YGV>8LH8v(uF%~mlGvl{0vlMfSnfuH9FPbw`a}KcKiRVJQ3a(@Ka@C+%WiuqJd97zdDI2zE29IXg%Z4hOA-FOPY-p1PxJYF+2-lgvYvY4E z@__kq)Lx4sc3NOwvYF*tVmv_|ip8oLe13xazLe5x5#EpnSWn(s1TXWS*!bZ79%R0T z6C1R|*R{ki+3=gqut2R+KO63G;seU9Lx`r~Iux@LL-)n4_+)aOM0l0j>QF3Ij4Z9x z5?8ZfyUnmz8FsT_zcj!>@|;AdX8v0npP~4x%y)BQzm}MzC62HmZhC0XS<2ufXh1Nj zvYwywdW3XpuSc=L#;;U-5%W7GFLo&RLKpLn8KE8K zD}D?OHy})=G9L=3Vq|HJmNCO?7wC67c2j5HjE-~BZ@K4KYF&`)C__u8&S+x)!?&TstgOMy%AwK8?rUSI?eDl z8$PfZwkSh68!Dwi{#RQF&60AHI%^yZ(O(>?$4Bdsl0zZwJTrDU}RSiB-!8d6Nd0G%&qv2C1 zGBrbiW?0LHoi@XM)%jjF9FPV$L}e`qwaj0!@fC`{&U`N?4rqy+w8VedFnLbs4jxv9 zcrwo*yh!b*5mLx|8es{+859LJ{xijUncpROu~#v&RH!8q8=7o}DrGpwhRe+SVPonP zGt7*G#-GKE$QK^%MUj>=UX9CLkbC!3WPmdtGoDSuXHaZ^OtpesttgH@ruqd}FWIU~ zRN^%%Yendg4BRAND}tY|2dJwRVTi9s zDhyFYj~nW#v&Ze2nn{y-Q=x-$dfl*sDtg^fe)%0_7)B{|_0DsQ?xsn7sj!lA`rPn6 vRrI+XBL)1GJk*y6f0O8UJDlCLsy`K~sG{Eu?^0*KJL*7pKyscc{m=dfgF*(1 diff --git a/build/uFTP b/build/uFTP index 7741522ccb7592e4f392c740c266cf1657936773..7cd5f31854d9ceedeea542b10473418556cf2cf3 100755 GIT binary patch delta 44546 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 N`(XG;sv0Ug|35uq0FM9w diff --git a/ftpCommandElaborate.c b/ftpCommandElaborate.c index 4b39d03..db73d23 100644 --- a/ftpCommandElaborate.c +++ b/ftpCommandElaborate.c @@ -157,7 +157,7 @@ int parseCommandPass(ftpDataType * data, int socketId) if (strlen(thePass) >= 1) { - printf("\nLogin try with user %s, password %s", data->clients[socketId].login.name.text, thePass); + //printf("\nLogin try with user %s, password %s", data->clients[socketId].login.name.text, thePass); //PAM AUTH METHOD IF ENABLED if (data->ftpParameters.pamAuthEnabled == 1) @@ -165,7 +165,7 @@ int parseCommandPass(ftpDataType * data, int socketId) loginCheck( data->clients[socketId].login.name.text, thePass, &data->clients[socketId].login, &data->clients[socketId].memoryTable); if (data->clients[socketId].login.userLoggedIn == 1) { - printf("\n User logged with PAM ok!"); + //printf("\n User logged with PAM ok!"); returnCode = socketPrintf(data, socketId, "s", "230 Login Ok.\r\n"); if (returnCode <= 0) return FTP_COMMAND_PROCESSED_WRITE_ERROR; @@ -291,7 +291,7 @@ int parseCommandAuth(ftpDataType * data, int socketId) int parseCommandPwd(ftpDataType * data, int socketId) { - printf("\n pwd is %s", data->clients[socketId].login.ftpPath.text); + //printf("\n pwd is %s", data->clients[socketId].login.ftpPath.text); int returnCode; returnCode = socketPrintf(data, socketId, "sss", "257 \"", data->clients[socketId].login.ftpPath.text ,"\" is your current location\r\n"); @@ -745,18 +745,18 @@ int parseCommandCwd(ftpDataType * data, int socketId) thePath = getFtpCommandArg("CWD", data->clients[socketId].theCommandReceived, 0); - printf("\ncdw requested path: %s", thePath); + //printf("\ncdw requested path: %s", thePath); if (strlen(thePath) > 0) { //printf("Memory data address 1st call : %lld", &data->clients[socketId].memoryTable); isSafePath = getSafePath(&theSafePath, thePath, &data->clients[socketId].login, &data->clients[socketId].memoryTable); - printf("\ncdw safe path: %s", theSafePath.text); + //printf("\ncdw safe path: %s", theSafePath.text); } if (isSafePath == 1) { - printf("\n The Path requested for CWD IS:%s", theSafePath.text); + //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, &data->clients[socketId].memoryTable); setDynamicStringDataType(&ftpPathPrevious, data->clients[socketId].login.ftpPath.text, data->clients[socketId].login.ftpPath.textLen, &data->clients[socketId].memoryTable); @@ -784,10 +784,9 @@ int parseCommandCwd(ftpDataType * data, int socketId) } - printf("\ndata->clients[socketId].login.absolutePath = %s", data->clients[socketId].login.absolutePath.text); - printf("\ndata->clients[socketId].login.ftpPath = %s", data->clients[socketId].login.ftpPath.text); - printf("\nChecking the directory: %s", data->clients[socketId].login.absolutePath.text); - fflush(0); +// printf("\ndata->clients[socketId].login.absolutePath = %s", data->clients[socketId].login.absolutePath.text); +// printf("\ndata->clients[socketId].login.ftpPath = %s", data->clients[socketId].login.ftpPath.text); +// printf("\nChecking the directory: %s", data->clients[socketId].login.absolutePath.text); diff --git a/ftpServer.c b/ftpServer.c index b6dc7f2..47ce49d 100644 --- a/ftpServer.c +++ b/ftpServer.c @@ -722,7 +722,7 @@ static int processCommand(int processingElement) { int toReturn = 0; //printTimeStamp(); - printf ("\nCommand received from (%d): %s", processingElement, ftpData.clients[processingElement].theCommandReceived); + //printf ("\nCommand received from (%d): %s", processingElement, ftpData.clients[processingElement].theCommandReceived); cleanDynamicStringDataType(&ftpData.clients[processingElement].ftpCommand.commandArgs, 0, &ftpData.clients[processingElement].memoryTable); cleanDynamicStringDataType(&ftpData.clients[processingElement].ftpCommand.commandOps, 0, &ftpData.clients[processingElement].memoryTable); diff --git a/library/auth.c b/library/auth.c index 9d88abc..128b808 100644 --- a/library/auth.c +++ b/library/auth.c @@ -107,13 +107,13 @@ void loginCheck(char *name, char *password, loginDataType *login, DYNMEM_MemoryT login->ownerShip.ownerShipSet = 1; login->userLoggedIn = 1; - printf("\nLogin as: %s", pass->pw_name); - printf("\nPasswd: %s", pass->pw_passwd); - printf("\nDir: %s", pass->pw_dir); - printf("\nGid: %d", pass->pw_gid); - printf("\nUid: %d", pass->pw_uid); - printf("\nlogin->homePath.text: %s", login->homePath.text); - printf("\nlogin->absolutePath.text: %s", login->absolutePath.text); +// printf("\nLogin as: %s", pass->pw_name); +// printf("\nPasswd: %s", pass->pw_passwd); +// printf("\nDir: %s", pass->pw_dir); +// printf("\nGid: %d", pass->pw_gid); +// printf("\nUid: %d", pass->pw_uid); +// printf("\nlogin->homePath.text: %s", login->homePath.text); +// printf("\nlogin->absolutePath.text: %s", login->absolutePath.text); } } else diff --git a/library/configRead.c b/library/configRead.c index 07e3bc4..eed6064 100644 --- a/library/configRead.c +++ b/library/configRead.c @@ -146,7 +146,6 @@ void initFtpData(ftpDataType *ftpData) //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); diff --git a/library/connection.c b/library/connection.c index 3636ad3..2e794a5 100644 --- a/library/connection.c +++ b/library/connection.c @@ -52,7 +52,7 @@ int socketPrintf(ftpDataType * ftpData, int clientId, const char *__restrict __f int theStringSize = 0, theCommandSize = 0; memset(&theBuffer, 0, SOCKET_PRINTF_BUFFER); memset(&commandBuffer, 0, COMMAND_BUFFER); - printf("\nWriting to socket id %d, TLS %d: ", clientId, ftpData->clients[clientId].tlsIsEnabled); + //printf("\nWriting to socket id %d, TLS %d: ", clientId, ftpData->clients[clientId].tlsIsEnabled); pthread_mutex_lock(&ftpData->clients[clientId].writeMutex); @@ -140,7 +140,7 @@ int socketPrintf(ftpDataType * ftpData, int clientId, const char *__restrict __f #endif } - printf("\n%s", commandBuffer); + //printf("\n%s", commandBuffer); pthread_mutex_unlock(&ftpData->clients[clientId].writeMutex); diff --git a/library/dynamicMemory.c b/library/dynamicMemory.c index 43e9b38..806fb74 100644 --- a/library/dynamicMemory.c +++ b/library/dynamicMemory.c @@ -129,7 +129,6 @@ void *DYNMEM_realloc(void *theMemoryAddress, size_t bytes, DYNMEM_MemoryTable_Da if(!found) { - //fflush(0); //Debug TRAP //char *theData ="c"; //strcpy(theData, "NOOOOOOOOOOOOOOOO"); @@ -183,7 +182,6 @@ void DYNMEM_free(void *f_address, DYNMEM_MemoryTable_DataType ** memoryListHead) if(!found) { //printf("\n\nMemory address : %ld not found\n\n", f_address); - //fflush(0); //Debug TRAP //char *theData ="c"; //strcpy(theData, "ciaociaociao"); diff --git a/library/fileManagement.c b/library/fileManagement.c index 3dce163..d7acf1d 100644 --- a/library/fileManagement.c +++ b/library/fileManagement.c @@ -585,8 +585,7 @@ int checkParentDirectoryPermissions(char *fileName, int uid, int gid) theFileName[theFileNameLen++] = fileName[i]; } - printf ("\n checking parent permissions on : %s", theFileName); - fflush(0); + //printf ("\n checking parent permissions on : %s", theFileName); return checkUserFilePermissions(theFileName, uid, gid); } @@ -596,7 +595,7 @@ int checkUserFilePermissions(char *fileName, int uid, int gid) if (uid == 0 || gid == 0) { - printf("\n User is root"); + //printf("\n User is root"); return FILE_PERMISSION_RW; } @@ -621,19 +620,19 @@ int checkUserFilePermissions(char *fileName, int uid, int gid) if (info.st_uid == uid || info.st_gid == gid) { - printf("\n User is owner"); + //printf("\n User is owner"); filePermissions = FILE_PERMISSION_RW; } else { mode_t perm = info.st_mode; if ((perm & S_IROTH)){ - printf("\nfile can be readen"); + //printf("\nfile can be readen"); filePermissions |= FILE_PERMISSION_R; } if ((perm & S_IWOTH)){ - printf("\nfile can be written"); + //printf("\nfile can be written"); filePermissions |= FILE_PERMISSION_W; } }