From 6d0c114f57bcd554383a41c9ca791e25e95b81b5 Mon Sep 17 00:00:00 2001 From: Laurent Bercot Date: Fri, 3 May 2024 20:43:37 +0000 Subject: Restore cleanups in s6-ftrigrd; fix an old bug and a new bug ftrigw_clean() didn't clean properly. ftrig1_make() didn't give enough perms to the fifo, notification could fail in certain cases. Signed-off-by: Laurent Bercot --- src/libs6/ftrigw_clean.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'src/libs6/ftrigw_clean.c') diff --git a/src/libs6/ftrigw_clean.c b/src/libs6/ftrigw_clean.c index 3ad9e3a..e540aba 100644 --- a/src/libs6/ftrigw_clean.c +++ b/src/libs6/ftrigw_clean.c @@ -15,9 +15,9 @@ int ftrigw_clean (char const *path) DIR *dir = opendir(path) ; if (!dir) return 0 ; { - char tmp[pathlen + FTRIG1_PREFIXLEN + 45] ; + char tmp[pathlen + FTRIG1_PREFIXLEN + 35] ; memcpy(tmp, path, pathlen) ; - tmp[pathlen] = '/' ; tmp[pathlen + FTRIG1_PREFIXLEN + 44] = 0 ; + tmp[pathlen] = '/' ; tmp[pathlen + FTRIG1_PREFIXLEN + 34] = 0 ; for (;;) { direntry *d ; @@ -26,8 +26,8 @@ int ftrigw_clean (char const *path) d = readdir(dir) ; if (!d) break ; if (strncmp(d->d_name, FTRIG1_PREFIX, FTRIG1_PREFIXLEN)) continue ; - if (strlen(d->d_name) != FTRIG1_PREFIXLEN + 43) continue ; - memcpy(tmp + pathlen + 1, d->d_name, FTRIG1_PREFIXLEN + 43) ; + if (strlen(d->d_name) != FTRIG1_PREFIXLEN + 33) continue ; + memcpy(tmp + pathlen + 1, d->d_name, FTRIG1_PREFIXLEN + 33) ; fd = open_write(tmp) ; if (fd >= 0) fd_close(fd) ; else if ((errno == ENXIO) && (unlink(tmp) < 0)) e = errno ; -- cgit v1.3.1