From: Eugene Syromyatnikov Date: Mon, 28 Nov 2016 09:44:54 +0000 (+0300) Subject: tests: add more utime checks X-Git-Tag: v4.15~62 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=6602da1b903f67b9aba0037b011341f8bba9abdd;p=strace tests: add more utime checks * tests/utime.c: Include and . (main): Add checks for invalid pointers. --- diff --git a/tests/utime.c b/tests/utime.c index 91044705..ea5ecc40 100644 --- a/tests/utime.c +++ b/tests/utime.c @@ -32,6 +32,9 @@ #include #include #include +#include + +#include static void print_tm(const struct tm * const p) @@ -52,6 +55,21 @@ main(void) const struct utimbuf u = { .actime = t, .modtime = t }; const struct utimbuf const *tail_u = tail_memdup(&u, sizeof(u)); +#ifdef __NR_utime + static const char *const dummy_str = "dummy filename"; + char *const dummy_filename = + tail_memdup(dummy_str, sizeof(dummy_str) - 1); + + rc = syscall(__NR_utime, dummy_filename + sizeof(dummy_str), + tail_u + 1); + printf("utime(%p, %p) = %s\n", dummy_filename + sizeof(dummy_str), + tail_u + 1, sprintrc(rc)); + + rc = syscall(__NR_utime, dummy_filename, (struct tm *) tail_u + 1); + printf("utime(%p, %p) = %s\n", + dummy_filename, (struct tm *) tail_u + 1, sprintrc(rc)); +#endif /* __NR_utime */ + rc = utime("utime\nfilename", tail_u); const char *errstr = sprintrc(rc); printf("utime(\"utime\\nfilename\", {actime=");