diff options
author | Elliott Hughes <enh@google.com> | 2013-11-11 14:56:08 -0800 |
---|---|---|
committer | Android Git Automerger <android-git-automerger@android.com> | 2013-11-11 14:56:08 -0800 |
commit | 5b70680b8df6d8fa95bb8e1070d0107f3d388940 (patch) | |
tree | b5875ad37984abe68aeef58d302e39155585bdcc /runtime | |
parent | 2f846b39bc50bca8c4a5762bd9a53dfe3db5d023 (diff) | |
parent | e1467659568500cefd84abc4cdb399d8db7e214d (diff) | |
download | art-5b70680b8df6d8fa95bb8e1070d0107f3d388940.zip art-5b70680b8df6d8fa95bb8e1070d0107f3d388940.tar.gz art-5b70680b8df6d8fa95bb8e1070d0107f3d388940.tar.bz2 |
am e1467659: Fix capability setting for the top 32 bits.
* commit 'e1467659568500cefd84abc4cdb399d8db7e214d':
Fix capability setting for the top 32 bits.
Diffstat (limited to 'runtime')
-rw-r--r-- | runtime/native/dalvik_system_Zygote.cc | 16 |
1 files changed, 8 insertions, 8 deletions
diff --git a/runtime/native/dalvik_system_Zygote.cc b/runtime/native/dalvik_system_Zygote.cc index d065ee4..dac2c89 100644 --- a/runtime/native/dalvik_system_Zygote.cc +++ b/runtime/native/dalvik_system_Zygote.cc @@ -230,18 +230,18 @@ static void DropCapabilitiesBoundingSet() { static void SetCapabilities(int64_t permitted, int64_t effective) { __user_cap_header_struct capheader; - __user_cap_data_struct capdata; - memset(&capheader, 0, sizeof(capheader)); - memset(&capdata, 0, sizeof(capdata)); - - capheader.version = _LINUX_CAPABILITY_VERSION; + capheader.version = _LINUX_CAPABILITY_VERSION_3; capheader.pid = 0; - capdata.effective = effective; - capdata.permitted = permitted; + __user_cap_data_struct capdata[2]; + memset(&capdata, 0, sizeof(capdata)); + capdata[0].effective = effective; + capdata[1].effective = effective >> 32; + capdata[0].permitted = permitted; + capdata[1].permitted = permitted >> 32; - if (capset(&capheader, &capdata) != 0) { + if (capset(&capheader, &capdata[0]) == -1) { PLOG(FATAL) << "capset(" << permitted << ", " << effective << ") failed"; } } |