[Fedora-directory-commits] ldapserver/ldap/servers/slapd filterentry.c, 1.6, 1.6.2.1

Noriko Hosoi (nhosoi) fedora-directory-commits at redhat.com
Fri Apr 18 20:19:01 UTC 2008


Author: nhosoi

Update of /cvs/dirsec/ldapserver/ldap/servers/slapd
In directory cvs-int.fedora.redhat.com:/tmp/cvs-serv12164

Modified Files:
      Tag: Directory_Server_8_0_Branch
	filterentry.c 
Log Message:
Resolves: #428764
Summary: memory leaks in extensible filter code
Description: applying the patch provided by Ulf Weltman
1) type is not consumed in attrlist_merge
2) although dnattrs is a linked list, only the first item was released.
Test case filter: "(ou:dn:=groups)"



Index: filterentry.c
===================================================================
RCS file: /cvs/dirsec/ldapserver/ldap/servers/slapd/filterentry.c,v
retrieving revision 1.6
retrieving revision 1.6.2.1
diff -u -r1.6 -r1.6.2.1
--- filterentry.c	12 Oct 2007 18:03:42 -0000	1.6
+++ filterentry.c	18 Apr 2008 20:18:59 -0000	1.6.2.1
@@ -441,6 +441,7 @@
                         bv.bv_len = strlen(val);
                         bvec[0] = &bv;
                         attrlist_merge (&dnAttrs, type, bvec);
+                        slapi_ch_free_string( &type );
                     }
                 }
                 ldap_value_free (avas);
@@ -505,7 +506,7 @@
 					/* B) Also check the DN attributes for the attribute value */
 					Slapi_Attr* dnattrs= dn2attrs(slapi_entry_get_dn_const(e));
 					rc= test_ava_filter( callers_pb, e, dnattrs, &a, LDAP_FILTER_EQUALITY, 0 /* Don't Verify Access */ , 0 /* don't just verify access */, access_check_done );
-        			slapi_attr_free( &dnattrs );
+        			attrlist_free( dnattrs );
 				}
 			}
 			else
@@ -520,7 +521,7 @@
 					/* D & F) Also check the DN attributes for the attribute value */
 					Slapi_Attr* dnattrs= dn2attrs(slapi_entry_get_dn_const(e));
 					mrf->mrf_match (mrf->mrf_object, e, dnattrs);
-        			slapi_attr_free( &dnattrs );
+        			attrlist_free( dnattrs );
 				}
 			}
 		}
@@ -573,7 +574,7 @@
 					/* B) Also check the DN attributes for the attribute value */
 					Slapi_Attr* dnattrs= dn2attrs(slapi_entry_get_dn_const(e));
 					rc= test_ava_filter( callers_pb, e, dnattrs, &a, LDAP_FILTER_EQUALITY, 0 /* Don't Verify Access */ , 0 /* don't just verify access */, access_check_done );
-        			slapi_attr_free( &dnattrs );
+        			attrlist_free( dnattrs );
 				}
 			}
 			else
@@ -588,7 +589,7 @@
 					/* D & F) Also check the DN attributes for the attribute value */
 					Slapi_Attr* dnattrs= dn2attrs(slapi_entry_get_dn_const(e));
 					mrf->mrf_match (mrf->mrf_object, e, dnattrs);
-        			slapi_attr_free( &dnattrs );
+        			attrlist_free( dnattrs );
 				}
 			}
 		}




More information about the Fedora-directory-commits mailing list