summaryrefslogtreecommitdiffstats
path: root/cmds
diff options
context:
space:
mode:
authorNick Kralevich <nnk@google.com>2010-09-01 14:59:52 -0700
committerAndroid Git Automerger <android-git-automerger@android.com>2010-09-01 14:59:52 -0700
commitb4de2f997591d3ee5f1eff92fbf2d4628cee5f2c (patch)
tree61faca111820baaa8f03225a7dc2569e6c9fd972 /cmds
parent4fd76ba2270da1df12ae11f6d3d3ed564e38464b (diff)
parent05f0382bcf11d96760ee8cf9110099a1661eed7c (diff)
downloadframeworks_base-b4de2f997591d3ee5f1eff92fbf2d4628cee5f2c.zip
frameworks_base-b4de2f997591d3ee5f1eff92fbf2d4628cee5f2c.tar.gz
frameworks_base-b4de2f997591d3ee5f1eff92fbf2d4628cee5f2c.tar.bz2
am 05f0382b: When dropping privileges, check return values.
Merge commit '05f0382bcf11d96760ee8cf9110099a1661eed7c' into gingerbread-plus-aosp * commit '05f0382bcf11d96760ee8cf9110099a1661eed7c': When dropping privileges, check return values.
Diffstat (limited to 'cmds')
-rw-r--r--cmds/dumpstate/dumpstate.c14
1 files changed, 12 insertions, 2 deletions
diff --git a/cmds/dumpstate/dumpstate.c b/cmds/dumpstate/dumpstate.c
index 082e704..6e9caaf 100644
--- a/cmds/dumpstate/dumpstate.c
+++ b/cmds/dumpstate/dumpstate.c
@@ -218,8 +218,18 @@ int main(int argc, char *argv[]) {
/* switch to non-root user and group */
gid_t groups[] = { AID_LOG, AID_SDCARD_RW, AID_MOUNT };
- setgroups(sizeof(groups)/sizeof(groups[0]), groups);
- setuid(AID_SHELL);
+ if (setgroups(sizeof(groups)/sizeof(groups[0]), groups) != 0) {
+ LOGE("Unable to setgroups, aborting: %s\n", strerror(errno));
+ return -1;
+ }
+ if (setgid(AID_SHELL) != 0) {
+ LOGE("Unable to setgid, aborting: %s\n", strerror(errno));
+ return -1;
+ }
+ if (setuid(AID_SHELL) != 0) {
+ LOGE("Unable to setuid, aborting: %s\n", strerror(errno));
+ return -1;
+ }
char path[PATH_MAX], tmp_path[PATH_MAX];
pid_t gzip_pid = -1;