mirror of
https://github.com/wolfcw/libfaketime.git
synced 2026-05-17 08:36:28 +03:00
Add syscall_clock_gettime_heap snippet
This invokes clock_gettime, but uses a timespec from the heap instead of the stack. It appears to be successful for me on x86-64 GNU/Linux. This rules out one possible cause of the error reported in #310: I was worried that an address from the range occupied by the heap might somehow be corrupted by the syscall variadic argument de-mangling, but that looks like it is not the case.
This commit is contained in:
8
test/snippets/syscall_clock_gettime_heap.c
Normal file
8
test/snippets/syscall_clock_gettime_heap.c
Normal file
@@ -0,0 +1,8 @@
|
||||
struct timespec *ts = malloc(sizeof(struct timespec));
|
||||
clockid_t ckid = CLOCK_REALTIME;
|
||||
long ret = syscall(__NR_clock_gettime, ckid, ts);
|
||||
if (ret == 0)
|
||||
printf("[%s] syscall(__NR_gettime, CLOCK_REALTIME[%d], ts) -> {%lld, %ld}\n", where, ckid, (long long)ts->tv_sec, ts->tv_nsec);
|
||||
else
|
||||
printf("[%s] syscall(__NR_gettime, CLOCK_REALTIME[%d], ts) returned non-zero (%ld)\n", where, ckid, ret);
|
||||
|
||||
1
test/snippets/syscall_clock_gettime_heap.variable
Normal file
1
test/snippets/syscall_clock_gettime_heap.variable
Normal file
@@ -0,0 +1 @@
|
||||
FAKETIME 2020-02-02 02:02:02+00:00
|
||||
Reference in New Issue
Block a user