mirror of
https://gitlab.alpinelinux.org/alpine/aports.git
synced 2025-07-26 04:35:39 +03:00
32 lines
1.6 KiB
Diff
32 lines
1.6 KiB
Diff
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)) {
|