DragonFlyBSD Kernel Audit
DF-0918 / fix.diff
← back to finding ↓ download raw
diff --git a/sys/vfs/fuse/fuse_ipc.c b/sys/vfs/fuse/fuse_ipc.c
--- a/sys/vfs/fuse/fuse_ipc.c
+++ b/sys/vfs/fuse/fuse_ipc.c
@@ -167,11 +167,11 @@
 	}
 
 	if (fuse_ipc_test_replied(fip))
-		return 0;
+		goto done;
 again:
 	tsleep_interlock(fip, 0);
 	if (fuse_ipc_test_replied(fip))
-		return 0;
+		goto done;
 	error = tsleep(fip, PINTERLOCKED, "ftxp", 5 * hz);
 	if (!error)
 		KKASSERT(fuse_ipc_test_replied(fip));
@@ -195,6 +195,7 @@
 		return error;
 	}
 
+done:
 	if (fuse_test_dead(fip->fmp)) {
 		KKASSERT(fuse_ipc_test_replied(fip));
 		return ENOTCONN;