summary refs log tree commit diff
path: root/security/smack
diff options
context:
space:
mode:
authorEric Paris <eparis@redhat.com>2010-10-13 16:24:48 -0400
committerJames Morris <jmorris@namei.org>2010-10-21 10:12:50 +1100
commitd5630b9d276bd389299ffea620b7c340ab19bcf5 (patch)
tree4e97cadf12518fb107f9e7140fa94343bd6643f5 /security/smack
parent2606fd1fa5710205b23ee859563502aa18362447 (diff)
downloadlinux-d5630b9d276bd389299ffea620b7c340ab19bcf5.tar.gz
security: secid_to_secctx returns len when data is NULL
With the (long ago) interface change to have the secid_to_secctx functions
do the string allocation instead of having the caller do the allocation we
lost the ability to query the security server for the length of the
upcoming string.  The SECMARK code would like to allocate a netlink skb
with enough length to hold the string but it is just too unclean to do the
string allocation twice or to do the allocation the first time and hold
onto the string and slen.  This patch adds the ability to call
security_secid_to_secctx() with a NULL data pointer and it will just set
the slen pointer.

Signed-off-by: Eric Paris <eparis@redhat.com>
Reviewed-by: Paul Moore <paul.moore@hp.com>
Signed-off-by: James Morris <jmorris@namei.org>
Diffstat (limited to 'security/smack')
-rw-r--r--security/smack/smack_lsm.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/security/smack/smack_lsm.c b/security/smack/smack_lsm.c
index 174aec44bfac..bc39f4067af6 100644
--- a/security/smack/smack_lsm.c
+++ b/security/smack/smack_lsm.c
@@ -3004,7 +3004,8 @@ static int smack_secid_to_secctx(u32 secid, char **secdata, u32 *seclen)
 {
 	char *sp = smack_from_secid(secid);
 
-	*secdata = sp;
+	if (secdata)
+		*secdata = sp;
 	*seclen = strlen(sp);
 	return 0;
 }