summaryrefslogtreecommitdiff
path: root/tests/checkfs/makefiles.c
diff options
context:
space:
mode:
authorPaul McGougan <PMcGougan@topcon.com>2014-04-17 05:09:26 +0000
committerBrian Norris <computersforpeace@gmail.com>2015-09-29 15:48:32 -0700
commit4a95eddcd1d599eb0d61677dab0e879e5ea51e78 (patch)
tree15f2c1868586eb670efb585ac8525e5ab025cacd /tests/checkfs/makefiles.c
parent5f50207231414bfdbac8f0f974a2824f24177d6e (diff)
mtd: tests: Fix endian issue with CRC generation algorithm
The calculation of the CRC in /tests/checkfs/makefiles.c was writing the CRC Into the produced files in host byte-order which would cause CRC validation to fail on big-endian systems as the validation is performed bytewise. Signed-off-by: Paul McGougan <pmcgougan AT topcon.com> [Brian: add endian.h] Signed-off-by: Brian Norris <computersforpeace@gmail.com>
Diffstat (limited to 'tests/checkfs/makefiles.c')
-rw-r--r--tests/checkfs/makefiles.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/tests/checkfs/makefiles.c b/tests/checkfs/makefiles.c
index 589280b..52fea54 100644
--- a/tests/checkfs/makefiles.c
+++ b/tests/checkfs/makefiles.c
@@ -26,6 +26,7 @@ The files are opened in the current dir.
*/
#include <sys/types.h>
#include <sys/stat.h>
+#include <endian.h>
#include <fcntl.h>
#include <stdio.h>
#include <stdlib.h>
@@ -170,6 +171,7 @@ void checksum(char *filename){
printf("Error! Cannot open filename to update checksum: %s\n",filename);
exit(1);
}
+ crc = htole16(crc);
if(fwrite(&crc, sizeof(crc), 1, fp) != 1){
printf("error! unable to update the file for checksum.\n");
fclose(fp);