From Bugzilla Helper: User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; de-DE; rv:1.7.8) Gecko/20050511 Firefox/1.0.4 Description of problem: Version-Release number of selected component (if applicable): How reproducible: Always Steps to Reproduce: 1. Create a view 2. Delete a view 3. Repeat Step 1 and 2 until server crashes Additional info:
Created attachment 117269 [details] Example programm in Java that crashes the directory server
Reviewed by: Nathan (Thanks!) Files: ldapserver/ldap/servers/plugins/views/views.c Branch: HEAD Fix Description: Needed to pass in the _address_ of theCache.pCacheViews to views_cache_add_ll_entry. Yet another lesson in using the compiler to catch type errors rather than casting to void*. Platforms tested: RHEL3 Flag Day: no Doc impact: no QA impact: should be covered by regular nightly and manual testing New Tests integrated into TET: none RCS file: /cvs/dirsec/ldapserver/ldap/servers/plugins/views/views.c,v retrieving revision 1.5 diff -u -8 -r1.5 views.c --- ldapserver/ldap/servers/plugins/views/views.c 19 Apr 2005 22:07:36 -0000 1.5 +++ ldapserver/ldap/servers/plugins/views/views.c 11 Aug 2005 16:29:01 -0000 @@ -1524,17 +1524,17 @@ Slapi_Value *v; slapi_attr_first_value( attr, &v ); theView->parentid = slapi_value_get_ulong(v); } else theView->parentid = 0; /* add view to the cache */ - views_cache_add_ll_entry((void**)theCache.pCacheViews, (void *)theView); + views_cache_add_ll_entry((void**)&theCache.pCacheViews, (void *)theView); views_cache_discover_parent(theView); if(theView->pParent) views_cache_discover_children((viewEntry*)theView->pParent); /* update filters */ for(current = theCache.pCacheViews; current != NULL; current = current->list.pNext) {
Verified