summaryrefslogtreecommitdiffstats
path: root/src/process
diff options
context:
space:
mode:
authorAllan Sandfeld Jensen <allan.jensen@theqtcompany.com>2016-08-18 10:04:02 +0200
committerAllan Sandfeld Jensen <allan.jensen@qt.io>2016-08-19 23:07:58 +0000
commit14ac3e5db232137923fd597eb15dc61c875bf48c (patch)
tree4e45180b28d3af1ff72c82c4c895be76b81b7750 /src/process
parent6e4d1a0cf21ee18d6584042cd9bea3a7d1d24a56 (diff)
Fix sandboxing of localtime syscall
The check OS(LINUX) does not work here, so use the Qt OS defines, and remove the stat and fopen overrides that Chromium no longer proxies this way. Task-number: QTBUG-55125 Change-Id: Ie03b8e0cabd100f2f72b7ab1cff5dc8697ba69ad Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
Diffstat (limited to 'src/process')
-rw-r--r--src/process/main.cpp64
1 files changed, 1 insertions, 63 deletions
diff --git a/src/process/main.cpp b/src/process/main.cpp
index 38bb5409..d2f9d233 100644
--- a/src/process/main.cpp
+++ b/src/process/main.cpp
@@ -42,10 +42,7 @@
#include <QCoreApplication>
#include <stdio.h>
-#if defined(OS_LINUX)
-#if defined(__GLIBC__) && !defined(__UCLIBC__) && !defined(OS_ANDROID) && !defined(HAVE_XSTAT)
-#define HAVE_XSTAT 1
-#endif
+#if defined(Q_OS_LINUX)
struct tm;
struct stat;
@@ -59,19 +56,6 @@ struct tm* localtime_r_override(const time_t* timep, struct tm* result);
struct tm* localtime64_r_override(const time_t* timep, struct tm* result);
}
-// exported in libc_urandom_proxy.cc
-namespace sandbox {
-FILE* fopen_override(const char* path, const char* mode);
-FILE* fopen64_override(const char* path, const char* mode);
-#if HAVE_XSTAT
-int xstat_override(int version, const char *path, struct stat *buf);
-int xstat64_override(int version, const char *path, struct stat64 *buf);
-#else
-int stat_override(const char *path, struct stat *buf);
-int stat64_override(const char *path, struct stat64 *buf);
-#endif
-}
-
// from zygote_main_linux.cc
__attribute__ ((__visibility__("default")))
struct tm* localtime_proxy(const time_t* timep) __asm__ ("localtime");
@@ -101,52 +85,6 @@ struct tm* localtime64_r_proxy(const time_t* timep, struct tm* result)
return content::localtime64_r_override(timep, result);
}
-// from libc_urandom_proxy.cc
-__attribute__ ((__visibility__("default")))
-FILE* fopen_proxy(const char* path, const char* mode) __asm__ ("fopen");
-FILE* fopen_proxy(const char* path, const char* mode)
-{
- return sandbox::fopen_override(path, mode);
-}
-
-__attribute__ ((__visibility__("default")))
-FILE* fopen64_proxy(const char* path, const char* mode) __asm__ ("fopen64");
-FILE* fopen64_proxy(const char* path, const char* mode)
-{
- return sandbox::fopen64_override(path, mode);
-}
-
-#if HAVE_XSTAT
-__attribute__ ((__visibility__("default")))
-int xstat_proxy(int version, const char *path, struct stat *buf) __asm__ ("__xstat");
-int xstat_proxy(int version, const char *path, struct stat *buf)
-{
- return sandbox::xstat_override(version, path, buf);
-}
-
-__attribute__ ((__visibility__("default")))
-int xstat64_proxy(int version, const char *path, struct stat64 *buf) __asm__ ("__xstat64");
-int xstat64_proxy(int version, const char *path, struct stat64 *buf)
-{
- return sandbox::xstat64_override(version, path, buf);
-}
-
-#else
-__attribute__ ((__visibility__("default")))
-int stat_proxy(const char *path, struct stat *buf) __asm__ ("stat");
-int stat_proxy(const char *path, struct stat *buf)
-{
- return sandbox::stat_override(path, buf);
-}
-
-__attribute__ ((__visibility__("default")))
-int stat64_proxy(const char *path, struct stat64 *buf) __asm__ ("stat64");
-int stat64_proxy(const char *path, struct stat64 *buf)
-{
- return sandbox::stat64_override(path, buf);
-}
-
-#endif
#endif // defined(OS_LINUX)
#ifdef Q_OS_WIN