diff --git a/src/benchmark.c b/src/benchmark.c
index 5c9270696a3edf14b995581fafd7c3a9a331b861..d81d2f81ddd5e922b2df7bf434408aad614696f2 100644
--- a/src/benchmark.c
+++ b/src/benchmark.c
@@ -30,7 +30,7 @@ HBenchmarkResults *h_benchmark__m(HAllocator* mm__, HParser* parser, HParserTest
   HParserTestcase* tc = testcases;
   HParserBackend backend = PB_MIN;
   HBenchmarkResults *ret = h_new(HBenchmarkResults, 1);
-  ret->len = PB_MAX-PB_MIN;
+  ret->len = PB_MAX-PB_MIN+1;
   ret->results = h_new(HBackendResults, ret->len);
 
   for (backend = PB_MIN; backend <= PB_MAX; backend++) {
@@ -108,6 +108,8 @@ void h_benchmark_report(FILE* stream, HBenchmarkResults* result) {
   for (size_t i=0; i<result->len; ++i) {
     fprintf(stream, "Backend %ld ... \n", i);
     for (size_t j=0; j<result->results[i].n_testcases; ++j) {
+      if(result->results[i].cases == NULL)
+        continue;
       fprintf(stream, "Case %ld: %ld ns/parse\n", j,  result->results[i].cases[j].parse_time);
     }
   }