[igt-dev] [PATCH i-g-t 1/1] runner: Avoid null characters in results.json
Martin Peres
martin.peres at linux.intel.com
Wed Sep 26 14:58:02 UTC 2018
On 26/09/2018 15:24, Petri Latvala wrote:
> CI pipeline (namely, cibuglog) doesn't cope well with strings that
> have \0 in them. If null characters appear in output files, pretend
> the output stops at the first such character. Well behaving tests
> should not print them anyway.
>
> The case in CI happened due to some hang/crash/explosion/solar flare
> that corrupted the output of a test.
>
> Signed-off-by: Petri Latvala <petri.latvala at intel.com>
> Cc: Arkadiusz Hiler <arkadiusz.hiler at intel.com>
> Cc: Tomi Sarvela <tomi.p.sarvela at intel.com>
> Cc: Martin Peres <martin.peres at linux.intel.com>
Acked-by: Martin Peres <martin.peres at linux.intel.com>
> ---
> runner/resultgen.c | 10 +++++++++-
> 1 file changed, 9 insertions(+), 1 deletion(-)
>
> 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);
>
More information about the igt-dev
mailing list