Fix bug #6017, - magic script does not work. based on a patch from monyo@samba.gr.jp.
authorJeremy Allison <jra@samba.org>
Wed, 7 Jan 2009 00:05:28 +0000 (16:05 -0800)
committerJeremy Allison <jra@samba.org>
Wed, 7 Jan 2009 00:05:28 +0000 (16:05 -0800)
Jeremy.

source3/smbd/close.c

index f91f1fcf8fe143391d5d042ac91bcad814400552..a6dff20ec7cb60349d16875758f7184d8eba8cbf 100644 (file)
@@ -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) {