gpgme: Update from 1.10.0 to 1.11.1
[termux-packages] / packages / git / config.c.patch
CommitLineData
3e3c72a3
FF
1diff -u -r ../git-2.16.0/config.c ./config.c
2--- ../git-2.16.0/config.c 2018-01-17 22:49:47.000000000 +0000
3+++ ./config.c 2018-01-20 21:49:42.940523576 +0000
ae5ed3b8
FF
4@@ -73,6 +73,25 @@
5 static int pack_compression_seen;
6 static int zlib_compression_seen;
11c62dd2
FF
7
8+/*
9+ * Protecting the project-specific git configuration file (.git/config) is
10+ * not possible on a shared file system on Android, which on an unpatched
11+ * git causes operations such as clone to fail with an error message.
12+ *
13+ * For the Termux git package we introduce a warning about the configuration
14+ * file being unprotected, but proceed in order to allow git repositories
15+ * to be cloned to shared storage accessible to other apps.
16+ */
17+static void termux_warn_once_about_lockfile()
18+{
19+ static int already_warned;
20+ if (!already_warned) {
21+ warning("Cannot protect .git/config on this file system"
22+ " - do not store sensitive information here.");
23+ already_warned = 1;
24+ }
25+}
26+
27 static int config_file_fgetc(struct config_source *conf)
28 {
29 return getc_unlocked(conf->u.file);
3e3c72a3 30@@ -2608,9 +2627,13 @@
11c62dd2
FF
31 in_fd = -1;
32
ae5ed3b8 33 if (chmod(get_lock_file_path(&lock), st.st_mode & 07777) < 0) {
11c62dd2
FF
34+#ifdef __ANDROID__
35+ termux_warn_once_about_lockfile();
36+#else
ae5ed3b8 37 error_errno("chmod on %s failed", get_lock_file_path(&lock));
11c62dd2
FF
38 ret = CONFIG_NO_WRITE;
39 goto out_free;
40+#endif
41 }
42
43 if (store.seen == 0)
3e3c72a3 44@@ -2810,9 +2833,13 @@
ae5ed3b8 45 }
11c62dd2 46
3e3c72a3 47 if (chmod(get_lock_file_path(&lock), st.st_mode & 07777) < 0) {
11c62dd2
FF
48+#ifdef __ANDROID__
49+ termux_warn_once_about_lockfile();
50+#else
40c3588b 51 ret = error_errno("chmod on %s failed",
3e3c72a3 52 get_lock_file_path(&lock));
11c62dd2
FF
53 goto out;
54+#endif
55 }
56
57 while (fgets(buf, sizeof(buf), config_file)) {