Process <pid> (ModemManager) crashed in linux_pthread_proxy() [ SELinux Fedora ]
After recent changes in glib GThreadPool code ( as below )
linux_pthread_proxy() calls sched_setattr syscall as below:
static void *
linux_pthread_proxy (void *data)
{
GThreadPosix *thread = data;
/* Set scheduler settings first if requested */
if (thread->scheduler_settings)
{
pid_t tid = 0;
guint flags = 0;
int res;
tid = (pid_t) syscall (SYS_gettid);
res = syscall (SYS_sched_setattr, tid, thread->scheduler_settings->attr, flags);
if (res == -1)
g_error ("Failed to set scheduler settings: %s", g_strerror (errno));
}
return thread->proxy (data);
}
Error message from journactl:
Jan 29 13:10:54 localhost.localdomain systemd[1]: Starting Modem Manager...
Jan 29 13:10:54 localhost.localdomain kernel: traps: ModemManager[11261] trap int3 ip:7ff044f745b7 sp:7ff03fffeb20 error:0 in libglib-2.0.so.0.6304.0[7ff044f3a000+80000]
Jan 29 13:10:54 localhost.localdomain audit[11259]: AVC avc: denied { setsched } for pid=11259 comm="ModemManager" scontext=system_u:system_r:modemmanager_t:s0 tcontext=system_u:system_r:modemmanager_t:s0 tclass=process permissive=0
Jan 29 13:10:54 localhost.localdomain audit[11259]: ANOM_ABEND auid=4294967295 uid=0 gid=0 ses=4294967295 subj=system_u:system_r:modemmanager_t:s0 pid=11259 comm="ModemManager" exe="/usr/sbin/ModemManager" sig=5 res=1
ModemManager has not "setsched" SELinux permissions as below:
[root@localhost lib64]# sesearch -A -s modemmanager_t -t modemmanager_t -c process
allow modemmanager_t modemmanager_t:process { fork getcap getsched sigchld sigkill signal signull sigstop };