File bnc558964.diff of Package valgrind
--- coregrind/m_syswrap/priv_syswrap-linux.h
+++ coregrind/m_syswrap/priv_syswrap-linux.h
@@ -116,6 +116,7 @@
DECL_TEMPLATE(linux, sys_get_mempolicy);
DECL_TEMPLATE(linux, sys_inotify_init);
+DECL_TEMPLATE(linux, sys_inotify_init1);
DECL_TEMPLATE(linux, sys_inotify_add_watch);
DECL_TEMPLATE(linux, sys_inotify_rm_watch);
--- coregrind/m_syswrap/syswrap-amd64-linux.c
+++ coregrind/m_syswrap/syswrap-amd64-linux.c
@@ -1374,8 +1374,8 @@
LINX_(__NR_eventfd2, sys_eventfd2), // 290
LINXY(__NR_epoll_create1, sys_epoll_create1), // 291
// (__NR_dup3, sys_ni_syscall) // 292
- LINXY(__NR_pipe2, sys_pipe2) // 293
- // (__NR_inotify_init1, sys_ni_syscall) // 294
+ LINXY(__NR_pipe2, sys_pipe2), // 293
+ LINXY(__NR_inotify_init1, sys_inotify_init1) // 294
};
const UInt ML_(syscall_table_size) =
--- coregrind/m_syswrap/syswrap-linux.c
+++ coregrind/m_syswrap/syswrap-linux.c
@@ -1526,6 +1526,24 @@
}
}
+PRE(sys_inotify_init1)
+{
+ PRINT("sys_inotify_init ( %ld )", ARG1);
+ PRE_REG_READ1(long, "inotify_init", int, flag);
+}
+
+POST(sys_inotify_init1)
+{
+ vg_assert(SUCCESS);
+ if (!ML_(fd_allowed)(RES, "inotify_init", tid, True)) {
+ VG_(close)(RES);
+ SET_STATUS_Failure( VKI_EMFILE );
+ } else {
+ if (VG_(clo_track_fds))
+ ML_(record_fd_open_nameless) (tid, RES);
+ }
+}
+
PRE(sys_inotify_add_watch)
{
PRINT( "sys_inotify_add_watch ( %ld, %#lx, %lx )", ARG1,ARG2,ARG3);
--- coregrind/m_syswrap/syswrap-ppc32-linux.c
+++ coregrind/m_syswrap/syswrap-ppc32-linux.c
@@ -1866,8 +1866,8 @@
LINX_(__NR_eventfd2, sys_eventfd2), // 314
LINXY(__NR_epoll_create1, sys_epoll_create1), // 315
// (__NR_dup3, sys_ni_syscall) // 316
- LINXY(__NR_pipe2, sys_pipe2) // 317
- // (__NR_inotify_init1, sys_ni_syscall) // 318
+ LINXY(__NR_pipe2, sys_pipe2), // 317
+ LINXY(__NR_inotify_init1, sys_inotify_init1), // 318
};
const UInt ML_(syscall_table_size) =
--- coregrind/m_syswrap/syswrap-ppc64-linux.c
+++ coregrind/m_syswrap/syswrap-ppc64-linux.c
@@ -1506,8 +1506,8 @@
LINX_(__NR_eventfd2, sys_eventfd2), // 314
LINXY(__NR_epoll_create1, sys_epoll_create1), // 315
// (__NR_dup3, sys_ni_syscall) // 316
- LINXY(__NR_pipe2, sys_pipe2) // 317
- // (__NR_inotify_init1, sys_ni_syscall) // 318
+ LINXY(__NR_pipe2, sys_pipe2), // 317
+ LINXY(__NR_inotify_init1, sys_inotify_init1), // 318
};
const UInt ML_(syscall_table_size) =
--- coregrind/m_syswrap/syswrap-x86-linux.c
+++ coregrind/m_syswrap/syswrap-x86-linux.c
@@ -2253,8 +2253,8 @@
LINXY(__NR_epoll_create1, sys_epoll_create1), // 329
// (__NR_dup3, sys_ni_syscall) // 330
- LINXY(__NR_pipe2, sys_pipe2) // 331
- // (__NR_inotify_init1, sys_ni_syscall) // 332
+ LINXY(__NR_pipe2, sys_pipe2), // 331
+ LINXY(__NR_inotify_init1, sys_inotify_init1), // 332
};
const UInt ML_(syscall_table_size) =