1
0
Эх сурвалжийг харах

BUG: Fix extract. Looks like dirname actually changes the string, so temporary string should be used

Andy Cedilnik 20 жил өмнө
parent
commit
21c7454250

+ 7 - 1
Utilities/cmtar/extract.c

@@ -213,8 +213,14 @@ tar_extract_regfile(TAR *t, char *realname)
   uid = th_get_uid(t);
   gid = th_get_gid(t);
 
-  if (mkdirhier(dirname(filename)) == -1)
+  strncpy(buf, filename, sizeof(buf)-1);
+  buf[sizeof(buf)-1] = 0;
+
+
+  if (mkdirhier(dirname(buf)) == -1)
+    {
     return -1;
+    }
 
 #ifdef DEBUG
   printf("  ==> extracting: %s (mode %04o, uid %d, gid %d, %d bytes)\n",