0
0
mirror of https://github.com/termux/termux-packages.git synced 2025-09-16 05:39:36 +00:00
Files
termux-packages/packages/jpegoptim/disable-fdsan.patch
2025-09-15 13:28:07 +05:30

31 lines
874 B
Diff

--- a/jpegoptim.c
+++ b/jpegoptim.c
@@ -1340,11 +1340,27 @@
}
#endif
+#include <android/fdsan.h>
+#include <dlfcn.h>
+
+static inline void termux_disable_fdsan() {
+ // For Android 11+.
+ void *lib_handle = dlopen("libc.so", RTLD_LAZY);
+ if (lib_handle) {
+ void (*set_fdsan_error_level)(enum android_fdsan_error_level newlevel) = dlsym(lib_handle, "android_fdsan_set_error_level");
+ if (set_fdsan_error_level) {
+ set_fdsan_error_level(ANDROID_FDSAN_ERROR_LEVEL_DISABLED);
+ }
+ dlclose(lib_handle);
+ }
+}
#ifndef BUILD_FOR_OSS_FUZZ // Libfuzzer provides its own fuzzer
/****************************************************************************/
int main(int argc, char **argv)
{
+ termux_disable_fdsan();
+
struct stat file_stat;
char tmpfilename[MAXPATHLEN + 1],tmpdir[MAXPATHLEN + 1];
char newname[MAXPATHLEN + 1], dest_path[MAXPATHLEN + 1];