mirror of
https://github.com/libfuse/libfuse.git
synced 2024-11-23 12:14:15 +08:00
Fixed returning an error condition to ioctl(2) (#641)
When returning a negative error code by ->ioctl() to the high level interface, no error is propagated to the low level, and the reply message to the kernel is shown as successful. A negative result is however returned to kernel, so the kernel can detect the bad condition, but this appears to not be the case since kernel 5.15. The proposed fix is more in line with the usual processing of errors in fuse, taking into account that ioctl(2) always returns a non-negative value in the absence of errors. Co-authored-by: Jean-Pierre André <jpandre@users.sourceforge.net>
This commit is contained in:
parent
b08e275083
commit
5128cee2dd
@ -1,3 +1,5 @@
|
||||
* Fixed returning an error condition to ioctl(2)
|
||||
|
||||
libfuse 3.10.5 (2021-09-06)
|
||||
===========================
|
||||
|
||||
|
@ -4289,6 +4289,8 @@ static void fuse_lib_ioctl(fuse_req_t req, fuse_ino_t ino, unsigned int cmd,
|
||||
fuse_finish_interrupt(f, req, &d);
|
||||
free_path(f, ino, path);
|
||||
|
||||
if (err < 0)
|
||||
goto err;
|
||||
fuse_reply_ioctl(req, err, out_buf, out_bufsz);
|
||||
goto out;
|
||||
err:
|
||||
|
Loading…
Reference in New Issue
Block a user