diff --git a/source/locking/brlock.c b/source/locking/brlock.c index 9b8dcfd15e7..9b90d87ff0b 100644 --- a/source/locking/brlock.c +++ b/source/locking/brlock.c @@ -1642,8 +1642,8 @@ static struct byte_range_lock *brl_get_locks_internal(TALLOC_CTX *mem_ctx, talloc_set_destructor(br_lck, byte_range_lock_destructor); br_lck->num_locks = data.dsize / sizeof(struct lock_struct); - if (!(br_lck->lock_data = SMB_MALLOC_ARRAY( - struct lock_struct, br_lck->num_locks))) { + br_lck->lock_data = SMB_MALLOC_ARRAY(struct lock_struct, br_lck->num_locks); + if ((br_lck->num_locks != 0) && (br_lck->lock_data == NULL)) { DEBUG(0, ("malloc failed\n")); TALLOC_FREE(br_lck); return NULL;