|
|
good_name(const char *name) | good_name(const char *name) |
{ | { |
/* | /* |
* User/group names must match [a-z_][a-z0-9_-]* |
* User/group names must match [a-z_][a-z0-9_-.]* |
*/ | */ |
if (!*name || !((*name >= 'a' && *name <= 'z') || *name == '_')) |
if (!*name || !((*name >= 'a' && *name <= 'z') || *name == '_' || *name == '.')) |
return 0; | return 0; |
| |
while (*++name) { | while (*++name) { |
if (!((*name >= 'a' && *name <= 'z') || | if (!((*name >= 'a' && *name <= 'z') || |
(*name >= '0' && *name <= '9') || | (*name >= '0' && *name <= '9') || |
*name == '_' || *name == '-' || |
*name == '_' || *name == '-' || *name == '.' || |
(*name == '$' && *(name+1) == NULL))) | (*name == '$' && *(name+1) == NULL))) |
return 0; | return 0; |
} | } |