Commit 4b75e3ba authored by Nicolin Chen's avatar Nicolin Chen Committed by Jason Gunthorpe
Browse files

iommufd/selftest: Add missing close(mfd) in memfd_mmap()

Do not forget to close mfd in the error paths, since none of the callers
would close it when ASSERT_NE(MAP_FAILED, buf) fails.

Fixes: 0bcceb1f ("iommufd: Selftest coverage for IOMMU_IOAS_MAP_FILE")
Link: https://patch.msgid.link/r/a363a69dbf453d4bc1bde276f3b16778620488e1.1750787928.git.nicolinc@nvidia.com


Cc: stable@vger.kernel.org
Reviewed-by: default avatarJason Gunthorpe <jgg@nvidia.com>
Signed-off-by: default avatarNicolin Chen <nicolinc@nvidia.com>
Signed-off-by: default avatarJason Gunthorpe <jgg@nvidia.com>
parent 81862557
Loading
Loading
Loading
Loading
+7 −2
Original line number Diff line number Diff line
@@ -60,13 +60,18 @@ static inline void *memfd_mmap(size_t length, int prot, int flags, int *mfd_p)
{
	int mfd_flags = (flags & MAP_HUGETLB) ? MFD_HUGETLB : 0;
	int mfd = memfd_create("buffer", mfd_flags);
	void *buf = MAP_FAILED;

	if (mfd <= 0)
		return MAP_FAILED;
	if (ftruncate(mfd, length))
		return MAP_FAILED;
		goto out;
	*mfd_p = mfd;
	return mmap(0, length, prot, flags, mfd, 0);
	buf = mmap(0, length, prot, flags, mfd, 0);
out:
	if (buf == MAP_FAILED)
		close(mfd);
	return buf;
}

/*