<?xml version="1.0" encoding="UTF-8" ?>

<bugzilla version="5.2"
          urlbase="https://bugzilla.altlinux.org/"
          
          maintainer="jenya@basealt.ru"
>

    <bug>
          <bug_id>8410</bug_id>
          
          <creation_ts>2005-11-03 16:00:45 +0300</creation_ts>
          <short_desc>segfault when nsswitch.conf enables looking for groups at ldap</short_desc>
          <delta_ts>2006-08-09 10:26:48 +0400</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>4</classification_id>
          <classification>Development</classification>
          <product>Sisyphus</product>
          <component>nss_ldap</component>
          <version>unstable</version>
          <rep_platform>all</rep_platform>
          <op_sys>Linux</op_sys>
          <bug_status>CLOSED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>blocker</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>7079</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Nick S. Grechukh">gns</reporter>
          <assigned_to name="Serge A. Volkov">vserge</assigned_to>
          <cc>boyarsh</cc>
    
    <cc>hiddenman</cc>
    
    <cc>imz</cc>
    
    <cc>klark</cc>
    
    <cc>ldv</cc>
    
    <cc>master</cc>
    
    <cc>mike</cc>
    
    <cc>shaba</cc>
    
    <cc>slev</cc>
    
    <cc>vitty</cc>
    
    <cc>viy</cc>
          
          <qa_contact>qa-sisyphus</qa_contact>

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>32803</commentid>
    <comment_count>0</comment_count>
    <who name="Nick S. Grechukh">gns</who>
    <bug_when>2005-11-03 16:00:45 +0300</bug_when>
    <thetext>(bug fixed in version 244 from padl.com)

debug output: 
nss_ldap: ==&gt; do_init
nss_ldap: &lt;== do_init (cached session)
nss_ldap: ==&gt; do_open
nss_ldap: ==&gt; do_init
nss_ldap: &lt;== do_init (cached session)
nss_ldap: &lt;== do_open (cached session)
nss_ldap: ==&gt; do_filter
nss_ldap: :== do_filter: (&amp;(objectclass=posixGroup)(memberUid=ldaptest))
nss_ldap: &lt;== do_filter
nss_ldap: ==&gt; do_with_reconnect
nss_ldap: ==&gt; do_open
nss_ldap: ==&gt; do_init
nss_ldap: &lt;== do_init (cached session)
nss_ldap: &lt;== do_open (cached session)
nss_ldap: ==&gt; do_search

Program received signal SIGSEGV, Segmentation fault.
0xb7ec42cf in strlen () from /lib/libc.so.6


backtrace:  

#5  0xb7b192f7 in do_search (base=0xb7b26e30
&quot;ou=Group,dc=technoparkcorp,dc=com&quot;, scope=2,
    filter=0xbfd48504 &quot;(&amp;(objectclass=posixGroup)(memberUid=ldaptest))&quot;,
attrs=0xbfd48da4, sizelimit=0, msgid=0xbfd48d50) at ldap-nss.c:2480
        rc = 0
        serverctrls = {0x8059ed8, 0x0}
#6  0xb7b18ffc in do_with_reconnect (base=0xb7b26e30
&quot;ou=Group,dc=technoparkcorp,dc=com&quot;, scope=2,
    filter=0xbfd48504 &quot;(&amp;(objectclass=posixGroup)(memberUid=ldaptest))&quot;,
attrs=0xbfd48da4, sizelimit=0, private=0xbfd48d50,
    search_func=0xb7b1921d &lt;do_search&gt;) at ldap-nss.c:2379
        rc = 52
        tries = 0
        backoff = 0
        hard = 1
        stat = NSS_STATUS_SUCCESS
#7  0xb7b19e83 in _nss_ldap_search (args=0xbfd48dc4, filterprot=0xb7b2f040
&quot;(&amp;(objectclass=posixGroup)(memberUid=%s))&quot;, sel=LM_GROUP,
    user_attrs=0xbfd48da4, sizelimit=0, msgid=0xbfd48d50, csd=0x8059d0c) at
ldap-nss.c:2952
        sdBase =
&quot;&amp;#167;&amp;#1040;&amp;#1078;·\001\000\000\000\230\221\005\bD\211&amp;#1060;&amp;#1111;\017\033&amp;#1078;·&amp;#1092;\017&amp;#1090;·&amp;#1044;\203&amp;#1089;·\030\000\000\000\000\223\005\b\230\221\005\b
*&amp;#1090;·&amp;#1092;\017&amp;#1090;·\230\221\005\b
*&amp;#1090;·h\211&amp;#1060;&amp;#1111;&amp;#1111;&amp;#1097;&amp;#1078;·
*&amp;#1090;·\230\221\005\b&amp;#1092;\017&amp;#1090;·\230\221\005\b&amp;#1103;&amp;#1103;&amp;#1103;&amp;#1103;\234\211&amp;#1060;&amp;#1111;%\004&amp;#1078;·\230\221\005\b\000\000\000\000&amp;#1057;\030&amp;#181;·\000\000\000\000\000\004\000\000\230\221\005\b\000\004\000\000\200#&amp;#1090;·&amp;#1092;_&amp;#181;·&amp;#1088;\211&amp;#1060;&amp;#1111;&amp;#1058;\a\000\000&amp;#172;\211&amp;#1060;&amp;#1111;\b\030&amp;#181;·\230\221\005\b&amp;#1092;_&amp;#181;·&amp;#1112;\211&amp;#1060;&amp;#1111;L\030&amp;#181;·&amp;#1092;\017&amp;#1090;·&amp;#1092;\017&amp;#1090;·\034\216&amp;#1060;&amp;#1111;&amp;#1108;7&amp;#1081;·
\030&amp;#181;·&amp;#1072;\211&amp;#1060;&amp;#1111;\000\004\000\000\200#&amp;#1090;·&quot;, &apos;\0&apos; &lt;repeats 12
times&gt;...
        base = 0xb7b26e30 &quot;ou=Group,dc=technoparkcorp,dc=com&quot;
        filterBuf =
&quot;(&amp;(objectclass=posixGroup)(memberUid=ldaptest))\000T\213&amp;#1076;·&amp;#1084;\212&amp;#1060;&amp;#1111;&amp;#1112;\206&amp;#1060;&amp;#1111;&amp;#1072;|&amp;#1030;·\001\000\000\000\&quot;\000\000\000&amp;#1084;m&amp;#1030;·\001\000\000\000\002\000\000\000d\205&amp;#1060;&amp;#1111;&amp;#1072;|&amp;#1030;·\000\000\000\000(&amp;(objectclass=posixAccount)(uid=ldaptest))&quot;,
&apos;\0&apos; &lt;repeats 99 times&gt;, &quot;s
\000\000\000\000&amp;#1103;&amp;#1103;&amp;#1103;&amp;#1103;&amp;#1095;&amp;#1103;&amp;#1103;&amp;#1103;&quot;, &apos;\0&apos;
&lt;repeats 36 times&gt;, &quot;!&amp;#1098;&amp;#1078;·&quot;, &apos;\0&apos; &lt;repeats 20 times&gt;,
&quot;\002\000\000\000@\214&amp;#1060;&amp;#1111;&amp;#1084;\212&amp;#1060;&amp;#1111;\000&quot;...
        dynamicFilterBuf = 0x0
        attrs = (const char **) 0xb7b27d60
        filter = 0xbfd48504 &quot;(&amp;(objectclass=posixGroup)(memberUid=ldaptest))&quot;
        scope = 2
        stat = NSS_STATUS_SUCCESS
        sd = (ldap_service_search_descriptor_t *) 0xb7b26e54
#8  0xb7b1a30d in _nss_ldap_getent_ex (args=0xbfd48dc4, ctx=0xbfd48dbc,
result=0xbfd48df4, buffer=0x0, buflen=0, errnop=0xb7f22380,
    filterprot=0xb7b2f040 &quot;(&amp;(objectclass=posixGroup)(memberUid=%s))&quot;,
sel=LM_GROUP, user_attrs=0xbfd48da4,
    parser=0xb7b1c0b2 &lt;do_parse_initgroups_nested&gt;) at ldap-nss.c:3116
        msgid = -1
        stat = NSS_STATUS_SUCCESS
#9  0xb7b1c275 in _nss_ldap_initgroups_dyn (user=0x8058b0e &quot;ldaptest&quot;, group=0,
start=0xbfd48e5c, size=0xbfd48e84, groupsp=0xbfd48e88,
    limit=65536, errnop=0xb7f22380) at ldap-grp.c:1120
        lia = {group = 0, start = 0xbfd48e5c, size = 0xbfd48e84, groups =
0xbfd48e88, limit = 65536, depth = 0, known_groups = 0x0}
        filter = 0xb7b2f040 &quot;(&amp;(objectclass=posixGroup)(memberUid=%s))&quot;
        a = {la_type = LA_TYPE_STRING, la_arg1 = {la_string = 0x8058b0e
&quot;ldaptest&quot;, la_number = 134581006, la_triple = {
      host = 0x8058b0e &quot;ldaptest&quot;, user = 0x8059cd0 &quot;&amp;#1080;\234\005\b&quot;, domain
= 0x73736e5f &lt;Address 0x73736e5f out of bounds&gt;},
    la_string_list = 0x8058b0e}, la_arg2 = {la_string = 0x0}}
        stat = NSS_STATUS_SUCCESS
        ctx = (ent_context_t *) 0x8059cf8
        gidnumber_attrs = {0xbfd48dd0 &quot;_nss&quot;, 0xb7b14000 &quot;\177ELF\001\001\001&quot;,
0xb7b14984 &quot;\r\004&quot;}
        map = LM_GROUP
#10 0xb7e9393e in fgetgrent () from /lib/libc.so.6
No symbol table info available.
#11 0xb7e93bdc in initgroups () from /lib/libc.so.6
No symbol table info available.
#12 0x0804a1b2 in ?? ()
No symbol table info available.

Steps to Reproduce:
1. setup nss_ldap.conf and nsswitch.conf for looking for group and users in ldap
3. rpm -q nss_ldap
nss_ldap-239-alt1
2. su - ldaptest

Actual Results:  
segmentation fault

(getent group - working. and with &quot;group: files&quot; everything ok)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>32805</commentid>
    <comment_count>1</comment_count>
    <who name="Nick S. Grechukh">gns</who>
    <bug_when>2005-11-03 16:01:26 +0300</bug_when>
    <thetext>*** Bug 8409 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>33397</commentid>
    <comment_count>2</comment_count>
    <who name="Nick S. Grechukh">gns</who>
    <bug_when>2005-11-25 15:49:45 +0300</bug_when>
    <thetext>*** Bug 7981 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>34567</commentid>
    <comment_count>3</comment_count>
    <who name="Serge A. Volkov">vserge</who>
    <bug_when>2006-01-09 23:14:48 +0300</bug_when>
    <thetext>Принято, но исправить смогу не раньше чем через неделю</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>34609</commentid>
    <comment_count>4</comment_count>
    <who name="Nick S. Grechukh">gns</who>
    <bug_when>2006-01-10 16:09:24 +0300</bug_when>
    <thetext>я заливал в инкоминг 244 в порядке NMU, но в сизиф его не пропустили.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>35310</commentid>
    <comment_count>5</comment_count>
    <who name="Nick S. Grechukh">gns</who>
    <bug_when>2006-01-31 00:01:16 +0300</bug_when>
    <thetext>http://bugzilla.padl.com/show_bug.cgi?id=241:

If nss_ldap-239 is built _without_ RFC2307bis support, the module will segfault  
when enumerating the groups a particular user belongs to, due to an  
uninitialized pointer. The patch below fixes that.  
  
  
diff -rpu nss_ldap-239.orig/ldap-grp.c nss_ldap-239/ldap-grp.c 
--- nss_ldap-239.orig/ldap-grp.c        2005-05-24 02:53:19.000000000 +0200 
+++ nss_ldap-239/ldap-grp.c     2005-12-22 02:36:52.000000000 +0100 
@@ -1115,6 +1115,8 @@ char *_nss_ldap_getgrset (char *user) 
     } 
 #else 
   filter = _nss_ldap_filt_getgroupsbymember; 
+  gidnumber_attrs[0] = ATM (group, gidNumber); 
+  gidnumber_attrs[1] = NULL; 
 #endif /* RFC2307BIS */ 
 
   stat = _nss_ldap_getent_ex (&amp;a, &amp;ctx, (void *) &amp;lia, NULL, 0,</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>36564</commentid>
    <comment_count>6</comment_count>
    <who name="Michael Shigorin">mike</who>
    <bug_when>2006-03-09 12:05:11 +0300</bug_when>
    <thetext>Кстати, в nss_ldap бы внести дефолты сообразно http://wiki.sisyphus.ru/changes
за  28.01.2006:

Евгений Остапец сообщает о проблемах при обновлении nss_ldap до версии 244.
Чтобы жизнь была легче, стоит задать таймауты в /etc/nss_ldap.conf:

nss_reconnect_sleeptime 2
nss_reconnect_maxsleeptime 2
nss_reconnect_maxconntries 2
nss_reconnect_tries 2

еще имеет смысл

bind_policy soft</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>39458</commentid>
    <comment_count>7</comment_count>
    <who name="stalker">stalker</who>
    <bug_when>2006-08-09 10:21:48 +0400</bug_when>
    <thetext>===
TelnetClients:x:10008:gorlov
Remote Desktop Users:x:10009:gorlov
SoftDistributors:x:10012:gorlov,max,crazy
...
=== 
Всё из лдапа.</thetext>
  </long_desc>
      
      

    </bug>

</bugzilla>