From: Baptiste Daroussin Date: Wed, 8 Dec 2021 16:57:46 +0000 (+0100) Subject: unsubscribe: fix conversion to *at functions X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=92e07c19eea8cf86ce55173e08ae14fa9956ac67;p=thirdparty%2Fmlmmj.git unsubscribe: fix conversion to *at functions --- diff --git a/src/subscriberfuncs.c b/src/subscriberfuncs.c index 89198d95..a2cc50ae 100644 --- a/src/subscriberfuncs.c +++ b/src/subscriberfuncs.c @@ -282,7 +282,6 @@ void unsubscribe(struct mlmmj_list *list, const char *address, enum subtype typesub, enum subreason reasonsub) { - const char *subdir; char *sublockname; char *subwritename; @@ -327,7 +326,7 @@ unsubscribe(struct mlmmj_list *list, const char *address, enum subtype typesub, /* create a .name.lock file and aquire the lock */ myasprintf(&sublockname, ".%s.lock", dp->d_name); - sublockfd = open(sublockname, O_RDWR | O_CREAT | O_EXLOCK, + sublockfd = openat(subdirfd, sublockname, O_RDWR | O_CREAT | O_EXLOCK, S_IRUSR | S_IWUSR); if (sublockfd < 0) { log_error(LOG_ARGS, "Error opening lock file %s/%s/%s", @@ -354,7 +353,7 @@ unsubscribe(struct mlmmj_list *list, const char *address, enum subtype typesub, close(subread); close(subwrite); close(sublockfd); - unlink(subwritename); + unlinkat(subdirfd, subwritename, 0); myfree(subwritename); myfree(sublockname); continue; @@ -372,6 +371,7 @@ unsubscribe(struct mlmmj_list *list, const char *address, enum subtype typesub, } } else { /* unsubres == 0, no subscribers left */ unlinkat(subdirfd, subwritename, 0); + unlinkat(subdirfd, dp->d_name, 0); } close(subread); @@ -380,8 +380,7 @@ unsubscribe(struct mlmmj_list *list, const char *address, enum subtype typesub, myfree(subwritename); unlinkat(subdirfd, sublockname, 0); myfree(sublockname); - - } + } closedir(subddir); }