summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Changes1
-rw-r--r--Changes.lang2
-rw-r--r--lang/cat.l4
-rw-r--r--lang/de.l4
-rw-r--r--lang/en_us.l4
-rw-r--r--lang/es.l4
-rw-r--r--lang/fr.l4
-rw-r--r--lang/gr.l4
-rw-r--r--lang/hun.l4
-rw-r--r--lang/it.l4
-rw-r--r--lang/nl.l4
-rw-r--r--lang/pl.l5
-rw-r--r--lang/pt.l4
-rw-r--r--lang/ru.l4
-rw-r--r--lang/tr.l4
-rw-r--r--src/core/cs_getpass.c10
-rw-r--r--src/core/cs_register.c19
-rw-r--r--src/core/cs_set.c7
-rw-r--r--src/core/enc_none.c3
-rw-r--r--src/core/ns_getpass.c8
-rw-r--r--src/core/ns_register.c6
-rw-r--r--src/core/ns_saset.c11
-rw-r--r--src/core/ns_set.c11
-rw-r--r--version.log6
24 files changed, 67 insertions, 70 deletions
diff --git a/Changes b/Changes
index 5354f4539..7efd4e46b 100644
--- a/Changes
+++ b/Changes
@@ -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.
diff --git a/lang/de.l b/lang/de.l
index 76ddd4d72..0c74a56a7 100644
--- a/lang/de.l
+++ b/lang/de.l
@@ -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.
diff --git a/lang/es.l b/lang/es.l
index ad8e429af..8e6f5fc67 100644
--- a/lang/es.l
+++ b/lang/es.l
@@ -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.
diff --git a/lang/fr.l b/lang/fr.l
index b96ca7b51..9577a8dac 100644
--- a/lang/fr.l
+++ b/lang/fr.l
@@ -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é.
diff --git a/lang/gr.l b/lang/gr.l
index ff18f3c23..68d7145f2 100644
--- a/lang/gr.l
+++ b/lang/gr.l
@@ -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
diff --git a/lang/it.l b/lang/it.l
index 3ac9b332f..aca23de0f 100644
--- a/lang/it.l
+++ b/lang/it.l
@@ -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.
diff --git a/lang/nl.l b/lang/nl.l
index 8dbf017e6..9afeacc67 100644
--- a/lang/nl.l
+++ b/lang/nl.l
@@ -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.
diff --git a/lang/pl.l b/lang/pl.l
index 258972fd1..32acae6f0 100644
--- a/lang/pl.l
+++ b/lang/pl.l
@@ -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.
diff --git a/lang/pt.l b/lang/pt.l
index 0efd8154a..5bc1fc985 100644
--- a/lang/pt.l
+++ b/lang/pt.l
@@ -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.
diff --git a/lang/ru.l b/lang/ru.l
index b8cb444e3..85d524da9 100644
--- a/lang/ru.l
+++ b/lang/ru.l
@@ -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
Âàø íèê íå çàðåãèñòðèðîâàí.
diff --git a/lang/tr.l b/lang/tr.l
index c7304fb13..fb16ddfeb 100644
--- a/lang/tr.l
+++ b/lang/tr.l
@@ -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.