check_user_name) renamed to is_valid_user_name (resp.
is_valid_group_name). is_valid_user_name and is_valid_group_name
return a bool.
* src/grpck.c, src/newusers.c, src/usermod.c, src/useradd.c,
src/groupmod.c, src/pwck.c, src/groupadd.c: Use is_valid_user_name
and is_valid_group_name, following above change.
* libmisc/chkname.c: Avoid implicit conversion of chars to
booleans. Add brackets and parenthesis.
+2008-05-25 Nicolas François <nicolas.francois@centraliens.net>
+
+ * libmisc/chkname.h, libmisc/chkname.c: check_group_name (resp.
+ check_user_name) renamed to is_valid_user_name (resp.
+ is_valid_group_name). is_valid_user_name and is_valid_group_name
+ return a bool.
+ * src/grpck.c, src/newusers.c, src/usermod.c, src/useradd.c,
+ src/groupmod.c, src/pwck.c, src/groupadd.c: Use is_valid_user_name
+ and is_valid_group_name, following above change.
+ * libmisc/chkname.c: Avoid implicit conversion of chars to
+ booleans. Add brackets and parenthesis.
+
2008-05-25 Nicolas François <nicolas.francois@centraliens.net>
* libmisc/xmalloc.c: Avoid implicit conversion of integers /
*/
/*
- * check_user_name(), check_group_name() - check the new user/group
- * name for validity; return value: 1 - OK, 0 - bad name
+ * is_valid_user_name(), is_valid_group_name() - check the new user/group
+ * name for validity;
+ * return values:
+ * true - OK
+ * false - bad name
*/
#include <config.h>
#else
#include <utmp.h>
#endif
-static int good_name (const char *name)
+
+static bool is_valid_name (const char *name)
{
/*
* User/group names must match [a-z_][a-z0-9_-]*[$]
*/
- if (!*name || !((*name >= 'a' && *name <= 'z') || *name == '_'))
- return 0;
+ if (('\0' == *name) ||
+ !((('a' <= *name) && ('z' >= *name)) || ('_' == *name))) {
+ return false;
+ }
- while (*++name) {
- if (!((*name >= 'a' && *name <= 'z') ||
- (*name >= '0' && *name <= '9') ||
- *name == '_' || *name == '-' ||
- (*name == '$' && *(name + 1) == '\0')))
- return 0;
+ while ('\0' != *++name) {
+ if (!(( ('a' <= *name) && ('z' >= *name) ) ||
+ ( ('0' <= *name) && ('9' >= *name) ) ||
+ ('_' == *name) ||
+ ('-' == *name) ||
+ ( ('$' == *name) && ('\0' == *(name + 1)) )
+ )) {
+ return false;
+ }
}
- return 1;
+ return true;
}
-int check_user_name (const char *name)
+bool is_valid_user_name (const char *name)
{
#if HAVE_UTMPX_H
struct utmpx ut;
* User names are limited by whatever utmp can
* handle (usually max 8 characters).
*/
- if (strlen (name) > sizeof (ut.ut_user))
- return 0;
+ if (strlen (name) > sizeof (ut.ut_user)) {
+ return false;
+ }
- return good_name (name);
+ return is_valid_name (name);
}
-int check_group_name (const char *name)
+bool is_valid_group_name (const char *name)
{
/*
* Arbitrary limit for group names - max 16
* characters (same as on HP-UX 10).
*/
- if (strlen (name) > 16)
- return 0;
+ if (strlen (name) > 16) {
+ return false;
+ }
- return good_name (name);
+ return is_valid_name (name);
}
#define _CHKNAME_H_
/*
- * check_user_name(), check_group_name() - check the new user/group
- * name for validity; return value: 1 - OK, 0 - bad name
+ * is_valid_user_name(), is_valid_group_name() - check the new user/group
+ * name for validity;
+ * return values:
+ * true - OK
+ * false - bad name
*/
#include "defines.h"
-extern int check_user_name (const char *);
-extern int check_group_name (const char *name);
+extern bool is_valid_user_name (const char *name);
+extern bool is_valid_group_name (const char *name);
#endif
*/
static void check_new_name (void)
{
- if (check_group_name (group_name)) {
+ if (is_valid_group_name (group_name)) {
return;
}
return;
}
- if (check_group_name (group_newname)) {
+ if (is_valid_group_name (group_newname)) {
/*
* If the entry is found, too bad.
/*
* Check for invalid group names. --marekm
*/
- if (!check_group_name (grp->gr_name)) {
+ if (!is_valid_group_name (grp->gr_name)) {
*errors += 1;
printf (_("invalid group name '%s'\n"), grp->gr_name);
}
}
/* Check if this is a valid group name */
- if (check_group_name (grent.gr_name) == 0) {
+ if (!is_valid_group_name (grent.gr_name)) {
fprintf (stderr,
_("%s: invalid group name `%s'\n"),
Prog, grent.gr_name);
struct passwd pwent;
/* Check if this is a valid user name */
- if (check_user_name (name) == 0) {
+ if (!is_valid_user_name (name)) {
fprintf (stderr,
_("%s: invalid user name `%s'\n"),
Prog, name);
/*
* Check for invalid usernames. --marekm
*/
- if (!check_user_name (pwd->pw_name)) {
+ if (!is_valid_user_name (pwd->pw_name)) {
printf (_("invalid user name '%s'\n"), pwd->pw_name);
*errors += 1;
}
usage ();
user_name = argv[optind];
- if (!check_user_name (user_name)) {
+ if (!is_valid_user_name (user_name)) {
fprintf (stderr,
_
("%s: invalid user name '%s'\n"),
Gflg++;
break;
case 'l':
- if (!check_user_name (optarg)) {
+ if (!is_valid_user_name (optarg)) {
fprintf (stderr,
_("%s: invalid field '%s'\n"),
Prog, optarg);