Re: svn commit: r277764 - in head/usr.sbin/pw: . tests

2015-01-28 Thread Bruce Evans

On Mon, 26 Jan 2015, Baptiste Daroussin wrote:


Log:
 Revert r277652

 uid and gid are never and should never be negative. The pw(8) manpage clearly
 states the -u and -g arguments are for uids/gids, hence using negative values 
is
 abusing a bug in former versions of pw(8)


Thanks.

Further discussion showed that the historical misbehaviour is more common
than I thought, so this doesn't resolve the problem in pw.  But it seems
reasonable to start disallowing creating negative ids in utilities for
creating ids.  Ones that used to allow it should at least allow creating
all the positive ids that the negative ids were accidentally mapped to
(like -2 -> huge value).

Bruce
___
svn-src-head@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"


svn commit: r277764 - in head/usr.sbin/pw: . tests

2015-01-26 Thread Baptiste Daroussin
Author: bapt
Date: Mon Jan 26 16:50:42 2015
New Revision: 277764
URL: https://svnweb.freebsd.org/changeset/base/277764

Log:
  Revert r277652
  
  uid and gid are never and should never be negative. The pw(8) manpage clearly
  states the -u and -g arguments are for uids/gids, hence using negative values 
is
  abusing a bug in former versions of pw(8)

Deleted:
  head/usr.sbin/pw/tests/pw_groupshow.sh
  head/usr.sbin/pw/tests/pw_usershow.sh
Modified:
  head/usr.sbin/pw/pw_group.c
  head/usr.sbin/pw/pw_user.c
  head/usr.sbin/pw/tests/Makefile

Modified: head/usr.sbin/pw/pw_group.c
==
--- head/usr.sbin/pw/pw_group.c Mon Jan 26 16:32:41 2015(r277763)
+++ head/usr.sbin/pw/pw_group.c Mon Jan 26 16:50:42 2015(r277764)
@@ -68,11 +68,7 @@ pw_group(struct userconf * cnf, int mode
};
 
if (a_gid != NULL) {
-   const char *teststr;
-   teststr = a_gid->val;
-   if (*teststr == '-')
-   teststr++;
-   if (strspn(teststr, "0123456789") != strlen(teststr))
+   if (strspn(a_gid->val, "0123456789") != strlen(a_gid->val))
errx(EX_USAGE, "-g expects a number");
}
 

Modified: head/usr.sbin/pw/pw_user.c
==
--- head/usr.sbin/pw/pw_user.c  Mon Jan 26 16:32:41 2015(r277763)
+++ head/usr.sbin/pw/pw_user.c  Mon Jan 26 16:50:42 2015(r277764)
@@ -322,10 +322,7 @@ pw_user(struct userconf * cnf, int mode,
a_name = NULL;
}
} else {
-   const char *teststr = a_uid->val;
-   if (*teststr == '-')
-   teststr++;
-   if (strspn(teststr, "0123456789") != strlen(teststr))
+   if (strspn(a_uid->val, "0123456789") != strlen(a_uid->val))
errx(EX_USAGE, "-u expects a number");
}
 

Modified: head/usr.sbin/pw/tests/Makefile
==
--- head/usr.sbin/pw/tests/Makefile Mon Jan 26 16:32:41 2015
(r277763)
+++ head/usr.sbin/pw/tests/Makefile Mon Jan 26 16:50:42 2015
(r277764)
@@ -9,11 +9,9 @@ ATF_TESTS_SH=  pw_etcdir \
pw_lock \
pw_groupdel \
pw_groupmod \
-   pw_groupshow \
pw_useradd \
pw_userdel \
-   pw_usermod \
-   pw_usershow
+   pw_usermod
 
 .for tp in ${ATF_TESTS_SH}
 TEST_METADATA.${tp}+=  required_user="root"
___
svn-src-head@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"