From e13983870f00f83420cca554a541165214dc4e06 Mon Sep 17 00:00:00 2001 From: Jeremy Allison Date: Tue, 6 Jan 2009 16:05:28 -0800 Subject: Fix bug #6017, - magic script does not work. based on a patch from monyo@samba.gr.jp. Jeremy. --- source3/smbd/close.c | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) (limited to 'source3/smbd') diff --git a/source3/smbd/close.c b/source3/smbd/close.c index f91f1fcf8f..a6dff20ec7 100644 --- a/source3/smbd/close.c +++ b/source3/smbd/close.c @@ -67,10 +67,20 @@ static void check_magic(struct files_struct *fsp) return; } - chmod(fsp->fsp_name,0755); - ret = smbrun(fsp->fsp_name,&tmp_fd); + /* Ensure we don't depend on user's PATH. */ + p = talloc_asprintf(ctx, "./%s", fsp->fsp_name); + if (!p) { + TALLOC_FREE(ctx); + return; + } + + if (chmod(fsp->fsp_name,0755) == -1) { + TALLOC_FREE(ctx); + return; + } + ret = smbrun(p,&tmp_fd); DEBUG(3,("Invoking magic command %s gave %d\n", - fsp->fsp_name,ret)); + p,ret)); unlink(fsp->fsp_name); if (ret != 0 || tmp_fd == -1) { -- cgit