Re: [PATCH V3 3/5 selinux-next] selinux: sidtab_clone switch to use rwlock.

From: J Freyensee
Date: Wed May 30 2018 - 17:22:51 EST



+int sidtab_clone(struct sidtab *s, struct sidtab *d)
+{
+ int i, rc = 0;
If s or d are NULL (see if() below), why would we want rc, the return value, to be 0? How about defaulting rc to an error value (-EINVAL)?
+ struct sidtab_node *cur;
+
+ if (!s || !d)
+ goto errout;
+
+ read_lock(&s->lock);
+ for (i = 0; i < SIDTAB_SIZE; i++) {
+ cur = s->htable[i];
+ while (cur) {
+ if (cur->sid > SECINITSID_NUM)
+ rc = sidtab_insert(d, cur->sid, &cur->context);
+ if (rc)
+ goto out;
+ cur = cur->next;
+ }
+ }
+out:
+ read_unlock(&s->lock);
+errout:
+ return rc;
+}

Thanks,
Jay