Bug 1086902

Summary: mem leak in do_bind when there is an error
Product: Red Hat Enterprise Linux 7 Reporter: Noriko Hosoi <nhosoi>
Component: 389-ds-baseAssignee: Noriko Hosoi <nhosoi>
Status: CLOSED ERRATA QA Contact: Viktor Ashirov <vashirov>
Severity: unspecified Docs Contact:
Priority: low    
Version: 7.1CC: nkinder, rmeggins, vashirov
Target Milestone: rc   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: 389-ds-base-1.3.3.1-1.el7 Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: 1086901 Environment:
Last Closed: 2015-03-05 09:34:20 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: 1086901    
Bug Blocks:    
Attachments:
Description Flags
valgrind output
none
valgrind output none

Description Noriko Hosoi 2014-04-11 19:26:01 UTC
+++ This bug was initially created as a clone of Bug #1086901 +++

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 2 Jenny Severance 2014-10-21 20:04:13 UTC
To Verify (see RHEL 6.6 bug)

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 3 Viktor Ashirov 2015-01-09 13:59:03 UTC
Created attachment 978156 [details]
valgrind output

$ rpm -qa | grep 389-ds
389-ds-base-1.3.3.1-10.el7.x86_64
389-ds-base-libs-1.3.3.1-10.el7.x86_64

$ ldapsearch -LLL -D "cn=Directory Manager" -w Secret123 -b dc=example,dc=com -Y FOO-MD5
ldap_sasl_interactive_bind_s: Unknown authentication method (-6)
	additional info: SASL(-4): no mechanism available: No worthy mechs found

$ sudo /usr/sbin/stop-dirsrv 
Stopping instance "rhel7ds"

$ grep -i do_bind /tmp/valgrind-20150109-145021-rhel7ds.out | wc -l
0

Marking as VERIFIED

Comment 4 Viktor Ashirov 2015-01-09 15:42:15 UTC
Created attachment 978219 [details]
valgrind output

I'm sorry, I was running valgrind without debuginfo package for 389-ds. 
I repeated the tests with debuginfo installed. No do_bind in the output.

$ rpm -qa | grep 389-ds
389-ds-base-debuginfo-1.3.3.1-11.el7.x86_64
389-ds-base-1.3.3.1-11.el7.x86_64
389-ds-base-libs-1.3.3.1-11.el7.x86_64

Comment 6 errata-xmlrpc 2015-03-05 09:34:20 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.

https://rhn.redhat.com/errata/RHSA-2015-0416.html