aboutsummaryrefslogtreecommitdiffstats
path: root/community/clsync/musl-fix.patch
blob: a0dc31e9f2af1fc16aea0655df8542483c4a62a3 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
musl declares lstat64 only for GNU compatibility using macro
`#define lstat64 lstat`. Local variable lstat in mon_gio overrides
global function lstat from sys/stat.h.

Upstream issue: https://github.com/xaionaro/clsync/issues/150
--- a/mon_gio.c
+++ b/mon_gio.c
@@ -305,18 +305,18 @@
 	count = 0;
 	while (gio_wait(ctx_p, indexes_p, &tv)) {
 		event_t *ev = event_pop();
-		stat64_t lstat, *lstat_p;
+		stat64_t _lstat, *lstat_p;
 		mode_t st_mode;
 		size_t st_size;
-		if ((ev->objtype_new == EOT_DOESNTEXIST) || (ctx_p->flags[CANCEL_SYSCALLS]&CSC_MON_STAT) || lstat64(ev->path, &lstat)) {
-			debug(2, "Cannot lstat64(\"%s\", lstat). Seems, that the object had been deleted (%i) or option \"--cancel-syscalls mon_stat\" (%i) is set.", ev->path, ev->objtype_new == EOT_DOESNTEXIST, ctx_p->flags[CANCEL_SYSCALLS]&CSC_MON_STAT);
+		if ((ev->objtype_new == EOT_DOESNTEXIST) || (ctx_p->flags[CANCEL_SYSCALLS]&CSC_MON_STAT) || lstat64(ev->path, &_lstat)) {
+			debug(2, "Cannot lstat64(\"%s\", _lstat). Seems, that the object had been deleted (%i) or option \"--cancel-syscalls mon_stat\" (%i) is set.", ev->path, ev->objtype_new == EOT_DOESNTEXIST, ctx_p->flags[CANCEL_SYSCALLS]&CSC_MON_STAT);
 			st_mode = (ev->objtype_event == EOT_DIR ? S_IFDIR : S_IFREG);
 			st_size = 0;
 			lstat_p = NULL;
 		} else {
-			st_mode = lstat.st_mode;
-			st_size = lstat.st_size;
-			lstat_p = &lstat;
+			st_mode = _lstat.st_mode;
+			st_size = _lstat.st_size;
+			lstat_p = &_lstat;
 		}
 
 		if (sync_prequeue_loadmark(1, ctx_p, indexes_p, NULL, ev->path, lstat_p, ev->objtype_old, ev->objtype_new, ev->event_id, ev->handle_id, st_mode, st_size, &path_full, &path_full_len, NULL)) {