smbd: get a valid file stat to disk_quotas
[kai/samba-autobuild/.git] / source3 / smbd / reply.c
index 0b7a4fbd32991b67ae9d8456ce38eefd0ca1cb5d..4f1ecb1ae8395e49a0afea88a872abc12540feaa 100644 (file)
@@ -1573,9 +1573,20 @@ void reply_dskattr(struct smb_request *req)
        connection_struct *conn = req->conn;
        uint64_t ret;
        uint64_t dfree,dsize,bsize;
+       struct smb_filename smb_fname;
        START_PROFILE(SMBdskattr);
 
-       ret = get_dfree_info(conn, ".", &bsize, &dfree, &dsize);
+       ZERO_STRUCT(smb_fname);
+       smb_fname.base_name = discard_const_p(char, ".");
+
+       if (SMB_VFS_STAT(conn, &smb_fname) != 0) {
+               reply_nterror(req, map_nt_error_from_unix(errno));
+               DBG_WARNING("stat of . failed (%s)\n", strerror(errno));
+               END_PROFILE(SMBdskattr);
+               return;
+       }
+
+       ret = get_dfree_info(conn, &smb_fname, &bsize, &dfree, &dsize);
        if (ret == (uint64_t)-1) {
                reply_nterror(req, map_nt_error_from_unix(errno));
                END_PROFILE(SMBdskattr);