[coreboot] [commit] r5644 - trunk/util/cbfstool

repository service svn at coreboot.org
Thu Jun 24 15:37:59 CEST 2010


Author: stepan
Date: Thu Jun 24 15:37:59 2010
New Revision: 5644
URL: https://tracker.coreboot.org/trac/coreboot/changeset/5644

Log:
fix return value checks of cbfstool's writerom
Signed-off-by: Stefan Reinauer <stepan at coresystems.de>
Acked-by: Stefan Reinauer <stepan at coresystems.de>

Modified:
   trunk/util/cbfstool/cbfstool.c
   trunk/util/cbfstool/common.c
   trunk/util/cbfstool/common.h

Modified: trunk/util/cbfstool/cbfstool.c
==============================================================================
--- trunk/util/cbfstool/cbfstool.c	Thu Jun 24 13:16:10 2010	(r5643)
+++ trunk/util/cbfstool/cbfstool.c	Thu Jun 24 15:37:59 2010	(r5644)
@@ -83,7 +83,8 @@
 	cbfsfile = create_cbfs_file(cbfsname, filedata, &filesize, type, &base);
 	if (add_file_to_cbfs(cbfsfile, filesize, base))
 		return 1;
-	writerom(romname, rom, romsize);
+	if (writerom(romname, rom, romsize))
+		return 1;
 	return 0;
 }
 
@@ -131,7 +132,8 @@
 			     CBFS_COMPONENT_PAYLOAD, &base);
 	if (add_file_to_cbfs(cbfsfile, filesize, base))
 		return 1;
-	writerom(romname, rom, romsize);
+	if (writerom(romname, rom, romsize))
+		return 1;
 	return 0;
 }
 
@@ -180,7 +182,8 @@
 
 	if (add_file_to_cbfs(cbfsfile, filesize, base))
 		return 1;
-	writerom(romname, rom, romsize);
+	if (writerom(romname, rom, romsize))
+		return 1;
 	return 0;
 }
 

Modified: trunk/util/cbfstool/common.c
==============================================================================
--- trunk/util/cbfstool/common.c	Thu Jun 24 13:16:10 2010	(r5643)
+++ trunk/util/cbfstool/common.c	Thu Jun 24 15:37:59 2010	(r5644)
@@ -90,11 +90,23 @@
 	return romarea;
 }
 
-void writerom(const char *filename, void *start, uint32_t size)
+int writerom(const char *filename, void *start, uint32_t size)
 {
 	FILE *file = fopen(filename, "wb");
-	fwrite(start, size, 1, file);
+	if (!file) {
+		fprintf(stderr, "Could not open '%s' for writing: ", filename);
+		perror("");
+		return 1;
+	}
+
+	if (fwrite(start, size, 1, file) != 1) {
+		fprintf(stderr, "Could not write to '%s': ", filename);
+		perror("");
+		return 1;
+	}
+
 	fclose(file);
+	return 0;
 }
 
 int cbfs_file_header(uint32_t physaddr)

Modified: trunk/util/cbfstool/common.h
==============================================================================
--- trunk/util/cbfstool/common.h	Thu Jun 24 13:16:10 2010	(r5643)
+++ trunk/util/cbfstool/common.h	Thu Jun 24 15:37:59 2010	(r5644)
@@ -44,7 +44,7 @@
 void *loadfile(const char *filename, uint32_t * romsize_p, void *content,
 	       int place);
 void *loadrom(const char *filename);
-void writerom(const char *filename, void *start, uint32_t size);
+int writerom(const char *filename, void *start, uint32_t size);
 
 int iself(unsigned char *input);
 




More information about the coreboot mailing list