Blob Blame History Raw
diff -urpN freeipmi-1.3.2.orig/libfreeipmi/util/ipmi-rmcpplus-util.c freeipmi-1.3.2.fixed/libfreeipmi/util/ipmi-rmcpplus-util.c
--- freeipmi-1.3.2.orig/libfreeipmi/util/ipmi-rmcpplus-util.c	2013-09-11 01:23:16.000000000 +0200
+++ freeipmi-1.3.2.fixed/libfreeipmi/util/ipmi-rmcpplus-util.c	2013-10-22 17:56:59.439103790 +0200
@@ -157,15 +157,8 @@ ipmi_calculate_sik (uint8_t authenticati
     priv_byte |= 0x10;
   priv_byte |= (requested_privilege_level & 0xF);
 
-  memcpy (hash_data + hash_data_len,
-          (void *)&priv_byte,
-          sizeof (uint8_t));
-  hash_data_len += sizeof (uint8_t);
-
-  memcpy (hash_data + hash_data_len,
-          (void *)&user_name_len,
-          sizeof (uint8_t));
-  hash_data_len += sizeof (uint8_t);
+  hash_data[hash_data_len++] = priv_byte;
+  hash_data[hash_data_len++] = user_name_len;
 
   if (user_name && user_name_len > 0)
     {
@@ -1257,8 +1250,8 @@ ipmi_rmcpplus_check_rakp_4_integrity_che
 
   rv = memcmp (digest, integrity_check_value, compare_len) ? 0 : 1;
  cleanup:
-  secure_memset (buf, '\0', IPMI_MAX_KEY_DATA_LENGTH);
-  secure_memset (buf, '\0', IPMI_MAX_KEY_EXCHANGE_AUTHENTICATION_CODE_LENGTH);
+  secure_memset (buf, '\0', sizeof(buf));
+  secure_memset (digest, '\0', sizeof(digest));
   return (rv);
 }