summaryrefslogtreecommitdiff
path: root/runner/resultgen.c
diff options
context:
space:
mode:
Diffstat (limited to 'runner/resultgen.c')
-rw-r--r--runner/resultgen.c10
1 files changed, 9 insertions, 1 deletions
diff --git a/runner/resultgen.c b/runner/resultgen.c
index d34b52db..e8a60083 100644
--- a/runner/resultgen.c
+++ b/runner/resultgen.c
@@ -313,7 +313,7 @@ static bool fill_from_output(int fd, const char *binary, const char *key,
struct subtests *subtests,
struct json_object *tests)
{
- char *buf, *bufend;
+ char *buf, *bufend, *nullchr;
struct stat statbuf;
char piglit_name[256];
char *igt_version = NULL;
@@ -332,6 +332,14 @@ static bool fill_from_output(int fd, const char *binary, const char *key,
buf = NULL;
}
+ /*
+ * Avoid null characters: Just pretend the output stops at the
+ * first such character, if any.
+ */
+ if ((nullchr = memchr(buf, '\0', statbuf.st_size)) != NULL) {
+ statbuf.st_size = nullchr - buf;
+ }
+
bufend = buf + statbuf.st_size;
igt_version = find_line_starting_with(buf, IGT_VERSIONSTRING, bufend);