From: Lennart Poettering Date: Fri, 21 Jan 2011 00:13:09 +0000 (+0100) Subject: automount: fix segfault when shutting down X-Git-Tag: v17~10 X-Git-Url: https://err.no/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=e0fa621b8b52da4d95bf5918eb998c9166e4bc7c;p=systemd automount: fix segfault when shutting down https://bugs.freedesktop.org/show_bug.cgi?id=32076 --- diff --git a/TODO b/TODO index 57802a65..5957b960 100644 --- a/TODO +++ b/TODO @@ -9,9 +9,6 @@ Bugs: * somehow some /etc/fstab supplied mount params are never applied to api fs https://bugzilla.redhat.com/show_bug.cgi?id=663108 -* automount units can cause a segfault: - https://bugs.freedesktop.org/show_bug.cgi?id=32076 - * bind mounts with 'fsck' fail and block for a minute: /foo /bar none bind 1 1 (requesting fsck is wrong, but why do we block for a minute diff --git a/src/mount.c b/src/mount.c index f978a546..aae9d982 100644 --- a/src/mount.c +++ b/src/mount.c @@ -98,12 +98,21 @@ static void mount_parameters_done(MountParameters *p) { static void mount_done(Unit *u) { Mount *m = MOUNT(u); + Meta *other; assert(m); free(m->where); m->where = NULL; + /* Try to detach us from the automount unit if there is any */ + LIST_FOREACH(units_per_type, other, m->meta.manager->units_per_type[UNIT_AUTOMOUNT]) { + Automount *a = (Automount*) other; + + if (a->mount == m) + a->mount = NULL; + } + mount_parameters_done(&m->parameters_etc_fstab); mount_parameters_done(&m->parameters_proc_self_mountinfo); mount_parameters_done(&m->parameters_fragment);