On Thu, Jun 30, 2016 at 06:01:42PM +0300, Yuval Shaia wrote: > On Thu, Jun 23, 2016 at 10:52:48PM +0300, Dan Jurgens wrote: > > From: Daniel Jurgens <[email protected]> > > + rc = next_entry(nodebuf, fp, sizeof(u32) * 6); > > + if (rc) > > + goto out; > > + > > + c->u.pkey.subnet_prefix = be64_to_cpu(*((__be64 > > *)nodebuf)); > > More than 80 characters
Yes, we prefer code readability over checkpatch warning.
>
> > + /* The subnet prefix is stored as an IPv6
> > + * address in the policy.
> > + *
> > + * Check that the lower 2 DWORDS are 0.
> > + */
> > + if (nodebuf[2] || nodebuf[3]) {
> > + rc = -EINVAL;
> > + goto out;
> > + }
> > +
> > + if (nodebuf[4] > 0xffff ||
> > + nodebuf[5] > 0xffff) {
> > + rc = -EINVAL;
> > + goto out;
> > + }
> > +
> > + c->u.pkey.low_pkey = le32_to_cpu(nodebuf[4]);
> > + c->u.pkey.high_pkey = le32_to_cpu(nodebuf[5]);
> > +
> > + rc = context_read_and_validate(&c->context[0],
> > + p,
> > + fp);
> > + if (rc)
> > + goto out;
> > + break;
> > + }
> > + case OCON_IB_END_PORT:
> > + rc = next_entry(buf, fp, sizeof(u32) * 2);
> > + if (rc)
> > + goto out;
> > + len = le32_to_cpu(buf[0]);
> > +
> > + rc = str_read(&c->u.ib_end_port.dev_name,
> > GFP_KERNEL,
>
> More than 80 characters?
I would recommend to place all in one line.
>
> > + fp,
> > + len);
> > + if (rc)
> > + goto out;
> > +
> > + c->u.ib_end_port.port = le32_to_cpu(buf[1]);
> > +
> > + rc = context_read_and_validate(&c->context[0],
> > + p,
> > + fp);
> > + if (rc)
> > + goto out;
> > + break;
> > }
> > }
> > }
> > @@ -3147,6 +3209,43 @@ static int ocontext_write(struct policydb *p, struct
> > policydb_compat_info *info,
>
> More than 80 characters
Agree
>
> > if (rc)
> > return rc;
> > break;
> > + case OCON_PKEY: {
>
> Is "{" needed?
No, I agree, need to remove.
>
> > + __be64 *sbn_pfx = (__be64 *)nodebuf;
> > + *sbn_pfx = cpu_to_be64(c->u.pkey.subnet_prefix);
> > +
> > + /*
> > + * The low order 2 bits were confirmed to be 0
> > + * when the policy was loaded. Write them out
> > + * as zero
> > + */
> > + nodebuf[2] = 0;
> > + nodebuf[3] = 0;
> > +
> > + nodebuf[4] = cpu_to_le32(c->u.pkey.low_pkey);
> > + nodebuf[5] = cpu_to_le32(c->u.pkey.high_pkey);
> > +
> > + rc = put_entry(nodebuf, sizeof(u32), 6, fp);
> > + if (rc)
> > + return rc;
> > + rc = context_write(p, &c->context[0], fp);
> > + if (rc)
> > + return rc;
> > + break;
> > + }
> > + case OCON_IB_END_PORT:
> > + len = strlen(c->u.ib_end_port.dev_name);
> > + buf[0] = cpu_to_le32(len);
> > + buf[1] = cpu_to_le32(c->u.ib_end_port.port);
> > + rc = put_entry(buf, sizeof(u32), 2, fp);
> > + if (rc)
> > + return rc;
> > + rc = put_entry(c->u.ib_end_port.dev_name, 1,
> > len, fp);
>
> More than 80 characters?
Readability
>
> > + if (rc)
> > + return rc;
> > + rc = context_write(p, &c->context[0], fp);
> > + if (rc)
> > + return rc;
> > + break;
> > }
> > }
> > }
> > diff --git a/security/selinux/ss/policydb.h b/security/selinux/ss/policydb.h
> > index 725d594..751bf604 100644
> > --- a/security/selinux/ss/policydb.h
> > +++ b/security/selinux/ss/policydb.h
> > @@ -187,6 +187,15 @@ struct ocontext {
> > u32 addr[4];
> > u32 mask[4];
> > } node6; /* IPv6 node information */
> > + struct {
> > + u64 subnet_prefix;
> > + u16 low_pkey;
> > + u16 high_pkey;
> > + } pkey;
> > + struct {
> > + char *dev_name;
> > + u8 port;
> > + } ib_end_port;
> > } u;
> > union {
> > u32 sclass; /* security class for genfs */
> > @@ -215,14 +224,16 @@ struct genfs {
> > #define SYM_NUM 8
> >
> > /* object context array indices */
> > -#define OCON_ISID 0 /* initial SIDs */
> > -#define OCON_FS 1 /* unlabeled file systems */
> > -#define OCON_PORT 2 /* TCP and UDP port numbers */
> > -#define OCON_NETIF 3 /* network interfaces */
> > -#define OCON_NODE 4 /* nodes */
> > -#define OCON_FSUSE 5 /* fs_use */
> > -#define OCON_NODE6 6 /* IPv6 nodes */
> > -#define OCON_NUM 7
> > +#define OCON_ISID 0 /* initial SIDs */
> > +#define OCON_FS 1 /* unlabeled file systems */
> > +#define OCON_PORT 2 /* TCP and UDP port numbers */
> > +#define OCON_NETIF 3 /* network interfaces */
> > +#define OCON_NODE 4 /* nodes */
> > +#define OCON_FSUSE 5 /* fs_use */
> > +#define OCON_NODE6 6 /* IPv6 nodes */
> > +#define OCON_PKEY 7 /* Infiniband PKeys */
> > +#define OCON_IB_END_PORT 8 /* Infiniband End ports */
> > +#define OCON_NUM 9
> >
> > /* The policy database */
> > struct policydb {
> > --
> > 1.8.3.1
> >
> > --
> > To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
> > the body of a message to [email protected]
> > More majordomo info at http://vger.kernel.org/majordomo-info.html
> --
> To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
> the body of a message to [email protected]
> More majordomo info at http://vger.kernel.org/majordomo-info.html
signature.asc
Description: Digital signature
_______________________________________________ Selinux mailing list [email protected] To unsubscribe, send email to [email protected]. To get help, send an email containing "help" to [email protected].
