diff options
Diffstat (limited to 'runner')
-rw-r--r-- | runner/resultgen.c | 10 |
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); |