Move adb's selinux_android_restorecon up and check for failures.
Change-Id: Ib3ff282cf52df03f3b9a0abecf0abda99d7df641
diff --git a/adb/file_sync_service.cpp b/adb/file_sync_service.cpp
index 214cead..6ca8ba1 100644
--- a/adb/file_sync_service.cpp
+++ b/adb/file_sync_service.cpp
@@ -166,9 +166,14 @@
goto fail;
}
- // fchown clears the setuid bit - restore it if present.
- // Ignore the result of calling fchmod. It's not supported
- // by all filesystems. b/12441485
+ if (selinux_android_restorecon(path, 0) == -1) {
+ SendSyncFailErrno(s, "selinux_android_restorecon failed");
+ goto fail;
+ }
+
+ // fchown clears the setuid bit - restore it if present.
+ // Ignore the result of calling fchmod. It's not supported
+ // by all filesystems. b/12441485
fchmod(fd, mode);
}
@@ -201,8 +206,6 @@
adb_close(fd);
- selinux_android_restorecon(path, 0);
-
utimbuf u;
u.actime = timestamp;
u.modtime = timestamp;