[Bug 205019] pw adduser mishandles internal error if the gid corresponding to the new uid is already in use

bugzilla-noreply at freebsd.org bugzilla-noreply at freebsd.org
Fri Dec 4 15:18:45 UTC 2015


https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=205019

            Bug ID: 205019
           Summary: pw adduser mishandles internal error if the gid
                    corresponding to the new uid is already in use
           Product: Base System
           Version: 10.2-RELEASE
          Hardware: Any
                OS: Any
            Status: New
          Severity: Affects Some People
          Priority: ---
         Component: bin
          Assignee: freebsd-bugs at FreeBSD.org
          Reporter: ike at michaeleichorn.com

In the event that pw adduser is called without specifying uid or gid and the
gid numerically equal to the next uid is already in use, pw will assign the gid
4294967295. If pw adduser is called again and the situation hold for the next
uid/gid combination, pw prints 'pw: gid `4294967295' has already been
allocated' and exits returning 65.

I hypothesize that internally when pw attempts to create the new gid, something
returns -1 as an error instead of returning the next gid. The -1 not tested for
and at some point is used to create the group 4294967295. Subsequent uses fail
as the gid already exists and that error is properly handled.

Steps to reproduce (assuming the next two uid/gid pairs are free):
# pw addgroup test1
# pw adduser tester1
# pw addgroup test2
# pw adduser tester2
pw: gid `4294967295' has already been allocated
# echo $?
65

First reported on freebsd-questions by Anton Shterenlikht <mexas at bris.ac.uk>

https://lists.freebsd.org/pipermail/freebsd-questions/2015-December/269327.html

Verified in 10.2-RELEASE-p7 by Reporter.

-- 
You are receiving this mail because:
You are the assignee for the bug.


More information about the freebsd-bugs mailing list