Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 37eebe39 authored by Matvejchikov Ilya's avatar Matvejchikov Ilya Committed by Eric Paris
Browse files

audit: improve GID/EGID comparation logic



It is useful to extend GID/EGID comparation logic to be able to
match not only the exact EID/EGID values but the group/egroup also.

Signed-off-by: default avatarMatvejchikov Ilya <matvejchikov@gmail.com>
Signed-off-by: default avatarEric Paris <eparis@redhat.com>
parent 19f949f5
Loading
Loading
Loading
Loading
+14 −0
Original line number Diff line number Diff line
@@ -633,9 +633,23 @@ static int audit_filter_rules(struct task_struct *tsk,
			break;
		case AUDIT_GID:
			result = audit_gid_comparator(cred->gid, f->op, f->gid);
			if (f->op == Audit_equal) {
				if (!result)
					result = in_group_p(f->gid);
			} else if (f->op == Audit_not_equal) {
				if (result)
					result = !in_group_p(f->gid);
			}
			break;
		case AUDIT_EGID:
			result = audit_gid_comparator(cred->egid, f->op, f->gid);
			if (f->op == Audit_equal) {
				if (!result)
					result = in_egroup_p(f->gid);
			} else if (f->op == Audit_not_equal) {
				if (result)
					result = !in_egroup_p(f->gid);
			}
			break;
		case AUDIT_SGID:
			result = audit_gid_comparator(cred->sgid, f->op, f->gid);