From: Dmitry V. Levin Date: Mon, 20 Jul 2015 00:10:35 +0000 (+0000) Subject: ldt.c: use printaddr and umove_or_printaddr X-Git-Tag: v4.11~388 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=79a45942b692b494f8df87a4ba1dea90c34688ad;p=strace ldt.c: use printaddr and umove_or_printaddr * ldt.c [I386 || X86_64 || X32] (print_user_desc): Use umove_or_printaddr. [I386 || X86_64 || X32] (sys_modify_ldt): Use printaddr. [(M68K || MIPS] (set_thread_area): Likewise. [I386 || X86_64 || X32] (set_thread_area): Do not fetch data if !verbose. [I386 || X86_64 || X32] (get_thread_area): Remove redundant check for syserror. --- diff --git a/ldt.c b/ldt.c index dbe49d92..73eb77fe 100644 --- a/ldt.c +++ b/ldt.c @@ -5,19 +5,12 @@ # include void -print_user_desc(struct tcb *tcp, long addr) +print_user_desc(struct tcb *tcp, const long addr) { struct user_desc desc; - if (umove(tcp, addr, &desc) < 0) { - tprintf("%lx", addr); + if (umove_or_printaddr(tcp, addr, &desc)) return; - } - - if (!verbose(tcp)) { - tprintf("{entry_number:%d, ...}", desc.entry_number); - return; - } tprintf("{entry_number:%d, " "base_addr:%#08x, " @@ -43,12 +36,10 @@ SYS_FUNC(modify_ldt) { if (entering(tcp)) { tprintf("%ld, ", tcp->u_arg[0]); - if (tcp->u_arg[1] == 0 - || tcp->u_arg[2] != sizeof(struct user_desc)) { - tprintf("%lx", tcp->u_arg[1]); - } else { + if (tcp->u_arg[2] != sizeof(struct user_desc)) + printaddr(tcp->u_arg[1]); + else print_user_desc(tcp, tcp->u_arg[1]); - } tprintf(", %lu", tcp->u_arg[2]); } return 0; @@ -61,7 +52,8 @@ SYS_FUNC(set_thread_area) } else { struct user_desc desc; - if (syserror(tcp) || umove(tcp, tcp->u_arg[0], &desc) < 0) { + if (!verbose(tcp) || syserror(tcp) || + umove(tcp, tcp->u_arg[0], &desc) < 0) { /* returned entry_number is not available */ } else { static char outstr[32]; @@ -76,12 +68,8 @@ SYS_FUNC(set_thread_area) SYS_FUNC(get_thread_area) { - if (exiting(tcp)) { - if (syserror(tcp)) - tprintf("%lx", tcp->u_arg[0]); - else - print_user_desc(tcp, tcp->u_arg[0]); - } + if (exiting(tcp)) + print_user_desc(tcp, tcp->u_arg[0]); return 0; } @@ -91,7 +79,7 @@ SYS_FUNC(get_thread_area) SYS_FUNC(set_thread_area) { if (entering(tcp)) - tprintf("%#lx", tcp->u_arg[0]); + printaddr(tcp->u_arg[0]); return 0; }