From: <ssm...@us...> - 2007-04-09 18:34:40
|
Revision: 2330 http://svn.sourceforge.net/selinux/?rev=2330&view=rev Author: ssmalley Date: 2007-04-09 11:34:19 -0700 (Mon, 09 Apr 2007) Log Message: ----------- Author: James Carter Email: jw...@ty... Subject: libselinux: add support for getting contexts for kernel initial SIDs from selinuxfs (resend) Date: Mon, 09 Apr 2007 14:27:00 -0400 Add support to libselinux to get a userspace SID for a kernel initial security identifier specified by name from the selinuxfs interface. It is a convenience function that calls security_get_initial_context_raw() and avc_context_to_sid_raw(). Signed-off-by: James Carter <jw...@ty...> Modified Paths: -------------- trunk/libselinux/include/selinux/avc.h trunk/libselinux/man/man3/avc_context_to_sid.3 trunk/libselinux/src/avc.c Added Paths: ----------- trunk/libselinux/man/man3/avc_get_initial_context.3 Modified: trunk/libselinux/include/selinux/avc.h =================================================================== --- trunk/libselinux/include/selinux/avc.h 2007-04-09 18:26:02 UTC (rev 2329) +++ trunk/libselinux/include/selinux/avc.h 2007-04-09 18:34:19 UTC (rev 2330) @@ -78,6 +78,17 @@ */ int sidput(security_id_t sid); +/** + * avc_get_initial_sid - get SID for an initial kernel security identifier + * @name: input name of initial kernel security identifier + * @sid: pointer to a SID reference + * + * Get the context for an initial kernel security identifier specified by + * @name using security_get_initial_context() and then call + * avc_context_to_sid() to get the corresponding SID. + */ + int avc_get_initial_sid(const char * name, security_id_t * sid); + /* * AVC entry */ Modified: trunk/libselinux/man/man3/avc_context_to_sid.3 =================================================================== --- trunk/libselinux/man/man3/avc_context_to_sid.3 2007-04-09 18:26:02 UTC (rev 2329) +++ trunk/libselinux/man/man3/avc_context_to_sid.3 2007-04-09 18:34:19 UTC (rev 2330) @@ -3,7 +3,7 @@ .\" Author: Eamon Walsh (ew...@ep...) 2004 .TH "avc_context_to_sid" "3" "27 May 2004" "" "SE Linux API documentation" .SH "NAME" -avc_context_to_sid, avc_sid_to_context, sidput, sidget \- obtain and manipulate SELinux security ID's. +avc_context_to_sid, avc_sid_to_context, sidput, sidget, avc_get_initial_sid \- obtain and manipulate SELinux security ID's. .SH "SYNOPSIS" .B #include <selinux/selinux.h> .br @@ -16,6 +16,8 @@ .BI "int sidget(security_id_t " sid ");" .sp .BI "int sidput(security_id_t " sid ");" +.BI "int avc_get_initial_sid(const char *" name ", security_id_t *" sid ");" +.sp .SH "DESCRIPTION" Security ID's (SID's) are reference-counted, opaque representations of security contexts. @@ -45,6 +47,9 @@ by 1. If the count ever reaches zero, the SID becomes invalid and must not be used any further. +.B avc_get_initial_sid +returns a SID for the initial kernel security identifier specified by name + .SH "RETURN VALUE" .B sidget and Added: trunk/libselinux/man/man3/avc_get_initial_context.3 =================================================================== --- trunk/libselinux/man/man3/avc_get_initial_context.3 (rev 0) +++ trunk/libselinux/man/man3/avc_get_initial_context.3 2007-04-09 18:34:19 UTC (rev 2330) @@ -0,0 +1 @@ +.so man3/avc_context_to_sid.3 Modified: trunk/libselinux/src/avc.c =================================================================== --- trunk/libselinux/src/avc.c 2007-04-09 18:26:02 UTC (rev 2329) +++ trunk/libselinux/src/avc.c 2007-04-09 18:34:19 UTC (rev 2330) @@ -280,6 +280,21 @@ return rc; } +int avc_get_initial_sid(const char * name, security_id_t * sid) +{ + int rc; + security_context_t con; + + rc = security_get_initial_context_raw(name, &con); + if (rc < 0) + return rc; + rc = avc_context_to_sid_raw(con, sid); + + freecon(con); + + return rc; +} + int avc_init(const char *prefix, const struct avc_memory_callback *mem_cb, const struct avc_log_callback *log_cb, This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |