Bug 645449

Summary: 'getent passwd <username>' returns nothing if its uidNumber gt 2147483647.
Product: Red Hat Enterprise Linux 6 Reporter: Gowrishankar Rajaiyan <grajaiya>
Component: sssdAssignee: Stephen Gallagher <sgallagh>
Status: CLOSED ERRATA QA Contact: Jenny Severance <jgalipea>
Severity: medium Docs Contact:
Priority: urgent    
Version: 6.0CC: dpal, jgalipea, jwest, syeghiay
Target Milestone: rcKeywords: ZStream
Target Release: ---   
Hardware: i686   
OS: Unspecified   
Whiteboard:
Fixed In Version: sssd-1.2.1-35.el6 Doc Type: Bug Fix
Doc Text:
On 32-bit architectures, running the "getent passwd" command on a username with a very large user or group identifier (that is, UID or GID greater than 2147483647) resulted in an empty output. With this update, the underlying source code has been modified to address this issue, and the getent command now returns the expected output.
Story Points: ---
Clone Of:
: 645515 (view as bug list) Environment:
Last Closed: 2011-05-19 11:39:37 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:
Bug Depends On:    
Bug Blocks: 645515, 660585    

Description Gowrishankar Rajaiyan 2010-10-21 14:22:30 UTC
Description of problem:
On 32bit platforms 'getent passwd <username>' returns nothing if its uidNumber > 2147483647.

Version-Release number of selected component (if applicable):
sssd-1.2.1-32.el6.x86_64

How reproducible:
Always

Steps to Reproduce:
1. Setup a LDAP server.
2. Add users and groups with very high uidNumber/gidNumber. ( gt 2147483647)
3. Configure sssd with id_provider = ldap.
4. getent passwd username
  
Actual results:
No results for <username>.

Expected results:
Users/groups with high uidNumber/gidNumber should be returned successfully.

Additional info:

1. This works fine on 64bit platforms.

2. This is reproducible on RHEL5.6 32bit platforms as well.

3. Relevant config section of sssd
[domain/LDAP]
id_provider = ldap
auth_provider = ldap
ldap_uri = ldaps://sssdldap.idm.lab.bos.redhat.com:636
ldap_search_base = dc=example,dc=com
cache_credentials = true
enumerate = true
debug_level = 9
ldap_tls_cacertdir = /etc/openldap/cacerts
ldap_tls_cacert = /etc/openldap/cacerts/cacert.asc

Comment 12 Gowrishankar Rajaiyan 2010-12-06 19:33:10 UTC
On i686:

[root@pogolinux-1 ~]# for i in biguserA biguserB biguserC biguserD biguserE biguserG; do getent -s sss passwd $i; done
biguserA:*:2147483646:2147483646::/home/biguser1:
biguserB:*:2147483647:2147483647::/home/biguserB:
biguserC:*:2147483648:2147483648::/home/biguserC:
biguserD:*:2147483649:2147483649::/home/biguserD:
biguserE:*:3147483649:3147483649::/home/biguserE:
biguserG:*:4147483649:4147483649::/home/biguserG:

[root@pogolinux-1 ~]# for i in biggroup1 biggroup2 biggroup3 biggroup4 biggroup5 biggroup6; do getent -s sss group $i; done
biggroup1:*:2147483646:
biggroup2:*:2147483647:
biggroup3:*:2147483648:
biggroup4:*:2147483649:
biggroup5:*:3147483649:
biggroup6:*:4147483649:

[root@pogolinux-1 ~]# arch
i686

[root@pogolinux-1 ~]# rpm -q sssd
sssd-1.2.1-36.el6.i686
----

on x86_64:

[root@hp-bl685c-01 ~]# for i in biguserA biguserB biguserC biguserD biguserE biguserG; do getent -s sss passwd $i; done
biguserA:*:2147483646:2147483646::/home/biguser1:
biguserB:*:2147483647:2147483647::/home/biguserB:
biguserC:*:2147483648:2147483648::/home/biguserC:
biguserD:*:2147483649:2147483649::/home/biguserD:
biguserE:*:3147483649:3147483649::/home/biguserE:
biguserG:*:4147483649:4147483649::/home/biguserG:

[root@hp-bl685c-01 ~]# for i in biggroup1 biggroup2 biggroup3 biggroup4 biggroup5 biggroup6; do getent -s sss group $i; done
biggroup1:*:2147483646:
biggroup2:*:2147483647:
biggroup3:*:2147483648:
biggroup4:*:2147483649:
biggroup5:*:3147483649:
biggroup6:*:4147483649:

[root@hp-bl685c-01 ~]# arch
x86_64

[root@hp-bl685c-01 ~]# rpm -q sssd
sssd-1.2.1-36.el6.x86_64

Comment 14 Jaromir Hradilek 2010-12-10 10:55:57 UTC
    Technical note added. If any revisions are required, please edit the "Technical Notes" field
    accordingly. All revisions will be proofread by the Engineering Content Services team.
    
    New Contents:
On 32-bit architectures, running the "getent passwd" command on a username with a very large user or group identifier (that is, UID or GID greater than 2147483647) resulted in an empty output. With this update, the underlying source code has been modified to address this issue, and the getent command now returns the expected output.

Comment 15 errata-xmlrpc 2011-05-19 11:39:37 UTC
An advisory has been issued which should help the problem
described in this bug report. This report is therefore being
closed with a resolution of ERRATA. For more information
on therefore solution and/or where to find the updated files,
please follow the link below. You may reopen this bug report
if the solution does not work for you.

http://rhn.redhat.com/errata/RHSA-2011-0560.html

Comment 16 errata-xmlrpc 2011-05-19 13:08:49 UTC
An advisory has been issued which should help the problem
described in this bug report. This report is therefore being
closed with a resolution of ERRATA. For more information
on therefore solution and/or where to find the updated files,
please follow the link below. You may reopen this bug report
if the solution does not work for you.

http://rhn.redhat.com/errata/RHSA-2011-0560.html