123456789101112131415161718192021222324252627282930313233343536 |
- /* vi: set sw=4 ts=4: */
- /*
- * Ckeck user and group names for illegal characters
- *
- * Copyright (C) 2008 Tito Ragusa <farmatito@tiscali.it>
- *
- * Licensed under GPLv2 or later, see file LICENSE in this tarball for details.
- */
- #include "libbb.h"
- /* To avoid problems, the username should consist only of
- * letters, digits, underscores, periods, at signs and dashes,
- * and not start with a dash (as defined by IEEE Std 1003.1-2001).
- * For compatibility with Samba machine accounts $ is also supported
- * at the end of the username.
- */
- void die_if_bad_username(const char *name)
- {
- goto skip; /* 1st char being dash isn't valid */
- do {
- if (*name == '-')
- continue;
- skip:
- if (isalnum(*name)
- || *name == '_'
- || *name == '.'
- || *name == '@'
- || (*name == '$' && !*(name + 1))
- ) {
- continue;
- }
- bb_error_msg_and_die("illegal character '%c'", *name);
- } while (*++name);
- }
|