]> git.ipfire.org Git - thirdparty/git.git/commitdiff
archive: do not let on-disk mode leak to zip archives
authorJunio C Hamano <gitster@pobox.com>
Thu, 12 May 2022 21:31:09 +0000 (14:31 -0700)
committerJunio C Hamano <gitster@pobox.com>
Thu, 12 May 2022 21:32:25 +0000 (14:32 -0700)
When the "--add-file" option is used to add the contents from an
untracked file to the archive, the permission mode bits for these
files are sent to the archive-backend specific "write_entry()"
method as-is.  We normalize the mode bits for tracked files way
before we pass them to the write_entry() method; we should do the
same here.

This is not strictly needed for "tar" archive-backend, as it has its
own code to further clean them up, but "zip" archive-backend is not
so well prepared.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
archive.c

index e29d0e00f6cc4ecb7883b3661807dfc4b705d0b9..12a08af5311baf03d303fd4a56b39b050eab86a6 100644 (file)
--- a/archive.c
+++ b/archive.c
@@ -342,7 +342,7 @@ int write_archive_entries(struct archiver_args *args,
                else
                        err = write_entry(args, &fake_oid, path_in_archive.buf,
                                          path_in_archive.len,
-                                         info->stat.st_mode,
+                                         canon_mode(info->stat.st_mode),
                                          content.buf, content.len);
                if (err)
                        break;