--- ./utility.c.orig	2004-04-13 02:46:24.000000000 +0200
+++ ./utility.c	2014-08-15 19:13:36.000000000 +0200
@@ -509,7 +509,7 @@
   char *output;
 
   length = strlen (input);
-  output = panda_xmalloc ((length + 1) * sizeof (char));
+  output = panda_xmalloc ((length*2 + 1) * sizeof (char));
   
     // todo_mikal: not sure I like the windows version of this code
     for (count = 0; count < length; count++)
@@ -518,11 +518,11 @@
       sprintf (output[count], "%2x", input[count]);
       
 #else	/* 
 */
-      snprintf (output[count], 1, "%2x", input[count]);
+      sprintf (output+count*2, "%2x", input[count]);
       
 #endif
     }
 
-  output[length + 1] = 0;
+  output[length*2] = 0;
   return output;
 }