diff options
author | viper viper@31f1291d-b8d6-0310-a050-a5561fc1590b <viper viper@31f1291d-b8d6-0310-a050-a5561fc1590b@5417fbe8-f217-4b02-8779-1006273d7864> | 2008-09-02 15:14:59 +0000 |
---|---|---|
committer | viper viper@31f1291d-b8d6-0310-a050-a5561fc1590b <viper viper@31f1291d-b8d6-0310-a050-a5561fc1590b@5417fbe8-f217-4b02-8779-1006273d7864> | 2008-09-02 15:14:59 +0000 |
commit | 6846e75cc883f690ab4bfa83bdd398d83df5c0c9 (patch) | |
tree | e00b1c42cfdb4ec0b59681bacf027085dae14224 /src | |
parent | 90833c2ba1f8a8e3d2fa3a014f6d114a064b2494 (diff) |
BUILD : 1.7.21 (1424) BUGS : 934 NOTES : Fixed bogus password being returned by enc_none when password was truncated.
git-svn-id: svn://svn.anope.org/anope/trunk@1424 31f1291d-b8d6-0310-a050-a5561fc1590b
git-svn-id: http://anope.svn.sourceforge.net/svnroot/anope/trunk@1139 5417fbe8-f217-4b02-8779-1006273d7864
Diffstat (limited to 'src')
-rw-r--r-- | src/core/enc_none.c | 6 | ||||
-rw-r--r-- | src/core/ns_register.c | 14 |
2 files changed, 10 insertions, 10 deletions
diff --git a/src/core/enc_none.c b/src/core/enc_none.c index 0249d4c6c..2e6316648 100644 --- a/src/core/enc_none.c +++ b/src/core/enc_none.c @@ -41,10 +41,10 @@ void AnopeFini(void) { int plain_encrypt(const char *src,int len,char *dest,int size) { if(size>=len) { - memset(dest,0,size); + memset(dest,0,size); strncpy(dest,src,len); dest[len] = '\0'; - return 0; + return 0; } return -1; } @@ -61,7 +61,7 @@ int plain_encrypt_check_len(int passlen, int bufsize) { } int plain_decrypt(const char *src, char *dest, int size) { - memset(dest,0,size); + memset(dest,0,size+1); strncpy(dest,src,size); return 1; } diff --git a/src/core/ns_register.c b/src/core/ns_register.c index d2e8ea610..5ee5f6542 100644 --- a/src/core/ns_register.c +++ b/src/core/ns_register.c @@ -189,7 +189,7 @@ int do_register(User * u) notice_lang(s_NickServ, u, MAIL_X_INVALID, email); } else { if (strlen(pass) > PASSMAX) { - pass[PASSMAX] = 0; + pass[PASSMAX] = '\0'; notice_lang(s_NickServ, u, PASSWORD_TRUNCATED, PASSMAX); } for (idx = 0; idx < 9; idx++) { @@ -307,7 +307,7 @@ int do_confirm(User * u) if (na) { int i; char tsbuf[16]; - char tmp_pass[PASSMAX]; + char tmp_pass[PASSMAX]; len = strlen(pass); na->nc->pass = smalloc(PASSMAX); @@ -366,19 +366,19 @@ int do_confirm(User * u) notice_lang(s_NickServ, u, NICK_REGISTERED_NO_MASK, u->nick); send_event(EVENT_NICK_REGISTERED, 1, u->nick); - - if(enc_decrypt(na->nc->pass,tmp_pass,PASSMAX)==1) + + if(enc_decrypt(na->nc->pass,tmp_pass,PASSMAX)==1) notice_lang(s_NickServ, u, NICK_PASSWORD_IS, tmp_pass); u->lastnickreg = time(NULL); if (ircd->modeonreg) { len = strlen(ircd->modeonreg); strncpy(modes,ircd->modeonreg,512); - if(ircd->rootmodeonid && is_services_root(u)) { + if(ircd->rootmodeonid && is_services_root(u)) { strncat(modes,ircd->rootmodeonid,512-len); - } else if(ircd->adminmodeonid && is_services_admin(u)) { + } else if(ircd->adminmodeonid && is_services_admin(u)) { strncat(modes,ircd->adminmodeonid,512-len); - } else if(ircd->opermodeonid && is_services_oper(u)) { + } else if(ircd->opermodeonid && is_services_oper(u)) { strncat(modes,ircd->opermodeonid,512-len); } |