From 3d4acbd82963031b86856d99cd0d430fb029e0f1 Mon Sep 17 00:00:00 2001 From: Jeremy Ellington Date: Fri, 1 Oct 2004 15:17:48 +0000 Subject: [PATCH] allow twenty byte passwords --- ipmitool/include/ipmitool/ipmi_intf.h | 4 ++-- ipmitool/src/plugins/ipmi_intf.c | 6 ++++-- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/ipmitool/include/ipmitool/ipmi_intf.h b/ipmitool/include/ipmitool/ipmi_intf.h index 37d79b7..f704c9f 100644 --- a/ipmitool/include/ipmitool/ipmi_intf.h +++ b/ipmitool/include/ipmitool/ipmi_intf.h @@ -61,14 +61,14 @@ enum LANPLUS_SESSION_STATE { }; -#define IPMI_AUTHCODE_BUFFER_SIZE 16 +#define IPMI_AUTHCODE_BUFFER_SIZE 20 #define IPMI_SIK_BUFFER_SIZE 20 #define IPMI_KG_BUFFER_SIZE 21 /* key plus null byte */ struct ipmi_session { unsigned char hostname[64]; unsigned char username[16]; - unsigned char authcode[IPMI_AUTHCODE_BUFFER_SIZE]; + unsigned char authcode[IPMI_AUTHCODE_BUFFER_SIZE + 1]; unsigned char challenge[16]; unsigned char authtype; unsigned char authtype_set; diff --git a/ipmitool/src/plugins/ipmi_intf.c b/ipmitool/src/plugins/ipmi_intf.c index 38d6e32..f191cf2 100644 --- a/ipmitool/src/plugins/ipmi_intf.c +++ b/ipmitool/src/plugins/ipmi_intf.c @@ -146,11 +146,13 @@ void ipmi_intf_session_set_username(struct ipmi_intf * intf, char * username) void ipmi_intf_session_set_password(struct ipmi_intf * intf, char * password) { if (intf && intf->session) { - memset(intf->session->authcode, 0, 16); + memset(intf->session->authcode, 0, sizeof(intf->session->authcode)); intf->session->password = 0; if (password) { intf->session->password = 1; - memcpy(intf->session->authcode, password, min(strlen(password), 16)); + memcpy(intf->session->authcode, + password, + min(strlen(password), IPMI_AUTHCODE_BUFFER_SIZE)); } } }