]> jfr.im git - irc/quakenet/newserv.git/commitdiff
free the duplicate string
authorPaul <redacted>
Sat, 2 Jun 2007 23:48:31 +0000 (23:48 +0000)
committerPaul <redacted>
Sat, 2 Jun 2007 23:48:31 +0000 (23:48 +0000)
chanserv/authcmds/email.c
chanserv/authcmds/hello.c
chanserv/authcmds/setemail.c
chanserv/database/chanservdb.c

index 033c835540995c4311c43935db5f59afd6d9fd1a..c890674cccb4cb92e8a75fd6b2035f4afffd8897 100644 (file)
@@ -60,12 +60,15 @@ int csa_doemail(void *source, int cargc, char **cargv) {
   rup->lastemailchange=time(NULL);
   rup->domain=findorcreatemaildomain(rup->email->content);
   addregusertomaildomain(rup, rup->domain);
-  if(local=strchr(strdup(rup->email->content), '@')) {
+  char *dupemail = strdup(rup->email->content);
+  if(local=strchr(strdup(dupemail), '@')) {
     *(local++)='\0';
     rup->localpart=getsstring(local,EMAILLEN);
   } else {
     rup->localpart=NULL;
   }
+  free(dupemail);
+
   chanservstdmessage(sender, QM_EMAILCHANGED, cargv[1]);
   cs_log(sender,"EMAIL OK username %s",rup->username);
   csdb_updateuser(rup);
index d2436414a3ee09882598771c7c82ea902abc7358..0322ef82bd27a35fc5a0b10b00076ff33267a2f7 100644 (file)
@@ -55,7 +55,8 @@ int csa_dohello(void *source, int cargc, char **cargv) {
   reguser *ruh;
   int found=0;
 
-  local=strchr(strdup(cargv[0]), '@');
+  char *dupemail = strdup(cargv[0]);
+  local=strchr(strdup(dupemail), '@');
   *(local++)='\0';
   for (ruh=mdp->users; ruh; ruh=ruh->nextbydomain) {
     if (ruh->localpart)
@@ -63,6 +64,7 @@ int csa_dohello(void *source, int cargc, char **cargv) {
         found++;
       }
   }
+  free(dupemail);
 
   if((found > mdp->actlimit) && (mdp->actlimit > 0)) {
     chanservstdmessage(sender, QM_DOMAINLIMIT);
index 6437be2a16976a6ba078ea40a37d2eeeb3e9c2f1..ffc02640bd4a6f0d754ad8401c5c4192ea409023 100644 (file)
@@ -37,12 +37,14 @@ int csa_dosetmail(void *source, int cargc, char **cargv) {
   rup->lastemailchange=time(NULL);
   rup->domain=findorcreatemaildomain(rup->email->content);
   addregusertomaildomain(rup, rup->domain);
-  if(local=strchr(strdup(rup->email->content), '@')) {
+  char *dupemail = strdup(rup->email->content);
+  if(local=strchr(strdup(dupemail), '@')) {
     *(local++)='\0';
     rup->localpart=getsstring(local,EMAILLEN);
   } else {
     rup->localpart=NULL;
   }
+  free(dupemail);
 
   chanservstdmessage(sender, QM_EMAILCHANGED, cargv[1]);
   cs_log(sender,"SETEMAIL OK username %s <%s>",rup->username,rup->email->content);
index 8cd55219c3386bafe3fd8b335f16029daa9e6809..c72f01c78611795fccfd93d16fa2344c7c53631f 100644 (file)
@@ -372,12 +372,15 @@ void loadsomeusers(PGconn *dbconn, void *arg) {
     if (rup->email) {
       rup->domain=findorcreatemaildomain(rup->email->content);
       addregusertomaildomain(rup, rup->domain);
-      if(local=strchr(strdup(rup->email->content), '@')) {
+     
+      char *dupemail = strdup(rup->email->content);
+      if(local=strchr(dupemail, '@')) {
         *(local++)='\0';
         rup->localpart=getsstring(local,EMAILLEN);
       } else {
         rup->localpart=NULL;
       }
+      free(dupemail);
     } else {
       rup->domain=NULL;
       rup->localpart=NULL;