diff options
-rw-r--r-- | source3/locking/brlock.c | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/source3/locking/brlock.c b/source3/locking/brlock.c index 202fab36cc..9b8dcfd15e 100644 --- a/source3/locking/brlock.c +++ b/source3/locking/brlock.c @@ -1642,7 +1642,13 @@ 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); - br_lck->lock_data = SMB_MALLOC_ARRAY(struct lock_struct, br_lck->num_locks); + if (!(br_lck->lock_data = SMB_MALLOC_ARRAY( + struct lock_struct, br_lck->num_locks))) { + DEBUG(0, ("malloc failed\n")); + TALLOC_FREE(br_lck); + return NULL; + } + memcpy(br_lck->lock_data, data.dptr, data.dsize); if (!fsp->lockdb_clean) { |