diff --git a/tools/envcrc.c b/tools/envcrc.c
index d02a7dbcdccac059c7f64b8cbbbb79658147f2c5..d1e84b3b6371c2b66849669a93e2379803c6a223 100644
--- a/tools/envcrc.c
+++ b/tools/envcrc.c
@@ -21,6 +21,7 @@
  * MA 02111-1307 USA
  */
 
+#include <errno.h>
 #include <stdio.h>
 #include <stdint.h>
 #include <stdlib.h>
@@ -114,7 +115,8 @@ int main (int argc, char **argv)
 			}
 			for (i = start; i != end; i += step)
 				printf("%c", (crc & (0xFF << (i * 8))) >> (i * 8));
-			fwrite(dataptr, 1, datasize, stdout);
+			if (fwrite(dataptr, 1, datasize, stdout) != datasize)
+				fprintf(stderr, "fwrite() failed: %s\n", strerror(errno));
 		} else {
 			printf("CRC32 from offset %08X to %08X of environment = %08X\n",
 				(unsigned int) (dataptr - envptr),