X-Git-Url: https://git.saurik.com/apple/xnu.git/blobdiff_plain/b0d623f7f2ae71ed96e60569f61f9a9a27016e80..04b8595b18b1b41ac7a206e4b3d51a635f8413d7:/libkern/kxld/kxld_array.c?ds=inline diff --git a/libkern/kxld/kxld_array.c b/libkern/kxld/kxld_array.c index b04a6045a..55d009ba4 100644 --- a/libkern/kxld/kxld_array.c +++ b/libkern/kxld/kxld_array.c @@ -86,8 +86,8 @@ kxld_array_init(KXLDArray *array, size_t itemsize, u_int nitems) */ if (array->maxitems < nitems) { STAILQ_FOREACH_SAFE(srcpool, &array->pools, entries, tmp) { - STAILQ_INSERT_TAIL(&srcpools, srcpool, entries); STAILQ_REMOVE(&array->pools, srcpool, kxld_array_pool, entries); + STAILQ_INSERT_TAIL(&srcpools, srcpool, entries); } srcpool_capacity = array->pool_capacity; bzero(array, sizeof(*array)); @@ -139,6 +139,9 @@ array_init(KXLDArray *array, size_t itemsize, u_int nitems) { kern_return_t rval = KERN_FAILURE; KXLDArrayPool *pool = NULL; + + require_action(itemsize, finish, rval=KERN_INVALID_ARGUMENT); + require_action(array->npools < 2, finish, rval=KERN_INVALID_ARGUMENT); array->itemsize = itemsize;