Bug 235641

Summary: useradd dumps core when build without WITH_SELINUX
Product: [Fedora] Fedora Reporter: Wolfgang Denk <wd>
Component: shadow-utilsAssignee: Peter Vrabec <pvrabec>
Status: CLOSED RAWHIDE QA Contact: David Lawrence <dkl>
Severity: medium Docs Contact:
Priority: medium    
Version: rawhideCC: wd
Target Milestone: ---   
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2007-04-10 10:25:35 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Wolfgang Denk 2007-04-08 23:52:03 UTC
Description of problem:

The "useradd" command will dump core if shadow-utils gets built without SELINUX
support.

Version-Release number of selected component (if applicable):

shadow-utils-4.0.18.1-12.fc7.src.rpm

How reproducible:

Steps to Reproduce:
1. Build shadow-utils without SELINUX support
2. Install it
3. Run "useradd ... -u user ..."
  
Actual results:

Core dump.

Expected results:

User added.

Additional info:

Patch "shadow-4.0.17-useradd.patch" contains this hunk:

        --- shadow-4.0.17/src/useradd.c.useradd 2007-01-16 18:24:34.000000000 +0100
        +++ shadow-4.0.17/src/useradd.c 2007-01-16 18:24:34.000000000 +0100
        ...
        @@ -1048,11 +1054,18 @@
        ...
        -                       getopt_long (argc, argv,
"b:c:d:De:f:g:G:k:K:mlMnrop:s:u:",
        +#ifdef WITH_SELINUX
        +                       getopt_long (argc, argv,
"b:c:d:De:f:g:G:k:K:mlMnrop:s:u:Z:",
        +#else
        +                       getopt_long (argc, argv,
"b:c:d:De:f:g:G:k:K:mlMnrop:s:u",
        +#endif

   The code in the #else part is wrong - it drops the colon  for  the
   -u  option,  which  causes  the  useradd command to dump core when
   built without the  WITH_SELINUX  setting.  The  code  should  read
   instead:

        ...
        +#else
        +                       getopt_long (argc, argv,
"b:c:d:De:f:g:G:k:K:mlMnrop:s:u:",
        +#endif

Comment 1 Peter Vrabec 2007-04-10 10:19:15 UTC
thnx. Wolfgang, 
it's fixed in shadow-utils-4.0.18.1-13.fc7