Re: [PATCH] vduse: return compat ioctl results directly
flat view
From: "Michael S. Tsirkin" <mst@redhat.com>
Date: 2026-09-08 08:32:40
Also in:
lkml
On Tue, Sep 08, 2026 at 10:08:46AM +0200, Arnd Bergmann wrote:
On Tue, Sep 8, 2026, at 09:57, Michael S. Tsirkin wrote:quoted
On Tue, Sep 08, 2026 at 03:31:51PM +0800, Linfeng Sun wrote:quoted
The compat handler handles VDUSE_IOTLB_GET_FD and VDUSE_VQ_GET_INFO, but then calls the native handler. Their different command sizes make native dispatch return -ENOIOCTLCMD. For GET_FD, this overwrites receive_fd()'s return value after the descriptor is installed, leaking one fd per call. Return handled compat results directly and use native dispatch only for other commands. Fixes: 455a2a1af926 ("vduse: fix compat handling for VDUSE_IOTLB_GET_FD/VDUSE_VQ_GET_INFO") Signed-off-by: Linfeng Sun <redacted>indeed, I will apply.The fix looks correct to me, thanks!quoted
But ... how was the original patch working then? Arnd, what gives?It looks I either broke it during refactoring from two functions into one, or I just didn't do it right in the first place. I did write in the extra patch text | The code is directly copied from the native ioctl handler, but I | did not test this with actual x86-32 userspace, so please review | carefully. but obviously should have caught this one myself since it is a much less subtle bug than the one I was trying to fix in the first place. Arnd
Should teach me not to apply untested code. No amount of careful review replaces testing) -- MST