diff -up vboot-utils-20130222gite6cf2c2/host/arch/arm/lib/crossystem_arch.c.unused vboot-utils-20130222gite6cf2c2/host/arch/arm/lib/crossystem_arch.c --- vboot-utils-20130222gite6cf2c2/host/arch/arm/lib/crossystem_arch.c.unused 2012-12-19 11:37:24.000000000 -0500 +++ vboot-utils-20130222gite6cf2c2/host/arch/arm/lib/crossystem_arch.c 2013-03-07 16:55:13.899853426 -0500 @@ -81,6 +81,7 @@ static int ReadFdtValue(const char *prop char filename[FNAME_SIZE]; FILE *file; int data = 0; + size_t count; snprintf(filename, sizeof(filename), FDT_BASE_PATH "/%s", property); file = fopen(filename, "rb"); @@ -89,8 +90,12 @@ static int ReadFdtValue(const char *prop return E_FILEOP; } - fread(&data, 1, sizeof(data), file); + count = fread(&data, 1, sizeof(data), file); fclose(file); + if (count < 0) { + fprintf(stderr, "Unable to read FDT property %s\n", property); + return E_FILEOP; + } if (value) *value = ntohl(data); /* FDT is network byte order */