fix getting and setting contexts in selinux

recreate lost+found with selinux contexts

Change-Id: I19e8696d47319dfb641520956c8a27c2a796a0c3
diff --git a/libtar/append.c b/libtar/append.c
index 3a8bfc6..dcd8649 100644
--- a/libtar/append.c
+++ b/libtar/append.c
@@ -92,29 +92,22 @@
 
 #ifdef HAVE_SELINUX
 	/* get selinux context */
-	if(t->options & TAR_STORE_SELINUX)
-	{
-		if(t->th_buf.selinux_context != NULL)
-		{
+	if(t->options & TAR_STORE_SELINUX) {
+		if(t->th_buf.selinux_context != NULL) {
 			free(t->th_buf.selinux_context);
 			t->th_buf.selinux_context = NULL;
 		}
 
 		security_context_t selinux_context = NULL;
-		if(getfilecon(realname, &selinux_context) >= 0)
-		{
+		if (lgetfilecon(realname, &selinux_context) >= 0) {
 			t->th_buf.selinux_context = strdup(selinux_context);
+			printf("setting selinux context: %s\n", selinux_context);
 			freecon(selinux_context);
 		}
 		else
-		{
-#ifdef DEBUG
 			perror("Failed to get selinux context");
-#endif
-		}
 	}
 #endif
-
 	/* check if it's a hardlink */
 #ifdef DEBUG
 	puts("    tar_append_file(): checking inode cache for hardlink...");
diff --git a/libtar/extract.c b/libtar/extract.c
index d19ba85..8081aa2 100644
--- a/libtar/extract.c
+++ b/libtar/extract.c
@@ -161,8 +161,9 @@
 #ifdef DEBUG
 		printf("    Restoring SELinux context %s to file %s\n", t->th_buf.selinux_context, realname);
 #endif
-		if(setfilecon(realname, t->th_buf.selinux_context) < 0)
+		if (lsetfilecon(realname, t->th_buf.selinux_context) < 0) {
 			fprintf(stderr, "Failed to restore SELinux context %s!\n", strerror(errno));
+		}
 	}
 #endif