2007-10-31 03:57:56

by Stephen Rothwell

[permalink] [raw]
Subject: [PATCH] selinux: suppress a warning for 64k pages.

On PowerPC allmodconfig build we get this:

security/selinux/xfrm.c:214: warning: comparison is always false due to limited range of data type

Signed-off-by: Stephen Rothwell <[email protected]>
---
security/selinux/xfrm.c | 3 +++
1 files changed, 3 insertions(+), 0 deletions(-)

--
Cheers,
Stephen Rothwell [email protected]

diff --git a/security/selinux/xfrm.c b/security/selinux/xfrm.c
index 36a191e..602beb0 100644
--- a/security/selinux/xfrm.c
+++ b/security/selinux/xfrm.c
@@ -211,8 +211,11 @@ static int selinux_xfrm_sec_ctx_alloc(struct xfrm_sec_ctx **ctxp,
if (uctx->ctx_doi != XFRM_SC_ALG_SELINUX)
return -EINVAL;

+ /* ctx_len is __u16 */
+#if PAGE_SIZE < (1 << 16)
if (uctx->ctx_len >= PAGE_SIZE)
return -ENOMEM;
+#endif

*ctxp = ctx = kmalloc(sizeof(*ctx) +
uctx->ctx_len + 1,
--
1.5.3.4


2007-10-31 05:47:31

by Stephen Rothwell

[permalink] [raw]
Subject: [PATCHv2] selinux: suppress a warning for 64k pages.

On PowerPC allmodconfig build we get this:

security/selinux/xfrm.c:214: warning: comparison is always false due to limited range of data type

Signed-off-by: Stephen Rothwell <[email protected]>
---
security/selinux/xfrm.c | 13 +++++++------
1 files changed, 7 insertions(+), 6 deletions(-)

This version suppresses the warning without ugly ifdefs.
--
Cheers,
Stephen Rothwell [email protected]

diff --git a/security/selinux/xfrm.c b/security/selinux/xfrm.c
index 36a191e..e076039 100644
--- a/security/selinux/xfrm.c
+++ b/security/selinux/xfrm.c
@@ -211,26 +211,27 @@ static int selinux_xfrm_sec_ctx_alloc(struct xfrm_sec_ctx **ctxp,
if (uctx->ctx_doi != XFRM_SC_ALG_SELINUX)
return -EINVAL;

- if (uctx->ctx_len >= PAGE_SIZE)
+ str_len = uctx->ctx_len;
+ if (str_len >= PAGE_SIZE)
return -ENOMEM;

*ctxp = ctx = kmalloc(sizeof(*ctx) +
- uctx->ctx_len + 1,
+ str_len + 1,
GFP_KERNEL);

if (!ctx)
return -ENOMEM;

ctx->ctx_doi = uctx->ctx_doi;
- ctx->ctx_len = uctx->ctx_len;
+ ctx->ctx_len = str_len;
ctx->ctx_alg = uctx->ctx_alg;

memcpy(ctx->ctx_str,
uctx+1,
- ctx->ctx_len);
- ctx->ctx_str[ctx->ctx_len] = 0;
+ str_len);
+ ctx->ctx_str[str_len] = 0;
rc = security_context_to_sid(ctx->ctx_str,
- ctx->ctx_len,
+ str_len,
&ctx->ctx_sid);

if (rc)
--
1.5.3.4

2007-10-31 13:42:19

by James Morris

[permalink] [raw]
Subject: Re: [PATCHv2] selinux: suppress a warning for 64k pages.

On Wed, 31 Oct 2007, Stephen Rothwell wrote:

> On PowerPC allmodconfig build we get this:
>
> security/selinux/xfrm.c:214: warning: comparison is always false due to limited range of data type
>
> Signed-off-by: Stephen Rothwell <[email protected]>
> ---
> security/selinux/xfrm.c | 13 +++++++------
> 1 files changed, 7 insertions(+), 6 deletions(-)
>
> This version suppresses the warning without ugly ifdefs.


Thanks, Stephen.

Applied to
git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/selinux-2.6.git#for-linus


--
James Morris
<[email protected]>