From 499a0cb8661cfcee5f5403dd884185fc1ecf3ff5 Mon Sep 17 00:00:00 2001 From: Bill Zissimopoulos Date: Mon, 15 Aug 2016 08:05:09 -0700 Subject: [PATCH] dll: fuse: GetReparsePoint: return STATUS_NOT_A_REPARSE_POINT when appropriate --- src/dll/fuse/fuse_intf.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/dll/fuse/fuse_intf.c b/src/dll/fuse/fuse_intf.c index 10d36884..21708d47 100644 --- a/src/dll/fuse/fuse_intf.c +++ b/src/dll/fuse/fuse_intf.c @@ -1660,7 +1660,12 @@ static NTSTATUS fsp_fuse_intf_GetReparsePoint(FSP_FILE_SYSTEM *FileSystem, return STATUS_INVALID_DEVICE_REQUEST; err = f->ops.readlink(filedesc->PosixPath, PosixTargetPath, sizeof PosixTargetPath); - if (0 != err) + if (EINVAL/* same on MSVC and Cygwin */ == err) + { + Result = STATUS_NOT_A_REPARSE_POINT; + goto exit; + } + else if (0 != err) { Result = fsp_fuse_ntstatus_from_errno(f->env, err); goto exit;