486 for(int i=0;i<count;i++) { |
486 for(int i=0;i<count;i++) { |
487 cxstring memberValue = cx_strn(values[i]->bv_val, values[i]->bv_len); |
487 cxstring memberValue = cx_strn(values[i]->bv_val, values[i]->bv_len); |
488 CxHashKey key = cx_hash_key(memberValue.ptr, memberValue.length); |
488 CxHashKey key = cx_hash_key(memberValue.ptr, memberValue.length); |
489 char *g_member = cxMapGet(group->members, key); |
489 char *g_member = cxMapGet(group->members, key); |
490 if(!g_member) { |
490 if(!g_member) { |
491 cxmutstr member = cx_strdup_a(group->members->allocator, memberValue); |
491 cxmutstr member = cx_strdup_a(group->members->collection.allocator, memberValue); |
492 if(!member.ptr) { |
492 if(!member.ptr) { |
493 ret = 1; |
493 ret = 1; |
494 break; |
494 break; |
495 } |
495 } |
496 if(cxMapPut(group->members, key, member.ptr)) { |
496 if(cxMapPut(group->members, key, member.ptr)) { |
531 if(is_member_attribute(authdb, attribute)) { |
531 if(is_member_attribute(authdb, attribute)) { |
532 if(group_add_member(group, ldap, msg, attribute)) { |
532 if(group_add_member(group, ldap, msg, attribute)) { |
533 // OOM |
533 // OOM |
534 ldap_memfree(attribute); |
534 ldap_memfree(attribute); |
535 // free at least some memory |
535 // free at least some memory |
536 cxMapDestroy(group->members); |
536 cxMapFree(group->members); |
537 pool_free(sn->pool, group); |
537 pool_free(sn->pool, group); |
538 group = NULL; |
538 group = NULL; |
539 break; |
539 break; |
540 } |
540 } |
541 } |
541 } |