From 3144ab58a6063e6658d228c4bdf22827c2249a49 Mon Sep 17 00:00:00 2001
From: Max Horn <max@quendi.de>
Date: Sun, 27 May 2007 12:43:06 +0000
Subject: [PATCH] Paranoia changes (shouldn't have any real effect, though...)

svn-id: r26972
---
 common/md5.cpp | 12 ++++++------
 common/md5.h   |  7 ++++---
 2 files changed, 10 insertions(+), 9 deletions(-)

diff --git a/common/md5.cpp b/common/md5.cpp
index 700897e08fe..ac90ddb2e4f 100644
--- a/common/md5.cpp
+++ b/common/md5.cpp
@@ -301,37 +301,37 @@ bool md5_file(ReadStream &stream, uint8 digest[16], uint32 length) {
 	return true;
 }
 
-bool md5_file_string(const FilesystemNode &file, char md5str[32+1], uint32 length) {
+bool md5_file_string(const FilesystemNode &file, char *md5str, uint32 length) {
 	uint8 digest[16];
 	if (!md5_file(file, digest, length))
 		return false;
 
 	for (int i = 0; i < 16; i++) {
-		sprintf(md5str + i*2, "%02x", (int)digest[i]);
+		snprintf(md5str + i*2, 3, "%02x", (int)digest[i]);
 	}
 
 	return true;
 }
 
-bool md5_file_string(const char *name, char md5str[32+1], uint32 length) {
+bool md5_file_string(const char *name, char *md5str, uint32 length) {
 	uint8 digest[16];
 	if (!md5_file(name, digest, length))
 		return false;
 
 	for (int i = 0; i < 16; i++) {
-		sprintf(md5str + i*2, "%02x", (int)digest[i]);
+		snprintf(md5str + i*2, 3, "%02x", (int)digest[i]);
 	}
 
 	return true;
 }
 
-bool md5_file_string(ReadStream &stream, char md5str[32+1], uint32 length) {
+bool md5_file_string(ReadStream &stream, char *md5str, uint32 length) {
 	uint8 digest[16];
 	if (!md5_file(stream, digest, length))
 		return false;
 
 	for (int i = 0; i < 16; i++) {
-		sprintf(md5str + i*2, "%02x", (int)digest[i]);
+		snprintf(md5str + i*2, 3, "%02x", (int)digest[i]);
 	}
 
 	return true;
diff --git a/common/md5.h b/common/md5.h
index 6700ff355f6..fa03465ac85 100644
--- a/common/md5.h
+++ b/common/md5.h
@@ -35,9 +35,10 @@ bool md5_file(ReadStream &stream, uint8 digest[16], uint32 length = 0);
 // The following two methods work similar to the above two, but 
 // instead of computing the binary MD5 digest, they produce
 // a human readable lowercase hexstring representing the digest.
-bool md5_file_string(const char *name, char md5str[32+1], uint32 length = 0);
-bool md5_file_string(const FilesystemNode &file, char md5str[32+1], uint32 length = 0);
-bool md5_file_string(ReadStream &stream, char md5str[32+1], uint32 length = 0);
+// The md5str parameter must point to a buffer of 32+1 chars.
+bool md5_file_string(const char *name, char *md5str, uint32 length = 0);
+bool md5_file_string(const FilesystemNode &file, char *md5str, uint32 length = 0);
+bool md5_file_string(ReadStream &stream, char *md5str, uint32 length = 0);
 
 
 } // End of namespace Common