From: José Bollo Date: Tue, 10 Dec 2013 13:37:31 +0000 (+0100) Subject: chsmack: use of 'smack_new_label_from_path' X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=acb38a66bd2cd6dc65994525b9978da92f9248a5;p=framework%2Fsecurity%2Fsmack.git chsmack: use of 'smack_new_label_from_path' The library libsmack offer a function for reading Smack labels. It is better to use the function of the library. Signed-off-by: José Bollo --- diff --git a/utils/Makefile.am b/utils/Makefile.am index e8a543a..21df01f 100644 --- a/utils/Makefile.am +++ b/utils/Makefile.am @@ -15,5 +15,6 @@ smackctl_SOURCES = smackctl.c common.c smackctl_LDADD = ../libsmack/libsmack.la chsmack_SOURCES = chsmack.c +chsmack_LDADD = ../libsmack/libsmack.la EXTRA_DIST = common.h diff --git a/utils/chsmack.c b/utils/chsmack.c index 7069174..0d5cce5 100644 --- a/utils/chsmack.c +++ b/utils/chsmack.c @@ -82,6 +82,7 @@ int main(int argc, char *argv[]) static char mmap_buf[SMACK_LABEL_LEN + 1]; static int options_map[128]; + char *label; int transmute_flag = 0; int option_flag = 0; int rc; @@ -161,32 +162,32 @@ int main(int argc, char *argv[]) /* Print file path. */ printf("%s", argv[i]); - rc = lgetxattr(argv[i], XATTR_NAME_SMACK, access_buf, - SMACK_LABEL_LEN + 1); + rc = (int)smack_new_label_from_path(argv[i], + XATTR_NAME_SMACK, 0, &label); if (rc > 0) { - access_buf[rc] = '\0'; - printf(" access=\"%s\"", access_buf); + printf(" access=\"%s\"", label); + free(label); } - rc = lgetxattr(argv[i], XATTR_NAME_SMACKEXEC, access_buf, - SMACK_LABEL_LEN + 1); + rc = (int)smack_new_label_from_path(argv[i], + XATTR_NAME_SMACKEXEC, 0, &label); if (rc > 0) { - access_buf[rc] = '\0'; - printf(" execute=\"%s\"", access_buf); - + printf(" execute=\"%s\"", label); + free(label); } - rc = lgetxattr(argv[i], XATTR_NAME_SMACKMMAP, access_buf, - SMACK_LABEL_LEN + 1); + + rc = (int)smack_new_label_from_path(argv[i], + XATTR_NAME_SMACKMMAP, 0, &label); if (rc > 0) { - access_buf[rc] = '\0'; - printf(" mmap=\"%s\"", access_buf); + printf(" mmap=\"%s\"", label); + free(label); } - rc = lgetxattr(argv[i], XATTR_NAME_SMACKTRANSMUTE, - access_buf, SMACK_LABEL_LEN + 1); + rc = (int)smack_new_label_from_path(argv[i], + XATTR_NAME_SMACKTRANSMUTE, 0, &label); if (rc > 0) { - access_buf[rc] = '\0'; - printf(" transmute=\"%s\"", access_buf); + printf(" transmute=\"%s\"", label); + free(label); } printf("\n");