diff options
author | Kenny Root <kroot@android.com> | 2012-03-31 00:53:17 +0200 |
---|---|---|
committer | Android Git Automerger <android-git-automerger@android.com> | 2012-03-31 00:53:17 +0200 |
commit | 0b1fee1b2aa7da86ffdabfe4c577ee8adb93d803 (patch) | |
tree | 46aacb687e7126a5a64949dd7ade2f284ee57c15 /minzip/DirUtil.c | |
parent | am 37d0f260: Reconcile with ics-mr1-release (diff) | |
parent | Merge changes Ied379f26,I09fb9d56 (diff) | |
download | android_bootable_recovery-0b1fee1b2aa7da86ffdabfe4c577ee8adb93d803.tar android_bootable_recovery-0b1fee1b2aa7da86ffdabfe4c577ee8adb93d803.tar.gz android_bootable_recovery-0b1fee1b2aa7da86ffdabfe4c577ee8adb93d803.tar.bz2 android_bootable_recovery-0b1fee1b2aa7da86ffdabfe4c577ee8adb93d803.tar.lz android_bootable_recovery-0b1fee1b2aa7da86ffdabfe4c577ee8adb93d803.tar.xz android_bootable_recovery-0b1fee1b2aa7da86ffdabfe4c577ee8adb93d803.tar.zst android_bootable_recovery-0b1fee1b2aa7da86ffdabfe4c577ee8adb93d803.zip |
Diffstat (limited to 'minzip/DirUtil.c')
-rw-r--r-- | minzip/DirUtil.c | 21 |
1 files changed, 20 insertions, 1 deletions
diff --git a/minzip/DirUtil.c b/minzip/DirUtil.c index 20c89cd6f..0d49b5780 100644 --- a/minzip/DirUtil.c +++ b/minzip/DirUtil.c @@ -54,7 +54,8 @@ getPathDirStatus(const char *path) int dirCreateHierarchy(const char *path, int mode, - const struct utimbuf *timestamp, bool stripFileName) + const struct utimbuf *timestamp, bool stripFileName, + struct selabel_handle *sehnd) { DirStatus ds; @@ -144,7 +145,25 @@ dirCreateHierarchy(const char *path, int mode, } else if (ds == DMISSING) { int err; +#ifdef HAVE_SELINUX + char *secontext = NULL; + + if (sehnd) { + selabel_lookup(sehnd, &secontext, cpath, mode); + setfscreatecon(secontext); + } +#endif + err = mkdir(cpath, mode); + +#ifdef HAVE_SELINUX + + if (secontext) { + freecon(secontext); + setfscreatecon(NULL); + } +#endif + if (err != 0) { free(cpath); return -1; |