Commit 62347bc2 authored by Lennart Poettering's avatar Lennart Poettering
Browse files

path: properly free PathSpec structs

parent 40dde66f
......@@ -39,6 +39,17 @@ static const UnitActiveState state_translation_table[_PATH_STATE_MAX] = {
[PATH_FAILED] = UNIT_FAILED
};
static void path_unwatch_one(Path *p, PathSpec *s) {
if (s->inotify_fd < 0)
return;
unit_unwatch_fd(UNIT(p), &s->watch);
close_nointr_nofail(s->inotify_fd);
s->inotify_fd = -1;
}
static void path_done(Unit *u) {
Path *p = PATH(u);
PathSpec *s;
......@@ -46,7 +57,9 @@ static void path_done(Unit *u) {
assert(p);
while ((s = p->specs)) {
path_unwatch_one(p, s);
LIST_REMOVE(PathSpec, spec, p->specs, s);
free(s->path);
free(s);
}
}
......@@ -168,17 +181,6 @@ static void path_dump(Unit *u, FILE *f, const char *prefix) {
s->path);
}
static void path_unwatch_one(Path *p, PathSpec *s) {
if (s->inotify_fd < 0)
return;
unit_unwatch_fd(UNIT(p), &s->watch);
close_nointr_nofail(s->inotify_fd);
s->inotify_fd = -1;
}
static int path_watch_one(Path *p, PathSpec *s) {
static const int flags_table[_PATH_TYPE_MAX] = {
[PATH_EXISTS] = IN_DELETE_SELF|IN_MOVE_SELF|IN_ATTRIB,
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment