X-Git-Url: https://git.dogcows.com/gitweb?a=blobdiff_plain;f=src%2Fcreate.c;h=4f623ac1bb0b4e6ad77aaa4a0c3e369f20b88283;hb=ae7bd36423b55af53703069fde93e396fc262c7d;hp=49b82b927221ee5e2d33d6a71f4cf1d04e8f8634;hpb=631de61428b8b840f3f87022de661f5468576bde;p=chaz%2Ftar diff --git a/src/create.c b/src/create.c index 49b82b9..4f623ac 100644 --- a/src/create.c +++ b/src/create.c @@ -1182,7 +1182,7 @@ dump_dir (int fd, struct tar_stat_info *st, int top_level, dev_t parent_device) void create_archive (void) { - char *p; + const char *p; open_archive (ACCESS_WRITE); xheader_write_global (); @@ -1387,7 +1387,7 @@ check_links (void) exit_status to failure, a clear diagnostic has been issued. */ static void -dump_file0 (struct tar_stat_info *st, char const *p, +dump_file0 (struct tar_stat_info *st, const char *p, int top_level, dev_t parent_device) { union block *header; @@ -1404,6 +1404,8 @@ dump_file0 (struct tar_stat_info *st, char const *p, assign_string (&st->file_name, safer_name_suffix (p, false, absolute_names_option)); + transform_name (&st->file_name); + if (deref_stat (dereference_option, p, &st->stat) != 0) { stat_diag (p); @@ -1667,7 +1669,7 @@ dump_file0 (struct tar_stat_info *st, char const *p, } void -dump_file (char *p, int top_level, dev_t parent_device) +dump_file (const char *p, int top_level, dev_t parent_device) { struct tar_stat_info st; tar_stat_init (&st);