From: Volker Lendecke Date: Mon, 26 Jun 2023 11:17:44 +0000 (+0200) Subject: smbd: Don't mask open error if fstatat() fails X-Git-Tag: talloc-2.4.1~170 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=de2738fb9a7dad84eb50a0cf007d89b6ef53ec9a;p=thirdparty%2Fsamba.git smbd: Don't mask open error if fstatat() fails Bug: https://bugzilla.samba.org/show_bug.cgi?id=15402 Signed-off-by: Volker Lendecke Reviewed-by: Ralph Boehme Autobuild-User(master): Volker Lendecke Autobuild-Date(master): Mon Jun 26 16:53:21 UTC 2023 on atb-devel-224 --- diff --git a/selftest/knownfail.d/rofs b/selftest/knownfail.d/rofs deleted file mode 100644 index dd130773404..00000000000 --- a/selftest/knownfail.d/rofs +++ /dev/null @@ -1 +0,0 @@ -^samba3.blackbox.rofs_error.* \ No newline at end of file diff --git a/source3/smbd/open.c b/source3/smbd/open.c index da0498f9e7d..94f50becb24 100644 --- a/source3/smbd/open.c +++ b/source3/smbd/open.c @@ -780,6 +780,15 @@ again: smb_fname_rel, &fsp->fsp_name->st, AT_SYMLINK_NOFOLLOW); + + if (ret == -1) { + /* + * Keep the original error. Otherwise we would + * mask for example EROFS for open(O_CREAT), + * turning it into ENOENT. + */ + goto out; + } } else { ret = SMB_VFS_FSTAT(fsp, &fsp->fsp_name->st); }