|
|
@@ -6550,11 +6550,12 @@ static int selinux_setprocattr(const char *name, void *value, size_t size)
|
|
|
} else if (!strcmp(name, "fscreate")) {
|
|
|
tsec->create_sid = sid;
|
|
|
} else if (!strcmp(name, "keycreate")) {
|
|
|
- error = avc_has_perm(&selinux_state,
|
|
|
- mysid, sid, SECCLASS_KEY, KEY__CREATE,
|
|
|
- NULL);
|
|
|
- if (error)
|
|
|
- goto abort_change;
|
|
|
+ if (sid) {
|
|
|
+ error = avc_has_perm(&selinux_state, mysid, sid,
|
|
|
+ SECCLASS_KEY, KEY__CREATE, NULL);
|
|
|
+ if (error)
|
|
|
+ goto abort_change;
|
|
|
+ }
|
|
|
tsec->keycreate_sid = sid;
|
|
|
} else if (!strcmp(name, "sockcreate")) {
|
|
|
tsec->sockcreate_sid = sid;
|