summaryrefslogtreecommitdiff
path: root/gfxinit.c
diff options
context:
space:
mode:
authortron <tron@openttd.org>2006-08-31 07:52:20 +0000
committertron <tron@openttd.org>2006-08-31 07:52:20 +0000
commitcd8f1cc63dcbb54e69eb2ec6258ec2ecbbd08755 (patch)
tree4086f0a55e24d4cdbfe4d6e5978c3d2eec9a6ac5 /gfxinit.c
parent45e34d555c509a97a24ba71562c7cf3e5670a090 (diff)
downloadopenttd-cd8f1cc63dcbb54e69eb2ec6258ec2ecbbd08755.tar.xz
(svn r6257) Use memcmp() to check the MD5 sum instead of using a home brewed loop
Diffstat (limited to 'gfxinit.c')
-rw-r--r--gfxinit.c16
1 files changed, 4 insertions, 12 deletions
diff --git a/gfxinit.c b/gfxinit.c
index febc2cd60..9fd6825c5 100644
--- 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 @@ static void LoadGrfIndexed(const char* filename, const SpriteID* index_tbl, int
/* 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.