Release still reachable memory if the smbclient context is freed.
[ira/wip.git] / source3 / client / clitar.c
index 816e7b17100a5d327391044246a6ef9ab9638058..084f87e3996a86d0f1d55e35c633d9ec50764763 100644 (file)
@@ -100,7 +100,7 @@ char tar_type='\0';
 static char **cliplist=NULL;
 static int clipn=0;
 static bool must_free_cliplist = False;
-static const char *cmd_ptr = NULL;
+extern const char *cmd_ptr;
 
 extern bool lowercase;
 extern uint16 cnum;
@@ -668,16 +668,6 @@ static void do_atar(const char *rname_in,char *lname,file_info *finfo1)
        }
 
        safe_strcpy(finfo.name,rname, strlen(rname));
-       if (!finfo1) {
-               time_t atime, mtime;
-               if (!cli_getattrE(cli, fnum, &finfo.mode, &finfo.size, NULL, &atime, &mtime)) {
-                       DEBUG(0, ("getattrE: %s\n", cli_errstr(cli)));
-                       goto cleanup;
-               }
-               finfo.atime_ts = convert_time_t_to_timespec(atime);
-               finfo.mtime_ts = convert_time_t_to_timespec(mtime);
-               finfo.ctime_ts = finfo.mtime_ts;
-       }
 
        DEBUG(3,("file %s attrib 0x%X\n",finfo.name,finfo.mode));
 
@@ -1471,8 +1461,10 @@ int cmd_tar(void)
        }
 
        argl=toktocliplist(&argcl, NULL);
-       if (!tar_parseargs(argcl, argl, buf, 0))
+       if (!tar_parseargs(argcl, argl, buf, 0)) {
+               SAFE_FREE(argl);
                return 1;
+       }
 
        ret = process_tar();
        SAFE_FREE(argl);