Unfortunately the stack trace isn't particularly useful. If you can reproduce this, it would be helpful if you could install systemd-dbg and look at the generated stack trace then?
startswith() does a strlen() and a strncmp(), so I don't think it's that as it would already segfault in strlen(). m is also not NULL (due to the assert), so I figure it's the m->scheduled_shutdown_tty that is NULL.
I'll dig through the code to see where this is being set.
Unfortunately the stack trace isn't particularly useful. If you can reproduce this, it would be helpful if you could install systemd-dbg and look at the generated stack trace then?
This crashes in:
bool logind_ wall_tty_ filter( const char *tty, void *userdata) {
Manager *m = userdata;
assert(m);
if (!startswith(tty, "/dev/"))
return true;
return !streq(tty + 5, m->scheduled_ shutdown_ tty);
}
startswith() does a strlen() and a strncmp(), so I don't think it's that as it would already segfault in strlen(). m is also not NULL (due to the assert), so I figure it's the m->scheduled_ shutdown_ tty that is NULL.
I'll dig through the code to see where this is being set.