diff --git a/servers/slapd/sl_malloc.c b/servers/slapd/sl_malloc.c index 00136e84b1fcb3112f54dc13b589d5723a82910a..aa143ed070372973d1cb5310bdda87ed9e654f70 100644 --- a/servers/slapd/sl_malloc.c +++ b/servers/slapd/sl_malloc.c @@ -300,7 +300,7 @@ slap_sl_malloc( } so_right = LDAP_LIST_FIRST(&sh->sh_sopool); LDAP_LIST_REMOVE(so_right, so_link); - so_right->so_ptr = so_left->so_ptr + (1 << j); + so_right->so_ptr = (void *)((char *)so_left->so_ptr + (1 << j)); if (j == order + 1) { ptr = so_left->so_ptr; diff = (unsigned long)((char*)ptr - @@ -326,6 +326,9 @@ slap_sl_malloc( return (void*)ch_malloc(size); } } + + /* FIXME: missing return; guessing... */ + return NULL; } void * @@ -495,7 +498,7 @@ slap_sl_free(void *ptr, void *ctx) while (so) { if ((char*)so->so_ptr == (char*)tmpp) { LDAP_LIST_REMOVE(so, so_link); - } else if ((char*)tmpp == so->so_ptr + order_size) { + } else if ((char*)tmpp == (char *)so->so_ptr + order_size) { LDAP_LIST_REMOVE(so, so_link); tmpp = so->so_ptr; break;