https://git.gnupg.org/cgi-bin/gitweb.cgi?p=scute.git;a=commit;h=bc53a3e54f6a66e76888b370906d53f933d41f91 From bc53a3e54f6a66e76888b370906d53f933d41f91 Mon Sep 17 00:00:00 2001 From: NIIBE Yutaka Date: Thu, 6 Jul 2023 10:20:32 +0900 Subject: [PATCH] agent: Fix off-by-one error for the length of CMD buffer. * src/agent.c (scute_agent_sign): 151 is needed for sha512 hash. Raise a correct error when it's not enough. Signed-off-by: NIIBE Yutaka [soap@gentoo.org: backported to 1.7.0] --- a/src/agent.c +++ b/src/agent.c @@ -1116,7 +1116,7 @@ unsigned char *data, int len, unsigned char *sig_result, unsigned int *sig_len) { - char cmd[150]; + char cmd[151]; gpg_error_t err; const char *hash; const unsigned char *raw_data; @@ -1179,6 +1179,9 @@ } else { + if (strlen ("SETHASH --hash=sha512 ") + 2 * raw_len + 1 > sizeof (cmd)) + return gpg_error (GPG_ERR_BUFFER_TOO_SHORT); + for (i = 0; i < raw_len; i++) snprintf (&pretty_data[2 * i], 3, "%02X", raw_data[i]); pretty_data[2 * raw_len] = '\0';