diff -Naur a/src/main.c b/src/main.c
--- a/src/main.c	2014-12-03 16:53:29.724125643 -0800
+++ b/src/main.c	2014-12-03 17:47:29.835274590 -0800
@@ -47,7 +47,6 @@
 #include <sys/un.h>
 #include <sys/mman.h>
 #include <sys/wait.h>
-#include <sys/sendfile.h>
 
 #include "mtd.h"
 #include "plat_boot_config.h"
@@ -555,33 +554,29 @@
 	return 0;
 }
 
-static char *tmp_file = ".tmp_kobs_ng";
-static char *padding_1k_in_head(char *file_name)
+static FILE *padding_1k_in_head(FILE *from)
 {
-	int to, from;
-	int ret;
-	int sz = getpagesize();
-
-	from = open(file_name, O_RDONLY, S_IRUSR | S_IWUSR);
-	to = open(tmp_file, O_CREAT | O_RDWR, S_IRUSR | S_IWUSR);
-	if (from < 0 || to < 0) {
+	FILE *to;
+	char buf[BUFSIZ];
+	size_t size;
+
+	to = tmpfile();
+	if (from == NULL || to == NULL) {
 		fprintf(stderr, "unable to create a temporary file\n");
 		exit(5);
 	}
 
 	/* Padding 1k in the head. */
-	lseek(to, 1024, SEEK_SET);
+	fseek(to, 1024, SEEK_SET);
 
-	do {
-		/* copy a page each time. */
-		ret = sendfile(to, from, NULL, sz);
-	} while (ret > 0);
+	while ((size = fread(buf, 1, BUFSIZ, from)) > 0) {
+		fwrite(buf, 1, size, to);
+	}
 
-	close(to);
-	close(from);
+	fclose(from);
 
 	/* change to the temporary file. */
-	return tmp_file;
+	return to;
 }
 
 int init_main(int argc, char **argv)
@@ -670,19 +665,19 @@
 	 * So we have to add the 1k-padding ourselves.
 	 * Note: We only burn the uboot to nand in the kernel 3.5.7.
 	 */
-	if (padding) {
-		infile = padding_1k_in_head(infile);
-
-		if (flags & F_VERBOSE)
-			printf("\t -- We add the 1k-padding to the uboot.\n");
-	}
-
 	infp = fopen(infile, "rb");
 	if (infp == NULL) {
 		fprintf(stderr, "Unable to open input file '%s'\n", infile);
 		usage();
 	}
 
+	if (padding) {
+		infp = padding_1k_in_head(infp);
+
+		if (flags & F_VERBOSE)
+			printf("\t -- We add the 1k-padding to the uboot.\n");
+	}
+
 	keyp = !device_key ? key : NULL;
 
 	if (flags & F_VERBOSE)
