]> granicus.if.org Git - strace/commitdiff
Fix delete_module decoding
authorDmitry V. Levin <ldv@altlinux.org>
Wed, 4 Jun 2014 15:51:55 +0000 (15:51 +0000)
committerDmitry V. Levin <ldv@altlinux.org>
Wed, 4 Jun 2014 16:29:18 +0000 (16:29 +0000)
* 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
bjm.c
file.c
xlat/delete_module_flags.in [new file with mode: 0644]

diff --git a/NEWS b/NEWS
index 2e05dd25198808764b8f557fbe0eef6155ac7e32..3347236d8c88260c22c0a92160bda1de516ff8b3 100644 (file)
--- 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 9e4d0fe3577689e0af2a6b66425e3b9c2142d012..b34c6ed71ecfae7eee8cea10188b7b2418e576f1 100644 (file)
--- 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 f817182826a422abbaff121dce857a1d42a9393b..a92a7dcb1e85c03046e0876cd777df43406d5fb7 100644 (file)
--- 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 (file)
index 0000000..8f02711
--- /dev/null
@@ -0,0 +1,2 @@
+O_NONBLOCK
+O_TRUNC