From: Volker Lendecke Date: Mon, 21 Feb 2022 16:43:17 +0000 (+0100) Subject: smbd: Convert get_real_filename_full_scan() to OpenDir_ntstatus() X-Git-Tag: tevent-0.12.0~667 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=5204da2ac5ace4d62a8665544780453469b885fa;p=thirdparty%2Fsamba.git smbd: Convert get_real_filename_full_scan() to OpenDir_ntstatus() Get us a better error message without going through the lossy errno. Signed-off-by: Volker Lendecke Reviewed-by: Ralph Boehme --- diff --git a/source3/smbd/filename.c b/source3/smbd/filename.c index 73291c35f6e..33aed86718f 100644 --- a/source3/smbd/filename.c +++ b/source3/smbd/filename.c @@ -1546,6 +1546,7 @@ int get_real_filename_full_scan(connection_struct *conn, char *unmangled_name = NULL; long curpos; struct smb_filename *smb_fname = NULL; + NTSTATUS status; /* handle null paths */ if ((path == NULL) || (*path == 0)) { @@ -1598,10 +1599,15 @@ int get_real_filename_full_scan(connection_struct *conn, } /* open the directory */ - if (!(cur_dir = OpenDir(talloc_tos(), conn, smb_fname, NULL, 0))) { - DEBUG(3,("scan dir didn't open dir [%s]\n",path)); + status = OpenDir_ntstatus( + talloc_tos(), conn, smb_fname, NULL, 0, &cur_dir); + if (!NT_STATUS_IS_OK(status)) { + DBG_NOTICE("scan dir didn't open dir [%s]: %s\n", + path, + nt_errstr(status)); TALLOC_FREE(unmangled_name); TALLOC_FREE(smb_fname); + errno = map_errno_from_nt_status(status); return -1; }