Bug 1086901

Summary: mem leak in do_bind when there is an error
Product: Red Hat Enterprise Linux 6 Reporter: Noriko Hosoi <nhosoi>
Component: 389-ds-baseAssignee: Noriko Hosoi <nhosoi>
Status: CLOSED ERRATA QA Contact: Sankar Ramalingam <sramling>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: 6.6CC: amsharma, jgalipea, nhosoi, nkinder, rmeggins
Target Milestone: rc   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: 389-ds-base-1.2.11.15-34.el6 Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of:
: 1086902 (view as bug list) Environment:
Last Closed: 2014-10-14 07:54:49 UTC Type: Bug
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: 1086902    

Description Noriko Hosoi 2014-04-11 19:25:00 UTC
Description of problem:
If you do a bind, and there is an error before the sdn can be set in the pblock - e.g. invalid sasl mech, unknown sasl mech, invalid bind method, invalid ldap version, protocol/decoding errors with bind parameters or controls - the cleanup code will get the NULL sdn from the pblock rather than freeing the unset sdn variable.

Comment 1 Amita Sharma 2014-06-05 08:59:32 UTC
Hi Noriko,

Request you to please share verification steps.

Thanks,
Ami

Comment 2 Noriko Hosoi 2014-06-05 18:39:56 UTC
(In reply to Amita Sharma from comment #1)
> Hi Noriko,
> 
> Request you to please share verification steps.
> 
> Thanks,
> Ami

1. Run server via valgrind.
2. Run ldap command with ...
   e.g. invalid sasl mech, unknown sasl mech, invalid bind method, etc.
   which is supposed to faile.
3. stop the server and check there is no do_bind in the valgrind output.

Comment 4 Amita Sharma 2014-07-22 09:01:32 UTC
[root@dhcp201-155 ~]# rpm -qa | grep 389-ds-base
389-ds-base-1.2.11.15-38.el6.x86_64
389-ds-base-libs-1.2.11.15-38.el6.x86_64

[root@dhcp201-155 ~]# /usr/lib64/mozldap/ldapsearch -h localhost -p 389 -s sub -b "o=saslstress.com" -o "mech=DIGEST-MD6" -o "authid=login0001"  -w redhat "uid=login0001"
Bind Error: Unknown authentication method
Bind Error: additional info: SASL(-4): no mechanism available: No worthy mechs found

[root@dhcp201-155 ~]# service dirsrv stop
Shutting down dirsrv: 
    dhcp201-155...                                         [  OK  ]

[root@dhcp201-155 ~]# tail -f /tmp/valgrind.out
==5252==    still reachable: 2,135,914 bytes in 17,762 blocks
==5252==         suppressed: 0 bytes in 0 blocks
==5252== Reachable blocks (those to which a pointer was found) are not shown.
==5252== To see them, rerun with: --leak-check=full --show-reachable=yes
==5252== 
==5252== For counts of detected and suppressed errors, rerun with: -v
==5252== ERROR SUMMARY: 78 errors from 78 contexts (suppressed: 41 from 9)
==5252== could not unlink /tmp/vgdb-pipe-from-vgdb-to-5252-by-root-on-dhcp201-155.englab.pnq.redhat.com
==5252== could not unlink /tmp/vgdb-pipe-to-vgdb-from-5252-by-root-on-dhcp201-155.englab.pnq.redhat.com
==5252== could not unlink /tmp/vgdb-pipe-shared-mem-vgdb-5252-by-root-on-dhcp201-155.englab.pnq.redhat.com


[root@dhcp201-155 ~]# grep -i "do_bind" /tmp/valgrind.out
[root@dhcp201-155 ~]# 

Hence VERIFIED.

Comment 5 errata-xmlrpc 2014-10-14 07:54:49 UTC
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.

For information on the advisory, and where to find the updated
files, follow the link below.

If the solution does not work for you, open a new bug report.

http://rhn.redhat.com/errata/RHBA-2014-1385.html