diff options
-rw-r--r-- | Changes | 1 | ||||
-rw-r--r-- | Changes.lang | 2 | ||||
-rw-r--r-- | lang/cat.l | 4 | ||||
-rw-r--r-- | lang/de.l | 4 | ||||
-rw-r--r-- | lang/en_us.l | 4 | ||||
-rw-r--r-- | lang/es.l | 4 | ||||
-rw-r--r-- | lang/fr.l | 4 | ||||
-rw-r--r-- | lang/gr.l | 4 | ||||
-rw-r--r-- | lang/hun.l | 4 | ||||
-rw-r--r-- | lang/it.l | 4 | ||||
-rw-r--r-- | lang/nl.l | 4 | ||||
-rw-r--r-- | lang/pl.l | 5 | ||||
-rw-r--r-- | lang/pt.l | 4 | ||||
-rw-r--r-- | lang/ru.l | 4 | ||||
-rw-r--r-- | lang/tr.l | 4 | ||||
-rw-r--r-- | src/core/cs_getpass.c | 10 | ||||
-rw-r--r-- | src/core/cs_register.c | 19 | ||||
-rw-r--r-- | src/core/cs_set.c | 7 | ||||
-rw-r--r-- | src/core/enc_none.c | 3 | ||||
-rw-r--r-- | src/core/ns_getpass.c | 8 | ||||
-rw-r--r-- | src/core/ns_register.c | 6 | ||||
-rw-r--r-- | src/core/ns_saset.c | 11 | ||||
-rw-r--r-- | src/core/ns_set.c | 11 | ||||
-rw-r--r-- | version.log | 6 |
24 files changed, 67 insertions, 70 deletions
@@ -1,5 +1,6 @@ Anope Version S V N -------------------- +09/18 R Removed password truncating. [ #00] 09/15 F Dealt with the nss_dns.so.1 issue on freebsd 7. [ #00] Anope Version 1.7.22 diff --git a/Changes.lang b/Changes.lang index 26f8661fd..2b9ef0b79 100644 --- a/Changes.lang +++ b/Changes.lang @@ -1,10 +1,12 @@ Anope Version S V N -------------------- *** New Strings: + PASSWORD_TOO_LONG *** Mod Strings: *** Del Strings: + PASSWORD_TRUNCATED Anope Version 1.7.22 -------------------- diff --git a/lang/cat.l b/lang/cat.l index 83c4ea618..8b3ddbced 100644 --- a/lang/cat.l +++ b/lang/cat.l @@ -183,8 +183,8 @@ RAW_DISABLED MORE_OBSCURE_PASSWORD Per favor intenti novamente amb una clau mes oculta. Les claus han de ser de com a mínim 5 caràcters, no han de ser fàcils d'encertar (ex. Nom real o Nick), i no poden contenir el caràcter d'espai o tabulació. -PASSWORD_TRUNCATED - Noticia: La clau ha estat retallada a %d caracters. +PASSWORD_TOO_LONG + Your password is too long. Please try again with a shorter password. NICK_NOT_REGISTERED El teu nick no esta registrat. @@ -205,8 +205,8 @@ MORE_OBSCURE_PASSWORD nichts mit deinem Nicknamen zu tun haben. Weiterhin kann keine Leer oder Tabulatortaste enthalten sein. -PASSWORD_TRUNCATED - Achtung: Dein Passwort wurde auf %d Zeichen gekürzt. +PASSWORD_TOO_LONG + Your password is too long. Please try again with a shorter password. NICK_NOT_REGISTERED Dein Nickname ist nicht registriert. diff --git a/lang/en_us.l b/lang/en_us.l index 403824a6b..2e76da6f4 100644 --- a/lang/en_us.l +++ b/lang/en_us.l @@ -182,8 +182,8 @@ RAW_DISABLED MORE_OBSCURE_PASSWORD Please try again with a more obscure password. Passwords should be at least five characters long, should not be something easily guessed (e.g. your real name or your nick), and cannot contain the space or tab characters. -PASSWORD_TRUNCATED - Notice: Your password has been truncated to %d characters. +PASSWORD_TOO_LONG + Your password is too long. Please try again with a shorter password. NICK_NOT_REGISTERED Your nick isn't registered. @@ -187,8 +187,8 @@ MORE_OBSCURE_PASSWORD Las claves deben tener al menos 5 caracteres, no deben ser algo facil de adivinar (ej. Nombre real o Nick), y no pueden contener el caracter de espacio o tabulacion. -PASSWORD_TRUNCATED - Noticia: Tu clave ha sido reducida a %d caracteres. +PASSWORD_TOO_LONG + Your password is too long. Please try again with a shorter password. NICK_NOT_REGISTERED Tu nick no esta registrado. @@ -188,8 +188,8 @@ RAW_DISABLED MORE_OBSCURE_PASSWORD Veuillez réessayer avec un mot de passe plus difficile à trouver. Les mots de passe doivent contenir au moins cinq caractères, ne doivent pas être trop facilement devinables (par exemple votre vrai nom ou votre pseudo), et ne doit pas contenir d'espaces ou de tabulations. -PASSWORD_TRUNCATED - Note: Votre mot de passe a été tronqué à %d caractères. +PASSWORD_TOO_LONG + Your password is too long. Please try again with a shorter password. NICK_NOT_REGISTERED Votre pseudo n'est pas enregistré. @@ -182,8 +182,8 @@ RAW_DISABLED MORE_OBSCURE_PASSWORD Ðáñáêáëþ ðñïóðÜèçóå îáíÜ ìå Ýíáí ðéï ðïëýðëïêï êùäéêü. Ïé êùäéêïß ðñÝðåé íá åßíáé ôïõëÜ÷éóôïí Ýùò ðÝíôå ÷áñáêôÞñåò, íá ìçí åßíáé åýêïëïé íá ìáíôåõôïýí (ð.÷. ôï ðñáãìáôéêü ïíïìÜ óïõ Þ ôï øåõäþíõìï óïõ), êáé íá ìçí ðåñéÝ÷åé êåíü Þ äéÜöïðïõò Üëëïõò ÷áñáêôÞñåò. -PASSWORD_TRUNCATED - ÐáñáôÞñçóç: Ï êùäéêüò Ý÷åé ìåôáôñáðåß óå %d ÷áñáêôÞñåò. +PASSWORD_TOO_LONG + Your password is too long. Please try again with a shorter password. NICK_NOT_REGISTERED Áõôü ôï øåõäþíõìï äåí Ý÷åé êáôï÷õñùèåß. diff --git a/lang/hun.l b/lang/hun.l index 11dee5351..0bfe350b6 100644 --- a/lang/hun.l +++ b/lang/hun.l @@ -193,8 +193,8 @@ MORE_OBSCURE_PASSWORD Próbálj nehezebb jelszót használni .Jelszavad min. öt karakter legyen, és nem kitalálható legyen, (ne a nickneved/valósneved), ne legyen benne írásjel. -PASSWORD_TRUNCATED - Megjegyzés: A jelszavad %d karakter hosszúságúra lett csonkítva. +PASSWORD_TOO_LONG + Your password is too long. Please try again with a shorter password. NICK_NOT_REGISTERED A neved még nem regisztrált. NICK_NOT_REGISTERED_HELP @@ -184,8 +184,8 @@ RAW_DISABLED MORE_OBSCURE_PASSWORD Per favore, prova di nuovo con una password più oscura. Le password devono essere lunghe almeno 5 caratteri, non devono essere indovinate facilmente (ad es. il proprio nome o nick), e non possono contenere i caratteri di spazio e di tabulazione. -PASSWORD_TRUNCATED - Nota: La tua password è stata troncata a %d caratteri. +PASSWORD_TOO_LONG + Your password is too long. Please try again with a shorter password. NICK_NOT_REGISTERED Il tuo nick non è registrato. @@ -185,8 +185,8 @@ RAW_DISABLED MORE_OBSCURE_PASSWORD Probeer aub opnieuw met een onduidelijker wachtwoord. Wachtwoorden moeten tenminste 5 tekens lang zijn, niet iets makkelijk raadbaars (bijv. je echte naam of je nick), en kan geen tab of spatie bevatten. -PASSWORD_TRUNCATED - Let op: Je wachtwoord is ingekort tot %d tekens. +PASSWORD_TOO_LONG + Je wachtwoord is te lang. Probeer het opnieuw met een korter wachtwoord. NICK_NOT_REGISTERED Je nick is niet geregistreerd. @@ -199,9 +199,8 @@ MORE_OBSCURE_PASSWORD Proszê spróbowaæ ponownie z trudniejszym has³em. Has³o powinno mieæ minimum 5 znaków oraz powinno zawieraæ cyfry i litery. -PASSWORD_TRUNCATED - Informacja: Twoje has³o zosta³o skrócone - do %d znaków. +PASSWORD_TOO_LONG + Your password is too long. Please try again with a shorter password. NICK_NOT_REGISTERED Twój nick jest niezarejestrowany. @@ -192,8 +192,8 @@ RAW_DISABLED MORE_OBSCURE_PASSWORD Por favor tente novamente com uma senha mais difícil. Não use TAB ou espaços. -PASSWORD_TRUNCATED - Atenção: Sua senha foi reduzida a %d caracteres. +PASSWORD_TOO_LONG + Your password is too long. Please try again with a shorter password. NICK_NOT_REGISTERED Seu nick não está registrado. @@ -188,8 +188,8 @@ RAW_DISABLED MORE_OBSCURE_PASSWORD Ïîæàëóéñòà, ïîïðîáóéòå ñíîâà ñ áîëåå ñëîæíûì ïàðîëåì. Ïàðîëü äîëæåí èìåòü äëèíó íå ìåíåå 5 ñèìâîëîâ, ñîñòîÿòü òîëüêî èç ëàòèíñêèõ áóêâ èëè öèôð, íå áûòü ëåãêî îòãàäûâàåìûì (ò.å. Âàøèì èìåíåì èëè Âàøèì íèêîì), è íå äîëæåí ñîäåðæàòü ïðîáåëîâ è òàáóëÿöèé. -PASSWORD_TRUNCATED - Ïðèìå÷àíèå: Âàø ïàðîëü áûë óñå÷åí äî %d ñèìâîëîâ. +PASSWORD_TOO_LONG + Your password is too long. Please try again with a shorter password. NICK_NOT_REGISTERED Âàø íèê íå çàðåãèñòðèðîâàí. @@ -186,8 +186,8 @@ RAW_DISABLED MORE_OBSCURE_PASSWORD Lütfen daha zor bir þifre deneyin. Þifreler en az 5 karakter uzunlukta, kolayca tahmin edilemeyecek birþey olmalýdýr(ör: gerçek isminiz, nickiniz v.b. olmamalýdýr), ve boþlukla tab kullanýlmamalýdýr. -PASSWORD_TRUNCATED - Uyarý: Þifreniz %d karaktere kadar kýsaltýldý. +PASSWORD_TOO_LONG + Your password is too long. Please try again with a shorter password. NICK_NOT_REGISTERED Nickiniz kayýtlý deðil. diff --git a/src/core/cs_getpass.c b/src/core/cs_getpass.c index b0babe98b..94ec03efa 100644 --- a/src/core/cs_getpass.c +++ b/src/core/cs_getpass.c @@ -84,7 +84,7 @@ int do_getpass(User * u) } else if (CSRestrictGetPass && !is_services_root(u)) { notice_lang(s_ChanServ, u, PERMISSION_DENIED); } else { - if(enc_decrypt(ci->founderpass,tmp_pass,PASSMAX)==1) { + if(enc_decrypt(ci->founderpass,tmp_pass,PASSMAX)==1) { alog("%s: %s!%s@%s used GETPASS on %s", s_ChanServ, u->nick, u->username, u->host, ci->name); if (WallGetpass) { @@ -93,10 +93,10 @@ int do_getpass(User * u) u->nick, chan); } notice_lang(s_ChanServ, u, CHAN_GETPASS_PASSWORD_IS, - chan, ci->founderpass); - } else { - notice_lang(s_ChanServ, u, CHAN_GETPASS_UNAVAILABLE); - } + chan, tmp_pass); + } else { + notice_lang(s_ChanServ, u, CHAN_GETPASS_UNAVAILABLE); + } } return MOD_CONT; } diff --git a/src/core/cs_register.c b/src/core/cs_register.c index 4fac58578..73319b36f 100644 --- a/src/core/cs_register.c +++ b/src/core/cs_register.c @@ -118,14 +118,14 @@ int do_register(User * u) } else if (!is_servadmin && nc->channelmax > 0 && nc->channelcount >= nc->channelmax) { - notice_lang(s_ChanServ, u, - nc->channelcount > - nc-> - channelmax ? CHAN_EXCEEDED_CHANNEL_LIMIT : + notice_lang(s_ChanServ, u, nc->channelcount > + nc->channelmax ? CHAN_EXCEEDED_CHANNEL_LIMIT : CHAN_REACHED_CHANNEL_LIMIT, nc->channelmax); } else if (stricmp(u->nick, pass) == 0 || (StrictPasswords && strlen(pass) < 5)) { notice_lang(s_ChanServ, u, MORE_OBSCURE_PASSWORD); + } else if(enc_encrypt_check_len(strlen(pass) ,PASSMAX)) { + notice_lang(s_ChanServ, u, PASSWORD_TOO_LONG); } else if (!(ci = makechan(chan))) { alog("%s: makechan() failed for REGISTER %s", s_ChanServ, chan); notice_lang(s_ChanServ, u, CHAN_REGISTRATION_FAILED); @@ -145,8 +145,7 @@ int do_register(User * u) ci->memos.memomax = MSMaxMemos; ci->last_used = ci->time_registered; ci->founder = nc; - if (strlen(pass) > PASSMAX) - notice_lang(s_ChanServ, u, PASSWORD_TRUNCATED, PASSMAX); + memset(pass, 0, strlen(pass)); memcpy(ci->founderpass, founderpass, PASSMAX); ci->desc = sstrdup(desc); @@ -164,10 +163,10 @@ int do_register(User * u) alog("%s: Channel '%s' registered by %s!%s@%s", s_ChanServ, chan, u->nick, u->username, u->host); notice_lang(s_ChanServ, u, CHAN_REGISTERED, chan, u->nick); - - if(enc_decrypt(ci->founderpass,tmp_pass,PASSMAX) == 1) { - notice_lang(s_ChanServ, u, CHAN_PASSWORD_IS, ci->founderpass); - } + + if(enc_decrypt(ci->founderpass,tmp_pass,PASSMAX) == 1) { + notice_lang(s_ChanServ, u, CHAN_PASSWORD_IS, tmp_pass); + } uc = scalloc(sizeof(*uc), 1); uc->next = u->founder_chans; diff --git a/src/core/cs_set.c b/src/core/cs_set.c index 24a749662..9225f434f 100644 --- a/src/core/cs_set.c +++ b/src/core/cs_set.c @@ -373,10 +373,9 @@ int do_set_password(User * u, ChannelInfo * ci, char *param) return MOD_CONT; } - if (len > PASSMAX) { - len = PASSMAX; - param[len] = 0; - notice_lang(s_ChanServ, u, PASSWORD_TRUNCATED, PASSMAX); + if (enc_encrypt_check_len(len ,PASSMAX)) { + notice_lang(s_ChanServ, u, PASSWORD_TOO_LONG); + return MOD_CONT; } if (enc_encrypt(param, len, ci->founderpass, PASSMAX) < 0) { diff --git a/src/core/enc_none.c b/src/core/enc_none.c index 2e6316648..871a85620 100644 --- a/src/core/enc_none.c +++ b/src/core/enc_none.c @@ -61,8 +61,9 @@ int plain_encrypt_check_len(int passlen, int bufsize) { } int plain_decrypt(const char *src, char *dest, int size) { - memset(dest,0,size+1); + memset(dest,0,size); strncpy(dest,src,size); + dest[size] = '\0'; return 1; } diff --git a/src/core/ns_getpass.c b/src/core/ns_getpass.c index 8fc917306..d15f5d086 100644 --- a/src/core/ns_getpass.c +++ b/src/core/ns_getpass.c @@ -96,17 +96,17 @@ int do_getpass(User * u) } else if (NSRestrictGetPass && !is_services_root(u)) { notice_lang(s_NickServ, u, PERMISSION_DENIED); } else { - if(enc_decrypt(na->nc->pass,tmp_pass,PASSMAX)==1) { + if(enc_decrypt(na->nc->pass,tmp_pass,PASSMAX)==1) { alog("%s: %s!%s@%s used GETPASS on %s", s_NickServ, u->nick, u->username, u->host, nick); if (WallGetpass) anope_cmd_global(s_NickServ, "\2%s\2 used GETPASS on \2%s\2", u->nick, nick); notice_lang(s_NickServ, u, NICK_GETPASS_PASSWORD_IS, nick, - na->nc->pass); - } else { + tmp_pass); + } else { notice_lang(s_NickServ, u, NICK_GETPASS_UNAVAILABLE); - } + } } return MOD_CONT; } diff --git a/src/core/ns_register.c b/src/core/ns_register.c index 5ee5f6542..de9ec7d7b 100644 --- a/src/core/ns_register.c +++ b/src/core/ns_register.c @@ -185,13 +185,11 @@ int do_register(User * u) } else if (stricmp(u->nick, pass) == 0 || (StrictPasswords && strlen(pass) < 5)) { notice_lang(s_NickServ, u, MORE_OBSCURE_PASSWORD); + } else if (enc_encrypt_check_len(strlen(pass), PASSMAX)) { + notice_lang(s_NickServ, u, PASSWORD_TOO_LONG); } else if (email && !MailValidate(email)) { notice_lang(s_NickServ, u, MAIL_X_INVALID, email); } else { - if (strlen(pass) > PASSMAX) { - pass[PASSMAX] = '\0'; - notice_lang(s_NickServ, u, PASSWORD_TRUNCATED, PASSMAX); - } for (idx = 0; idx < 9; idx++) { passcode[idx] = chars[(1 + diff --git a/src/core/ns_saset.c b/src/core/ns_saset.c index ce790d6b2..937ccd42b 100644 --- a/src/core/ns_saset.c +++ b/src/core/ns_saset.c @@ -235,12 +235,9 @@ int do_saset_password(User * u, NickCore * nc, char *param) || (StrictPasswords && len < 5)) { notice_lang(s_NickServ, u, MORE_OBSCURE_PASSWORD); return MOD_CONT; - } - - if (len > PASSMAX) { - len = PASSMAX; - param[len] = 0; - notice_lang(s_NickServ, u, PASSWORD_TRUNCATED, PASSMAX); + } else if (enc_encrypt_check_len(len ,PASSMAX)) { + notice_lang(s_NickServ, u, PASSWORD_TOO_LONG); + return MOD_CONT; } if (nc->pass) @@ -261,7 +258,7 @@ int do_saset_password(User * u, NickCore * nc, char *param) if(enc_decrypt(nc->pass,tmp_pass,PASSMAX)==1) { notice_lang(s_NickServ, u, NICK_SASET_PASSWORD_CHANGED_TO, nc->display, - nc->pass); + tmp_pass); } else { notice_lang(s_NickServ, u, NICK_SASET_PASSWORD_CHANGED, nc->display); } diff --git a/src/core/ns_set.c b/src/core/ns_set.c index 54f381dd1..00c712e34 100644 --- a/src/core/ns_set.c +++ b/src/core/ns_set.c @@ -208,12 +208,9 @@ int do_set_password(User * u, NickCore * nc, char *param) if (stricmp(nc->display, param) == 0 || (StrictPasswords && len < 5)) { notice_lang(s_NickServ, u, MORE_OBSCURE_PASSWORD); return MOD_CONT; - } - - if (len > PASSMAX) { - len = PASSMAX; - param[len] = 0; - notice_lang(s_NickServ, u, PASSWORD_TRUNCATED, PASSMAX); + } else if (enc_encrypt_check_len(len ,PASSMAX)) { + notice_lang(s_NickServ, u, PASSWORD_TOO_LONG); + return MOD_CONT; } if (nc->pass) @@ -232,7 +229,7 @@ int do_set_password(User * u, NickCore * nc, char *param) memset(param, 0, len); if(enc_decrypt(nc->pass,tmp_pass,PASSMAX)==1) { - notice_lang(s_NickServ, u, NICK_SET_PASSWORD_CHANGED_TO, nc->pass); + notice_lang(s_NickServ, u, NICK_SET_PASSWORD_CHANGED_TO, tmp_pass); } else { notice_lang(s_NickServ, u, NICK_SET_PASSWORD_CHANGED); } diff --git a/version.log b/version.log index 4cfab8da1..c9e26981f 100644 --- a/version.log +++ b/version.log @@ -9,10 +9,14 @@ VERSION_MAJOR="1" VERSION_MINOR="7" VERSION_PATCH="22" VERSION_EXTRA="-svn" -VERSION_BUILD="1445" +VERSION_BUILD="1446" # $Log$ # +# BUILD : 1.7.22 (1446) +# BUGS : +# NOTES : Removed password truncating and fixed a crashbug in enc_none. This build still crashes on CS GETPASS on some systems though. Someone take a look at termination of ci->founderpass pls. +# # BUILD : 1.7.22 (1445) # BUGS : # NOTES : Added missing entries for .22 release to Changes.lang. |