Patchwork dtc: Check return value from fwrite()

login
register
mail settings
Submitter David Gibson
Date Nov. 7, 2008, 12:41 a.m.
Message ID <20081107004111.GG6692@yookeroo.seuss>
Download mbox | patch
Permalink /patch/7645/
State Not Applicable
Headers show

Comments

David Gibson - Nov. 7, 2008, 12:41 a.m.
There's one place in flattree.c where we currently ignore the return
value from fwrite().  On some gcc/glibc versions, where fwrite() is
declared with attribute warn_unused_result, this causes a warning.

This patch fixes the warning, by checking the fwrite() result.

Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
Jon Loeliger - Nov. 17, 2008, 8:08 p.m.
> There's one place in flattree.c where we currently ignore the return
> value from fwrite().  On some gcc/glibc versions, where fwrite() is
> declared with attribute warn_unused_result, this causes a warning.
> 
> This patch fixes the warning, by checking the fwrite() result.
> 
> Signed-off-by: David Gibson <david@gibson.dropbear.id.au>

Applied.

Thanks,
jdl

Patch

Index: dtc/flattree.c
===================================================================
--- dtc.orig/flattree.c	2008-11-07 11:40:02.000000000 +1100
+++ dtc/flattree.c	2008-11-07 11:40:30.000000000 +1100
@@ -413,10 +413,13 @@  void dt_to_blob(FILE *f, struct boot_inf
 	if (padlen > 0)
 		blob = data_append_zeroes(blob, padlen);
 
-	fwrite(blob.val, blob.len, 1, f);
-
-	if (ferror(f))
-		die("Error writing device tree blob: %s\n", strerror(errno));
+	if (fwrite(blob.val, blob.len, 1, f) != 1) {
+		if (ferror(f))
+			die("Error writing device tree blob: %s\n",
+			    strerror(errno));
+		else
+			die("Short write on device tree blob\n");
+	}
 
 	/*
 	 * data_merge() frees the right-hand element so only the blob