Skip to content
Snippets Groups Projects
Commit 04a5dcc3 authored by Hallvard Furuseth's avatar Hallvard Furuseth Committed by Quanah Gibson-Mount
Browse files

ITS#6437: Fix alignment after slap_sl_realloc().

Also use -Align instead of ~pad: Valid also for non-twos complement.
parent 628cd729
No related branches found
No related tags found
No related merge requests found
......@@ -129,8 +129,7 @@ slap_sl_mem_create(
return sh;
/* round up to doubleword boundary */
size += pad;
size &= ~pad;
size = (size + Align-1) & -Align;
if (!sh) {
sh = ch_malloc(sizeof(struct slab_heap));
......@@ -243,8 +242,7 @@ slap_sl_malloc(
}
/* round up to doubleword boundary, plus space for len at head and tail */
size += 2*sizeof(ber_len_t) + pad;
size &= ~pad;
size = (size + 2*sizeof(ber_len_t) + Align-1) & -Align;
if (sh->sh_stack) {
if ((char *)sh->sh_last + size >= (char *)sh->sh_end) {
......@@ -370,9 +368,8 @@ slap_sl_realloc(void *ptr, ber_len_t size, void *ctx)
}
if (sh->sh_stack) {
/* round up to doubleword boundary */
size += pad + sizeof( ber_len_t );
size &= ~pad;
/* Round up to doubleword boundary, add room for head */
size = ((size + Align-1) & -Align) + sizeof( ber_len_t );
p--;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment