1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33
|
Description: ARM64, etc. no longer support SYS_open, only SYS_openat.
Author: Alastair McKinstry <mckinstry@debian.org>
Last-Updated: 2018-06-15
Forwarded: no
--- a/resource_monitor/src/rmonitor_helper.c
+++ b/resource_monitor/src/rmonitor_helper.c
@@ -280,8 +280,13 @@
mode = va_arg(ap, int);
va_end(ap);
+
if(!original_open) {
+#ifdef SYS_openat
+ return syscall(SYS_openat, AT_FDCWD, path, flags, mode);
+#else
return syscall(SYS_open, path, flags, mode);
+#endif
}
debug(D_RMON, "open %s from %d.\n", path, getpid());
@@ -324,7 +329,11 @@
va_end(ap);
if(!original_open64) {
+#ifdef SYS_openat
+ return syscall(SYS_openat, AT_FDCWD, path, flags | O_LARGEFILE, mode);
+#else
return syscall(SYS_open, path, flags | O_LARGEFILE, mode);
+#endif
}
debug(D_RMON, "open64 %s from %d.\n", path, getpid());
|