ZERO_STRUCTP(psbuf);
/* Get the stat struct for the owner info. */
- if (vfs_stat_smb_basename(conn, smb_fname->base_name, psbuf) != 0)
+ if (vfs_stat_smb_basename(conn, smb_fname, psbuf) != 0)
{
DEBUG(8, ("vfs_stat_smb_basename failed with error %s\n",
strerror(errno)));
* is fully plumbed through the VFS.
*/
int ret = vfs_stat_smb_basename(handle->conn,
- smb_fname->base_name,
+ smb_fname,
&sbuf);
if (ret == -1) {
TALLOC_FREE(frame);
sbuf = fsp->fsp_name->st;
} else {
int ret = vfs_stat_smb_basename(handle->conn,
- smb_fname->base_name,
+ smb_fname,
&sbuf);
if (ret == -1) {
status = map_nt_error_from_unix(errno);
struct db_context *db = acl_db;
int ret = -1;
- ret = vfs_stat_smb_basename(handle->conn, smb_fname->base_name, &sbuf);
+ ret = vfs_stat_smb_basename(handle->conn, smb_fname, &sbuf);
if (ret == -1) {
return -1;
}
ret = SMB_VFS_FSTAT(fsp, &sbuf);
} else {
ret = vfs_stat_smb_basename(handle->conn,
- smb_fname->base_name,
+ smb_fname,
&sbuf);
}
});
if (vfs_stat_smb_basename(handle->conn,
- smb_fname->base_name,
+ smb_fname,
&sbuf) == -1) {
TALLOC_FREE(frame);
return -1;
NTSTATUS check_reduced_name_with_privilege(connection_struct *conn,
const char *fname,
struct smb_request *smbreq);
-int vfs_stat_smb_basename(struct connection_struct *conn, const char *fname,
+int vfs_stat_smb_basename(struct connection_struct *conn,
+ const struct smb_filename *smb_fname_in,
SMB_STRUCT_STAT *psbuf);
NTSTATUS vfs_stat_fsp(files_struct *fsp);
NTSTATUS vfs_chown_fsp(files_struct *fsp, uid_t uid, gid_t gid);
pst = &fsp->fsp_name->st;
} else {
int ret = vfs_stat_smb_basename(conn,
- smb_fname->base_name,
+ smb_fname,
&sbuf);
if (ret == -1) {
return map_nt_error_from_unix(errno);
*
* Called when we know stream name parsing has already been done.
*/
-int vfs_stat_smb_basename(struct connection_struct *conn, const char *fname,
- SMB_STRUCT_STAT *psbuf)
+int vfs_stat_smb_basename(struct connection_struct *conn,
+ const struct smb_filename *smb_fname_in,
+ SMB_STRUCT_STAT *psbuf)
{
struct smb_filename smb_fname = {
- .base_name = discard_const_p(char, fname)
+ .base_name = discard_const_p(char, smb_fname_in->base_name),
+ .flags = smb_fname_in->flags
};
int ret;
- if (lp_posix_pathnames()) {
+ if (smb_fname.flags & SMB_FILENAME_POSIX_PATH) {
ret = SMB_VFS_LSTAT(conn, &smb_fname);
} else {
ret = SMB_VFS_STAT(conn, &smb_fname);