uint16_t info_level;
int data_len = 0;
size_t fixed_portion;
+ struct smb_filename *dot = NULL;
NTSTATUS status;
if (total_params < 2) {
DBG_NOTICE("level = %" PRIu16 "\n", info_level);
- status = smbd_do_qfsinfo(req->xconn, conn, req,
+ status = openat_pathref_fsp_dot(req,
+ conn->cwd_fsp,
+ req->posix_pathnames
+ ? SMB_FILENAME_POSIX_PATH
+ : 0,
+ &dot);
+ if (!NT_STATUS_IS_OK(status)) {
+ reply_nterror(req, status);
+ return;
+ }
+
+ status = smbd_do_qfsinfo(req->xconn,
+ conn,
+ req,
info_level,
req->flags2,
max_data_bytes,
&fixed_portion,
+ dot->fsp,
NULL,
- NULL,
- ppdata, &data_len);
+ ppdata,
+ &data_len);
+
+ TALLOC_FREE(dot);
+
if (!NT_STATUS_IS_OK(status)) {
reply_nterror(req, status);
return;