Modiy mkyaffsimage for SELinux.

We need to ensure that a leading '/' is present for
selabel_lookups so they match file_context entries.

Change-Id: If39df42b73141bed0851a6b74c6f2c2da0c1658f
Signed-off-by: rpcraig <rpcraig@tycho.ncsc.mil>
diff --git a/yaffs2/utils/mkyaffs2image.c b/yaffs2/utils/mkyaffs2image.c
index 2b152e6..f4e5745 100644
--- a/yaffs2/utils/mkyaffs2image.c
+++ b/yaffs2/utils/mkyaffs2image.c
@@ -382,12 +382,26 @@
 							mntpoint, suffix);
 						exit(1);
 					}
-					if (selabel_lookup(sehnd, &secontext,
-							   dest_name,
-							   stats.st_mode) < 0) {
-						perror("selabel_lookup");
-						exit(1);
+
+					char *sepath = NULL;
+					if (dest_name[0] == '/')
+					        sepath = strdup(dest_name);
+					else if (asprintf(&sepath, "/%s", dest_name) < 0)
+                                                sepath = NULL;
+
+					if (!sepath) {
+					        perror("malloc");
+					        exit(1);
 					}
+
+					if (selabel_lookup(sehnd, &secontext,
+							   sepath,
+							   stats.st_mode) < 0) {
+					        perror("selabel_lookup");
+					        free(sepath);
+					        exit(1);
+					}
+					free(sepath);
 				}
 #endif
 
@@ -636,10 +650,25 @@
 	//printf("Processing directory %s into image file %s\n",dir,image);
 #ifdef HAVE_SELINUX
     if (sehnd) {
-	    if (selabel_lookup(sehnd, &secontext, mntpoint, stats.st_mode) < 0) {
-		    perror("selabel_lookup");
-		    exit(1);
-	    }
+
+        char *sepath = NULL;
+        if (mntpoint[0] == '/')
+	    sepath = strdup(mntpoint);
+        else if (asprintf(&sepath, "/%s", mntpoint) < 0)
+            sepath = NULL;
+
+        if (!sepath) {
+	    perror("malloc");
+	    exit(1);
+	}
+
+	if (selabel_lookup(sehnd, &secontext, sepath, stats.st_mode) < 0) {
+	    perror("selabel_lookup");
+	    free(sepath);
+	    exit(1);
+	}
+
+	free(sepath);
     }
 #endif