diff options
Diffstat (limited to 'lib/igt_core.c')
-rw-r--r-- | lib/igt_core.c | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/lib/igt_core.c b/lib/igt_core.c index bc588e2c..d74f6f8f 100644 --- a/lib/igt_core.c +++ b/lib/igt_core.c @@ -54,6 +54,7 @@ #include <termios.h> #include <errno.h> #include <time.h> +#include <ctype.h> #include "drmtest.h" #include "intel_chipset.h" @@ -693,10 +694,21 @@ void igt_simple_init_parse_opts(int argc, char **argv, */ bool __igt_run_subtest(const char *subtest_name) { + int i; + assert(!in_subtest); assert(!in_fixture); assert(test_with_subtests); + /* check the subtest name only contains a-z, A-Z, 0-9, '-' and '_' */ + for (i = 0; subtest_name[i] != '\0'; i++) + if (subtest_name[i] != '_' && subtest_name[i] != '-' + && !isalnum(subtest_name[i])) { + igt_critical("Invalid subtest name \"%s\".\n", + subtest_name); + igt_exit(); + } + if (list_subtests) { printf("%s\n", subtest_name); return false; |