From 252617b8dd3f24e1ff9a04ba1d91b43dc29bd757 Mon Sep 17 00:00:00 2001 From: PlayDay <18056374+playday3008@users.noreply.github.com> Date: Mon, 16 Mar 2026 12:07:09 +0100 Subject: [PATCH] fix(Export internal data documents provider): Correct S_IFLNK constant and symlink detection mask (#6819) --- .../documentsprovider/InternalDataDocumentsProvider.java | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/extensions/all/misc/directory/documentsprovider/export-internal-data-documents-provider/src/main/java/app/revanced/extension/all/misc/directory/documentsprovider/InternalDataDocumentsProvider.java b/extensions/all/misc/directory/documentsprovider/export-internal-data-documents-provider/src/main/java/app/revanced/extension/all/misc/directory/documentsprovider/InternalDataDocumentsProvider.java index f4e3a8e031..ad9d48f6ec 100644 --- a/extensions/all/misc/directory/documentsprovider/export-internal-data-documents-provider/src/main/java/app/revanced/extension/all/misc/directory/documentsprovider/InternalDataDocumentsProvider.java +++ b/extensions/all/misc/directory/documentsprovider/export-internal-data-documents-provider/src/main/java/app/revanced/extension/all/misc/directory/documentsprovider/InternalDataDocumentsProvider.java @@ -31,7 +31,10 @@ public class InternalDataDocumentsProvider extends DocumentsProvider { private static final String[] directoryColumns = {"document_id", "mime_type", "_display_name", "last_modified", "flags", "_size", "full_path", "lstat_info"}; - private static final int S_IFLNK = 0x8000; + @SuppressWarnings("OctalInteger") + private static final int S_IFMT = 0170000; + @SuppressWarnings("OctalInteger") + private static final int S_IFLNK = 0120000; private String packageName; private File dataDirectory; @@ -47,7 +50,7 @@ public class InternalDataDocumentsProvider extends DocumentsProvider { if (root.isDirectory()) { try { // Only delete recursively if the directory is not a symlink - if ((Os.lstat(root.getPath()).st_mode & S_IFLNK) != S_IFLNK) { + if ((Os.lstat(root.getPath()).st_mode & S_IFMT) != S_IFLNK) { File[] files = root.listFiles(); if (files != null) { for (File file : files) { @@ -324,7 +327,7 @@ public class InternalDataDocumentsProvider extends DocumentsProvider { sb.append(";"); sb.append(lstat.st_gid); // Append symlink target if it is a symlink - if ((lstat.st_mode & S_IFLNK) == S_IFLNK) { + if ((lstat.st_mode & S_IFMT) == S_IFLNK) { sb.append(";"); sb.append(Os.readlink(path)); }