blockd: fix segfault triggered by non-autofs mounts
authorDaniel Golle <daniel@makrotopia.org>
Mon, 11 May 2020 23:26:28 +0000 (00:26 +0100)
committerDaniel Golle <daniel@makrotopia.org>
Mon, 11 May 2020 23:41:59 +0000 (00:41 +0100)
Program received signal SIGSEGV, Segmentation fault.
main_autofs (argv=<optimized out>, argc=<optimized out>)
    at fstools-2020-05-06-eec16e2f/block.c:1193
1193:    if (!m->autofs && (mp = find_mount_point(pr->dev))) {

Fixes: 9ab936d ("block(d): always call hotplug.d "mount" scripts from blockd")
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
block.c

diff --git a/block.c b/block.c
index 9458d52ba6ee0123b897412d175cba8944a9da23..569bf565d5a1a7c15c59fde81b783d7ec9d1a828 100644 (file)
--- a/block.c
+++ b/block.c
@@ -1190,7 +1190,7 @@ static int main_autofs(int argc, char **argv)
                                continue;
 
                        blockd_notify("hotplug", pr->dev, m, pr);
-                       if (!m->autofs && (mp = find_mount_point(pr->dev))) {
+                       if ((!m || !m->autofs) && (mp = find_mount_point(pr->dev))) {
                                blockd_notify("mount", pr->dev, NULL, NULL);
                                free(mp);
                        }