From 259857038b6c95d233cc71dfbf295d454dc8a619 Mon Sep 17 00:00:00 2001 From: Ralph Boehme Date: Tue, 28 Apr 2020 14:47:40 +0200 Subject: [PATCH] vfs_gpfs: use parent_smb_fname() Signed-off-by: Ralph Boehme Reviewed-by: Jeremy Allison --- source3/modules/vfs_gpfs.c | 21 ++++++++++++--------- 1 file changed, 12 insertions(+), 9 deletions(-) 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) { -- 2.47.3