Skip to contentSkip to conversation

suspend-utils: checksum buffer length error

PATCH New Rodolfo García Peñas 1 participant 1 message Aug 14, 2013

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 suspend-utils: checksum buffer length error

From bd16d8764e7606182f2871dd99b76b10df7ca9be Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?"Rodolfo=20Garc=C3=ADa=20Pe=C3=B1as=20(kix)"?= <[email protected]>
Date: Wed, 14 Aug 2013 19:25:45 +0200
Subject: [PATCH] suspend-utils: checksum buffer length error
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

The length for the checksum buffer csum_buf is 48. The function print_checksum uses these 48 bytes to store the checksum. There are no space for '\0'. So, the '\0' is written on orig_checksum[0] and then the checksum doesn't match.

This patch was sent to "http://sourceforge.net/projects/suspend/" by yecril71pl:

- - - 8< - - -
File load.c Is: static char csum_buf[48]; Let: static char csum_buf[49];
Because: 49 = (2 + 1) * 16 + 1 (for the terminating \0)
Otherwise: orig_checksum [0] = 0 and the checksums do not match.
- - - 8< - - -

---
 load.c |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
load.c +1 -1
index 6d1c6ed..0f7a26f 100644
@@ -573,7 +573,7 @@ int read_or_verify(int dev, int fd, struct image_header_info *header,
 {
 	static struct swap_reader handle;
 	static unsigned char orig_checksum[16], checksum[16];
-	static char csum_buf[48];
+	static char csum_buf[49];
 	int error = 0, test_mode = (verify || test);
 
 	error = read_page(fd, header, start);
Signature · 1 line
1.7.10.4