It seems it is a bug in the code. When msg is assigned the values, it's
given the wrong length. Here's a patch that fixes the problem:
--- hobbitd.c 2009-12-08 16:20:54.000000000 +0000
+++ hobbitd.c.fixed 2009-12-08 16:19:04.000000000 +0000
@@ -1858,5 +1858,5 @@
-unsigned char *get_filecache(char *fn)
+unsigned char *get_filecache(char *fn, long *flen)
{
RbtIterator handle;
@@ -1872,4 +1872,5 @@
result = (unsigned char *)malloc(item->len);
memcpy(result, item->fdata, item->len);
+ flen = item->len;