From: Ralph Boehme Date: Tue, 28 Apr 2020 12:47:40 +0000 (+0200) Subject: vfs_gpfs: use parent_smb_fname() X-Git-Tag: ldb-2.2.0~835 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=259857038b6c95d233cc71dfbf295d454dc8a619;p=thirdparty%2Fsamba.git vfs_gpfs: use parent_smb_fname() Signed-off-by: Ralph Boehme Reviewed-by: Jeremy Allison --- diff --git a/source3/modules/vfs_gpfs.c b/source3/modules/vfs_gpfs.c index 26b2c52ba98..4014e92ada2 100644 --- a/source3/modules/vfs_gpfs.c +++ b/source3/modules/vfs_gpfs.c @@ -1895,29 +1895,32 @@ static int stat_with_capability(struct vfs_handle_struct *handle, { #if defined(HAVE_FSTATAT) int fd = -1; - bool b; - char *dir_name; - const char *rel_name = NULL; + bool ok; + struct smb_filename *dir_name = NULL; + struct smb_filename *rel_name = NULL; struct stat st; int ret = -1; - b = parent_dirname(talloc_tos(), smb_fname->base_name, - &dir_name, &rel_name); - if (!b) { + ok = parent_smb_fname(talloc_tos(), + smb_fname, + &dir_name, + &rel_name); + if (!ok) { errno = ENOMEM; return -1; } - fd = open(dir_name, O_RDONLY, 0); - TALLOC_FREE(dir_name); + fd = open(dir_name->base_name, O_RDONLY, 0); if (fd == -1) { + TALLOC_FREE(dir_name); return -1; } set_effective_capability(DAC_OVERRIDE_CAPABILITY); - ret = fstatat(fd, rel_name, &st, flag); + ret = fstatat(fd, rel_name->base_name, &st, flag); drop_effective_capability(DAC_OVERRIDE_CAPABILITY); + TALLOC_FREE(dir_name); close(fd); if (ret == 0) {