]> granicus.if.org Git - strace/blob - utime.c
Fix time syscall decoding for some personalities
[strace] / utime.c
1 #include "defs.h"
2
3 SYS_FUNC(utime)
4 {
5         union {
6                 long utl[2];
7                 int uti[2];
8                 long paranoia_for_huge_wordsize[4];
9         } u;
10         unsigned wordsize;
11
12         printpath(tcp, tcp->u_arg[0]);
13         tprints(", ");
14
15         wordsize = current_wordsize;
16         if (umoven_or_printaddr(tcp, tcp->u_arg[1], 2 * wordsize, &u))
17                 ;
18         else if (wordsize == sizeof u.utl[0]) {
19                 tprintf("[%s,", sprinttime(u.utl[0]));
20                 tprintf(" %s]", sprinttime(u.utl[1]));
21         }
22         else if (wordsize == sizeof u.uti[0]) {
23                 tprintf("[%s,", sprinttime(u.uti[0]));
24                 tprintf(" %s]", sprinttime(u.uti[1]));
25         }
26         else
27                 tprintf("<decode error: unsupported wordsize %d>",
28                         wordsize);
29
30         return RVAL_DECODED;
31 }