]> git.sur5r.net Git - openldap/commitdiff
ITS#6256
authorQuanah Gibson-Mount <quanah@openldap.org>
Mon, 17 Aug 2009 19:41:23 +0000 (19:41 +0000)
committerQuanah Gibson-Mount <quanah@openldap.org>
Mon, 17 Aug 2009 19:41:23 +0000 (19:41 +0000)
CHANGES
servers/slapd/syncrepl.c

diff --git a/CHANGES b/CHANGES
index 0a2ce4144fc9d7daa6e1ba99442dde76f94e3542..23520629717faf8288ae8c5c752b1b0d0508aa65 100644 (file)
--- a/CHANGES
+++ b/CHANGES
@@ -13,6 +13,7 @@ OpenLDAP 2.4.18 Engineering
        Fixed slapd with duplicate empty lines for olcDbConfig (ITS#6240)
        Fixed slapd server URL matching (ITS#5942)
        Fixed slapd subordinate needs a suffix (ITS#6216)
+       Fixed slapd syncrepl decrement on possible NULL value (ITS#6256)
        Fixed slapd tools to properly close database (ITS#6214)
        Fixed slapd uninitialized SlapReply components (ITS#6101)
        Fixed slapd-meta starttls with targets (ITS#6190)
index 627e43a3d2e5458d9f46fea7121e4e10ce2937de..35e431f6dd76d8b7881381aeaf43258a72db6165 100644 (file)
@@ -3729,12 +3729,14 @@ syncinfo_free( syncinfo_t *sie, int free_all )
                        }
                        ch_free( npe );
                }
-               sie->si_cookieState->cs_ref--;
-               if ( !sie->si_cookieState->cs_ref ) {
-                       ch_free( sie->si_cookieState->cs_sids );
-                       ber_bvarray_free( sie->si_cookieState->cs_vals );
-                       ldap_pvt_thread_mutex_destroy( &sie->si_cookieState->cs_mutex );
-                       ch_free( sie->si_cookieState );
+               if ( sie->si_cookieState ) {
+                       sie->si_cookieState->cs_ref--;
+                       if ( !sie->si_cookieState->cs_ref ) {
+                               ch_free( sie->si_cookieState->cs_sids );
+                               ber_bvarray_free( sie->si_cookieState->cs_vals );
+                               ldap_pvt_thread_mutex_destroy( &sie->si_cookieState->cs_mutex );
+                               ch_free( sie->si_cookieState );
+                       }
                }
                ch_free( sie );
                sie = si_next;