From: Michael Gernoth Date: Fri, 27 Jun 2014 12:08:29 +0000 (+0200) Subject: stat: fix printing selinux context and null-dereference X-Git-Tag: 1_23_0~88 X-Git-Url: https://git.librecmc.org/?a=commitdiff_plain;h=1b487ea8a69ac90b530e9ccd161a5b1b21e604c7;p=oweals%2Fbusybox.git 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 --- 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));