From: Richard Kettlewell Date: Tue, 24 Jun 2008 20:19:06 +0000 (+0100) Subject: Use email_valid() to check email addresses throughout X-Git-Tag: 4.1~10 X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~mdw/git/disorder/commitdiff_plain/33e95f039e696d2cfe6b673166a064e48ed1e341 Use email_valid() to check email addresses throughout --- diff --git a/cgi/actions.c b/cgi/actions.c index a139eaf..4d064e0 100644 --- a/cgi/actions.c +++ b/cgi/actions.c @@ -435,8 +435,7 @@ static void act_register(void) { } /* We could well do better address validation but for now we'll just do the * minimum */ - /* TODO use email_valid() */ - if(!strchr(email, '@')) { + if(!email_valid(email)) { login_error("bademail"); return; } @@ -525,8 +524,7 @@ static void act_edituser(void) { } } else password = password2 = 0; - /* TODO use email_valid() */ - if(email && !strchr(email, '@')) { + if(email && !email_valid(email)) { login_error("bademail"); return; } diff --git a/lib/trackdb.c b/lib/trackdb.c index 3647f10..08aeac2 100644 --- a/lib/trackdb.c +++ b/lib/trackdb.c @@ -60,6 +60,7 @@ #include "unicode.h" #include "unidata.h" #include "base64.h" +#include "sendmail.h" #define RESCAN "disorder-rescan" #define DEADLOCK "disorder-deadlock" @@ -2784,8 +2785,8 @@ int trackdb_edituserinfo(const char *user, } } else if(!strcmp(key, "email")) { if(*value) { - if(!strchr(value, '@')) { - error(0, "invalid email address '%s' for user '%s'", user, value); + if(!email_valid(value)) { + error(0, "invalid email address '%s' for user '%s'", value, user); return -1; } } else diff --git a/server/server.c b/server/server.c index ad3a7ab..c4c889a 100644 --- a/server/server.c +++ b/server/server.c @@ -1426,9 +1426,8 @@ static int c_reminder(struct conn *c, sink_writes(ev_writer_sink(c->w), "550 Cannot send a reminder email\n"); return 1; } - /* TODO use email_valid() */ if(!(email = kvp_get(k, "email")) - || !strchr(email, '@')) { + || !email_valid(email)) { error(0, "user '%s' has no valid email address", vec[0]); sink_writes(ev_writer_sink(c->w), "550 Cannot send a reminder email\n"); return 1;