Bug 1086902 - mem leak in do_bind when there is an error
Summary: mem leak in do_bind when there is an error
Keywords:
Status: CLOSED ERRATA
Alias: None
Product: Red Hat Enterprise Linux 7
Classification: Red Hat
Component: 389-ds-base
Version: 7.1
Hardware: Unspecified
OS: Unspecified
low
unspecified
Target Milestone: rc
: ---
Assignee: Noriko Hosoi
QA Contact: Viktor Ashirov
URL:
Whiteboard:
Depends On: 1086901
Blocks:
TreeView+ depends on / blocked
 
Reported: 2014-04-11 19:26 UTC by Noriko Hosoi
Modified: 2015-03-05 09:34 UTC (History)
3 users (show)

Fixed In Version: 389-ds-base-1.3.3.1-1.el7
Doc Type: Bug Fix
Doc Text:
Clone Of: 1086901
Environment:
Last Closed: 2015-03-05 09:34:20 UTC
Target Upstream Version:


Attachments (Terms of Use)
valgrind output (74.04 KB, text/plain)
2015-01-09 13:59 UTC, Viktor Ashirov
no flags Details
valgrind output (61.78 KB, text/plain)
2015-01-09 15:42 UTC, Viktor Ashirov
no flags Details


Links
System ID Priority Status Summary Last Updated
Red Hat Product Errata RHSA-2015:0416 normal SHIPPED_LIVE Important: 389-ds-base security, bug fix, and enhancement update 2015-03-05 14:26:33 UTC

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


Note You need to log in before you can comment on or make changes to this bug.