diff options
Diffstat (limited to 'core')
-rw-r--r-- | core/java/com/android/internal/content/NativeLibraryHelper.java | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/core/java/com/android/internal/content/NativeLibraryHelper.java b/core/java/com/android/internal/content/NativeLibraryHelper.java index f479f4f..f5b948f 100644 --- a/core/java/com/android/internal/content/NativeLibraryHelper.java +++ b/core/java/com/android/internal/content/NativeLibraryHelper.java @@ -62,6 +62,8 @@ public class NativeLibraryHelper { // that the cpuAbiOverride must be clear. public static final String CLEAR_ABI_OVERRIDE = "-"; + private static final Object mRestoreconSync = new Object(); + /** * A handle to an opened package, consisting of one or more APKs. Used as * input to the various NativeLibraryHelper methods. Allows us to scan and @@ -275,8 +277,12 @@ public class NativeLibraryHelper { throw new IOException("Cannot chmod native library directory " + path.getPath(), e); } - } else if (!SELinux.restorecon(path)) { - throw new IOException("Cannot set SELinux context for " + path.getPath()); + } else { + synchronized (mRestoreconSync) { + if (!SELinux.restorecon(path)) { + throw new IOException("Cannot set SELinux context for " + path.getPath()); + } + } } } |