diff --git a/src/jsontestrunner/main.cpp b/src/jsontestrunner/main.cpp
index d2d41aa..2155d29 100644
--- a/src/jsontestrunner/main.cpp
+++ b/src/jsontestrunner/main.cpp
@@ -58,9 +58,11 @@
     return "";
   fseek(file, 0, SEEK_END);
   long const size = ftell(file);
+  if (size == -1)
+    return "";
   size_t const usize = static_cast<unsigned long>(size);
   fseek(file, 0, SEEK_SET);
-  char* buffer = new char[size + 1];
+  char* buffer = new char[usize + 1];
   buffer[size] = 0;
   Json::String text;
   if (fread(buffer, 1, usize, file) == usize)