From: Jean-Marc Pigeon (Delson) Date: Wed, 2 Jul 2025 19:39:04 +0000 (-0400) Subject: Auth plain/login seesm working no memory leak X-Git-Tag: tag-0.12~50 X-Git-Url: https://jmp-git.ovh.safe.ca/?a=commitdiff_plain;h=f027e0ae75d25774c213a76926780c65d0c793fe;p=jmp%2Fmailleur Auth plain/login seesm working no memory leak --- diff --git a/data-feed/feedxx.tst b/data-feed/feedxx.tst index e596bd9..845b533 100644 --- a/data-feed/feedxx.tst +++ b/data-feed/feedxx.tst @@ -29,9 +29,11 @@ S:bWFpbGxldXI= R:235 5.7.5 Authentication successful S:AUTH PLAIN AHVzZXIxQG1haWxwb3N0Zy5leGFtcGxlLmNvbQBtYWlsbGV1cg== R:504 5.7.4 authentication failed -S:AUTH PLAIN QmlncmVfYmlncmUgbm91c2Vy +#\0bigre_bigre\0nouser +S:AUTH PLAIN XDBiaWdyZV9iaWdyZVwwbm91c2Vy R:504 5.7.4 authentication failed -S:AUTH PLAIN cG9zdG1hc3RlckBleGFtcGxlLmNvbSBub3Bhc3N3ZA== +#\0postmaster@example.com\0nopasswd +S:AUTH PLAIN XDBwb3N0bWFzdGVyQGV4YW1wbGUuY29tXDBub3Bhc3N3ZA== R:504 5.7.4 authentication failed S:QUIT R:221 2.0.0 Bye, closing connection... diff --git a/lib/lvleml.c b/lib/lvleml.c index 362aacd..66f0361 100644 --- a/lib/lvleml.c +++ b/lib/lvleml.c @@ -317,7 +317,6 @@ char local[200]; decoded=(char *)0; (void) memset(local,'\000',sizeof(local)); (void) strncpy(local,received,sizeof(local)-1); -(void) rou_alert(0,"%s received=<%s",OPEP,received); if (strlen(local)==0) { char *line; int got; @@ -333,7 +332,6 @@ if (strlen(local)==0) { } if (strlen(local)>0) decoded=cnv_getb64(local); -(void) rou_alert(0,"%s decoded=<%s",OPEP,decoded); return decoded; #undef OPEP @@ -529,26 +527,31 @@ while (proceed==true) { } break; case 4 : //we have a decoded sequence, check password - if (checklogin(contact->sqlptr,decoded)==false) { + isok=checklogin(contact->sqlptr,decoded); + break; + case 5 : //we have login status + if (strlen(decoded)>0) { //always char *data[3]; const char *fmt; (void) memset(data,'\000',sizeof(data)); (void) split_auth_plain(decoded,data); - fmt=" Auth Rejected status='%d' for user=<%s> pass=<%s>"; - (void) log_fprintlog(contact->logptr,true,fmt,BADAUTH,data[1],data[2]); - (void) sleep(2); - (void) transmit(contact,true,"%d 5.7.4 authentication failed",BADAUTH); + fmt=" Auth accepted for user=<%s>"; + if (isok==false) { + fmt=" Auth Rejected status='%d' for user=<%s> pass=<%s>"; + (void) log_fprintlog(contact->logptr,true,fmt,BADAUTH,data[1],data[2]); + (void) sleep(2); + (void) transmit(contact,true,"%d 5.7.4 authentication failed",BADAUTH); + } + else { + (void) log_fprintlog(contact->logptr,true,fmt,data[1]); + (void) transmit(contact,true,"%d 5.7.5 Authentication successful",IDOK); + } for (int i=0;i<3;i++) data[i]=rou_freestr(data[i]); - phase=999; } decoded=rou_freestr(decoded); break; - case 5 : //everything is fine - (void) transmit(contact,true,"%d 5.7.5 Authentication successful",IDOK); - isok=true; - break; default : //SAFE Guard proceed=false; break; diff --git a/lib/modrec.c b/lib/modrec.c index bda80e6..e9da599 100644 --- a/lib/modrec.c +++ b/lib/modrec.c @@ -50,7 +50,6 @@ while (data!=(char *)0) { ptr++; } seg=strdup(data); - (void) rou_alert(0,"JMPDBG seg=<%s>",seg); confargv=(char **)rou_addlist((void **)confargv,(void *)seg); data=ptr; } @@ -393,10 +392,6 @@ while (proceed==true) { //(void) rou_alert(0,"JMPDBG %s phase='%d'",OPEP,phase); switch (phase) { case 0 : //preparing iteration - //JMPDBG - for (int i=0;i",OPEP,i,argv[i]); - //JMPDBG if ((nbrbind=prepbinding(&bindings,argc,argv))==0) { (void) rou_alert(0,"%s, No listening IP found (config?)",OPEP); phase=999;