REPORT_THREAD_ERROR(thread->tid, "Smack label",
smackProc, smackThread);
- if (strcmp(m_proc->supgid, thread->supgid))
- REPORT_THREAD_ERROR(thread->tid, "Supplementary groups",
- m_proc->supgid, thread->supgid);
-
- CHECK_THREAD_CRED_FIELD(m_proc, thread, euid);
- CHECK_THREAD_CRED_FIELD(m_proc, thread, egid);
- CHECK_THREAD_CRED_FIELD(m_proc, thread, ruid);
- CHECK_THREAD_CRED_FIELD(m_proc, thread, rgid);
- CHECK_THREAD_CRED_FIELD(m_proc, thread, suid);
- CHECK_THREAD_CRED_FIELD(m_proc, thread, sgid);
- CHECK_THREAD_CRED_FIELD(m_proc, thread, fuid);
- CHECK_THREAD_CRED_FIELD(m_proc, thread, fgid);
+ if (m_proc->supgid && thread->supgid) {
+ if (strcmp(m_proc->supgid, thread->supgid))
+ REPORT_THREAD_ERROR(thread->tid, "Supplementary groups",
+ m_proc->supgid, thread->supgid);
+ } else {
+ if (m_proc->supgid != thread->supgid)
+ REPORT_THREAD_ERROR(thread->tid, "Supplementary groups",
+ m_proc->supgid ? m_proc->supgid : "<NULL>",
+ thread->supgid ? thread->supgid : "<NULL>");
+ }
+ CHECK_THREAD_CRED_FIELD(m_proc, thread, euid);
+ CHECK_THREAD_CRED_FIELD(m_proc, thread, egid);
+ CHECK_THREAD_CRED_FIELD(m_proc, thread, ruid);
+ CHECK_THREAD_CRED_FIELD(m_proc, thread, rgid);
+ CHECK_THREAD_CRED_FIELD(m_proc, thread, suid);
+ CHECK_THREAD_CRED_FIELD(m_proc, thread, sgid);
+ CHECK_THREAD_CRED_FIELD(m_proc, thread, fuid);
+ CHECK_THREAD_CRED_FIELD(m_proc, thread, fgid);
}
return true;