From d04bb2bb804fae73d29b234eae081af6f80e8209 Mon Sep 17 00:00:00 2001 From: "Dmitry V. Levin" Date: Wed, 4 Jun 2014 15:51:55 +0000 Subject: [PATCH] Fix delete_module decoding * xlat/delete_module_flags.in: New file. * file.c (sys_delete_module): Move ... * bjm.c (sys_delete_module): ... to here. Decode 1st argument using printstr instead of printpath. * NEWS: Mention it. --- NEWS | 3 ++- bjm.c | 12 ++++++++++++ file.c | 6 ------ xlat/delete_module_flags.in | 2 ++ 4 files changed, 16 insertions(+), 7 deletions(-) create mode 100644 xlat/delete_module_flags.in diff --git a/NEWS b/NEWS index 2e05dd25..3347236d 100644 --- a/NEWS +++ b/NEWS @@ -16,7 +16,8 @@ Noteworthy changes in release 4.9 (????-??-??) * Enhanced tracing of ARM personality processes on AArch64. * Enhanced 32/64bit personality detection on PowerPC. * Robustified decoding of select, pselect, and io_submit syscalls. - * Enhanced decoding of fcntl, setns, and sync_file_range syscalls. + * Enhanced decoding of delete_module, fcntl, setdomainname, sethostname, + setns, and sync_file_range syscalls. * Enhanced decoding of signal bitmasks. * Enhanced decoding of file descriptors. * Enhanced siginfo_t decoding. diff --git a/bjm.c b/bjm.c index 9e4d0fe3..b34c6ed7 100644 --- a/bjm.c +++ b/bjm.c @@ -71,6 +71,7 @@ struct module_info #include "xlat/qm_which.h" #include "xlat/modflags.h" +#include "xlat/delete_module_flags.h" int sys_query_module(struct tcb *tcp) @@ -173,6 +174,17 @@ sys_create_module(struct tcb *tcp) return RVAL_HEX; } +int +sys_delete_module(struct tcb *tcp) +{ + if (entering(tcp)) { + printstr(tcp, tcp->u_arg[0], -1); + tprints(", "); + printflags(delete_module_flags, tcp->u_arg[1], "O_???"); + } + return 0; +} + int sys_init_module(struct tcb *tcp) { diff --git a/file.c b/file.c index f8171828..a92a7dcb 100644 --- a/file.c +++ b/file.c @@ -312,12 +312,6 @@ sys_open(struct tcb *tcp) return decode_open(tcp, 0); } -int sys_delete_module(struct tcb *tcp) -{ - decode_open(tcp, 0); - return RVAL_DECIMAL; -} - int sys_openat(struct tcb *tcp) { diff --git a/xlat/delete_module_flags.in b/xlat/delete_module_flags.in new file mode 100644 index 00000000..8f027118 --- /dev/null +++ b/xlat/delete_module_flags.in @@ -0,0 +1,2 @@ +O_NONBLOCK +O_TRUNC -- 2.40.0