]> git.sur5r.net Git - openldap/commitdiff
ITS#6744 - plug leak
authorHoward Chu <hyc@openldap.org>
Sat, 11 Dec 2010 04:35:01 +0000 (04:35 +0000)
committerHoward Chu <hyc@openldap.org>
Sat, 11 Dec 2010 04:35:01 +0000 (04:35 +0000)
libraries/libldap/result.c

index da8118746ea40a90e5f8a4330437acf15c821330..6d772ce2fc931882aa2a9f0c33e7ba5d99d407d4 100644 (file)
@@ -807,6 +807,7 @@ nextresp2:
                        }
 
                } else {
+                       LDAPRequest *lrf = lr;
                        if ( lr->lr_outrefcnt <= 0 && lr->lr_parent == NULL ) {
                                /* request without any referrals */
                                simple_request = ( hadref ? 0 : 1 );
@@ -829,6 +830,12 @@ nextresp2:
                                        break;  /* not completely done yet */
                                }
                        }
+                       /* ITS#6744: Original lr was refcounted when we retrieved it,
+                        * must release it now that we're working with the parent
+                        */
+                       if ( lrf != &dummy_lr ) {
+                               ldap_return_request( ld, lrf, 0 );
+                       }
 
                        /* Check if all requests are finished, lr is now parent */
                        tmplr = lr;