I was reviewing the k_g hex input/output as it exists in the CVS trunk now, and I ran across a problem. Fortunately, it should only show itself when debugging is enabled. Here's the issue: When printing the k_g key in hex, the caller of format_kg must allocate sufficient memory to hold it. I believe when I originally wrote format_kg, I told it to allocate IPMI_MAX_K_G_LENGTH*2+2, which accounts for the hex representation of 20 bytes plus the '0x' prepended to it. It seems to have been changed to IPMI_MAX_K_G_LENGTH*2+1, which accounts for the hex representation of 20 bytes plus the NULL termination. What it really should be, and is in my bmc-config patches where it's really called in a non-debug context, is IPMI_MAX_K_G_LENGTH*2+3, which accounts for the '0x' and NULL.
Sorry I didn't catch and report this earlier. Maybe a better fix for this would be to define a new macro, IPMI_K_G_STRING_REP_LENGTH or something similar, that would expand to IPMI_MAX_K_G_LENGTH*2+2, and then we would only have to account for the NULL byte with a +1. What do you think? --Levi _______________________________________________ Freeipmi-devel mailing list Freeipmi-devel@gnu.org http://lists.gnu.org/mailman/listinfo/freeipmi-devel