From: Dmitry V. Levin Date: Tue, 13 Mar 2012 23:16:37 +0000 (+0000) Subject: Fix linkat flags decoding X-Git-Tag: v4.7~108 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=371e1531469425b565d059b0ea402e7609f4f246;p=strace Fix linkat flags decoding * file.c (linkat_flags): New xlat structure. (sys_linkat): Decode flags using linkat_flags. --- diff --git a/file.c b/file.c index e90a90bb..1c830f6d 100644 --- a/file.c +++ b/file.c @@ -1853,6 +1853,19 @@ sys_link(struct tcb *tcp) return 0; } +#ifndef AT_SYMLINK_FOLLOW +# define AT_SYMLINK_FOLLOW 0x400 +#endif +#ifndef AT_EMPTY_PATH +# define AT_EMPTY_PATH 0x1000 +#endif + +static const struct xlat linkat_flags[] = { + { AT_SYMLINK_FOLLOW, "AT_SYMLINK_FOLLOW" }, + { AT_EMPTY_PATH, "AT_EMPTY_PATH" }, + { 0, NULL } +}; + int sys_linkat(struct tcb *tcp) { @@ -1863,7 +1876,7 @@ sys_linkat(struct tcb *tcp) print_dirfd(tcp, tcp->u_arg[2]); printpath(tcp, tcp->u_arg[3]); tprints(", "); - printfd(tcp, tcp->u_arg[4]); + printflags(linkat_flags, tcp->u_arg[4], "AT_???"); } return 0; }