Unverified Commit 0bc4f6ba authored by openeuler-ci-bot's avatar openeuler-ci-bot Committed by Gitee
Browse files

!4668 [sync] PR-4646: binder: fix use-after-free in shinker's callback

parents 78b6d1b2 c45134ed
Loading
Loading
Loading
Loading
+5 −1
Original line number Diff line number Diff line
@@ -1002,7 +1002,9 @@ enum lru_status binder_alloc_free_page(struct list_head *item,
		goto err_mmget;
	if (!mmap_read_trylock(mm))
		goto err_mmap_read_lock_failed;
	vma = binder_alloc_get_vma(alloc);
	vma = find_vma(mm, page_addr);
	if (vma && vma != binder_alloc_get_vma(alloc))
		goto err_invalid_vma;

	list_lru_isolate(lru, item);
	spin_unlock(lock);
@@ -1028,6 +1030,8 @@ enum lru_status binder_alloc_free_page(struct list_head *item,
	mutex_unlock(&alloc->mutex);
	return LRU_REMOVED_RETRY;

err_invalid_vma:
	mmap_read_unlock(mm);
err_mmap_read_lock_failed:
	mmput_async(mm);
err_mmget: