From 1b487ea8a69ac90b530e9ccd161a5b1b21e604c7 Mon Sep 17 00:00:00 2001 From: Michael Gernoth Date: Fri, 27 Jun 2014 14:08:29 +0200 Subject: [PATCH] stat: fix printing selinux context and null-dereference busybox stat tries to always print the selinux context, even if it is not requested which leads to a segmentation fault due to dereferencing a null-pointer. This also changes the format-string used to print the context to so it actually produces useful output. Signed-off-by: Michael Gernoth Signed-off-by: Denys Vlasenko --- coreutils/stat.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/coreutils/stat.c b/coreutils/stat.c index dc9d81c35..769fac078 100644 --- a/coreutils/stat.c +++ b/coreutils/stat.c @@ -655,7 +655,7 @@ static bool do_stat(const char *filename, const char *format) ); # if ENABLE_SELINUX if (option_mask32 & OPT_SELINUX) - printf(" %lc\n", *scontext); + printf(" %s\n", scontext); else bb_putchar('\n'); # endif @@ -700,7 +700,8 @@ static bool do_stat(const char *filename, const char *format) (unsigned long) statbuf.st_gid, (gw_ent != NULL) ? gw_ent->gr_name : "UNKNOWN"); # if ENABLE_SELINUX - printf(" S_Context: %lc\n", *scontext); + if (option_mask32 & OPT_SELINUX) + printf(" S_Context: %s\n", scontext); # endif printf("Access: %s\n", human_time(statbuf.st_atime)); printf("Modify: %s\n", human_time(statbuf.st_mtime));