X-Git-Url: http://git.bytex64.net/?a=blobdiff_plain;f=common%2Fauth.c;h=7e63f968881f0455146ca96c914970153ff9fb79;hb=54789cc8538714fc3622646721f6f2ecceae94ac;hp=1b6ecb67f7da615e610bbf4d4a85e7ca51a1d942;hpb=e2f51ade69169968d9d54d3b601527a51c66f6ba;p=blerg.git diff --git a/common/auth.c b/common/auth.c index 1b6ecb6..7e63f96 100644 --- a/common/auth.c +++ b/common/auth.c @@ -1,3 +1,6 @@ +/* Blerg is (C) 2011 The Dominion of Awesome, and is distributed under a + * BSD-style license. Please see the COPYING file for details. + */ #include #include #include @@ -6,6 +9,7 @@ #include #include "config.h" #include "auth.h" +#include "util.h" #define TOKEN_SIZE 16 @@ -13,7 +17,7 @@ int auth_set_password(const char *username, const char *password) { char filename[512]; int fd; - if (!blerg_exists(username)) + if (!valid_name(username) || !blerg_exists(username)) return 0; snprintf(filename, 512, "%s/%s/password", DATA_PATH, username); @@ -29,6 +33,9 @@ int auth_get_password(const char *username, char *password) { int fd; int len = 0; + if (!valid_name(username)) + return 0; + sprintf(filename, "%s/%s/password", DATA_PATH, username); fd = open(filename, O_RDONLY); if (fd == -1) @@ -107,6 +114,10 @@ int auth_login(const char *username, const char *password) { int auth_logout(const char *username) { char filename[512]; + + if (!valid_name(username)) + return 0; + sprintf(filename, "%s/%s/token", DATA_PATH, username); if (unlink(filename) == -1) return 0; @@ -119,6 +130,9 @@ char *auth_get_token(const char *username) { char *token; int token_fd; + if (!valid_name(username)) + return 0; + sprintf(filename, "%s/%s/token", DATA_PATH, username); token_fd = open(filename, O_RDONLY, 0600); if (token_fd == -1) {