changeset 4472:be6ec1c0ed04 draft

(svn r6257) Use memcmp() to check the MD5 sum instead of using a home brewed loop
author tron <tron@openttd.org>
date Thu, 31 Aug 2006 07:52:20 +0000
parents 746e4c471044
children f5507d57082f
files gfxinit.c
diffstat 1 files changed, 4 insertions(+), 12 deletions(-) [+]
line wrap: on
line diff
--- a/gfxinit.c
+++ b/gfxinit.c
@@ -13,6 +13,7 @@
 #include "newgrf.h"
 #include "md5.h"
 #include "variables.h"
+#include <string.h>
 
 typedef struct MD5File {
 	const char * const filename;     // filename
@@ -96,18 +97,9 @@
 /* Check that the supplied MD5 hash matches that stored for the supplied filename */
 static bool CheckMD5Digest(const MD5File file, md5_byte_t *digest, bool warn)
 {
-	uint i;
-
-	/* Loop through each byte of the file MD5 and the stored MD5... */
-	for (i = 0; i < 16; i++) if (file.hash[i] != digest[i]) break;
-
-		/* If all bytes of the MD5's match (i.e. the MD5's match)... */
-	if (i == 16) {
-		return true;
-	} else {
-		if (warn) fprintf(stderr, "MD5 of %s is ****INCORRECT**** - File Corrupt.\n", file.filename);
-		return false;
-	};
+	if (memcmp(file.hash, digest, sizeof(file.hash)) == 0) return true;
+	if (warn) fprintf(stderr, "MD5 of %s is ****INCORRECT**** - File Corrupt.\n", file.filename);
+	return false;
 }
 
 /* Calculate and check the MD5 hash of the supplied filename.