-
- if (!key_len) {
- printf ("HEAD");
- } else {
- char *key_string = NULL;
-
- key_string = xbt_malloc(key_len*2+1);
- _xbt_bytes_to_string(key, key_len, key_string);
-
- printf("%.*s|(%d)", key_len-offset, key_string + offset, offset);
-
- free(key_string);
- }
-
+
+ if (!key_len) {
+ printf ("HEAD");
+ } else if (key[key_len] != '\0') {
+ char *key_string = NULL;
+
+ key_string = xbt_malloc(key_len*2+1);
+ _xbt_bytes_to_string(key, key_len, key_string);
+
+ printf("%.*s|(%d)", key_len-2*offset, key_string + 2*offset, offset);
+
+ free(key_string);
+ } else {
+ printf("%.*s|(%d)", key_len-offset, key + offset , offset);
+ }