summaryrefslogtreecommitdiff
path: root/coreutils
diff options
context:
space:
mode:
Diffstat (limited to 'coreutils')
-rw-r--r--coreutils/id.c21
1 files changed, 9 insertions, 12 deletions
diff --git a/coreutils/id.c b/coreutils/id.c
index 35f945d..36007ae 100644
--- a/coreutils/id.c
+++ b/coreutils/id.c
@@ -89,19 +89,16 @@ int id_main(int argc, char **argv)
#ifdef CONFIG_SELINUX
if (is_selinux_enabled()) {
- security_context_t mysid;
- char context[80];
- int len = sizeof(context);
+ security_context_t mysid;
+ const char *context;
- getcon(&mysid);
- context[0] = '\0';
- if (mysid) {
- len = strlen(mysid)+1;
- safe_strncpy(context, mysid, len);
- freecon(mysid);
- } else {
- safe_strncpy(context, "unknown", 8);
- }
+ context = "unknown";
+ getcon(&mysid);
+ if (mysid) {
+ context = alloca(strlen(mysid) + 1);
+ strcpy((char*)context, mysid);
+ freecon(mysid);
+ }
printf(" context=%s", context);
}
#endif