set errstr for bad dir contents
diff --git a/src/lib9pclient/dirread.c b/src/lib9pclient/dirread.c
index 540cfc6..2d11191 100644
--- a/src/lib9pclient/dirread.c
+++ b/src/lib9pclient/dirread.c
@@ -90,8 +90,11 @@
 			break;
 		ts += n;
 	}
-	if(ts >= 0)
+	if(ts >= 0){
 		ts = dirpackage(buf, ts, d);
+		if(ts < 0)
+			werrstr("malformed directory contents");
+	}
 	free(buf);
 	if(ts == 0 && n < 0)
 		return -1;