From 33e95f039e696d2cfe6b673166a064e48ed1e341 Mon Sep 17 00:00:00 2001 Message-Id: <33e95f039e696d2cfe6b673166a064e48ed1e341.1716685642.git.mdw@distorted.org.uk> From: Mark Wooding Date: Tue, 24 Jun 2008 21:19:06 +0100 Subject: [PATCH] Use email_valid() to check email addresses throughout Organization: Straylight/Edgeware From: Richard Kettlewell --- cgi/actions.c | 6 ++---- lib/trackdb.c | 5 +++-- server/server.c | 3 +-- 3 files changed, 6 insertions(+), 8 deletions(-) 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; -- [mdw]