OSDN Git Service

Merge "fail explicitly if setuid() fails" into nyc-dev
authorKeun Soo Yim <yim@google.com>
Thu, 14 Apr 2016 01:47:26 +0000 (01:47 +0000)
committerAndroid (Google) Code Review <android-gerrit@google.com>
Thu, 14 Apr 2016 01:47:26 +0000 (01:47 +0000)
1  2 
rild/rild.c

diff --combined rild/rild.c
@@@ -105,7 -105,10 +105,10 @@@ void switchUser() 
      char debuggable[PROP_VALUE_MAX];
  
      prctl(PR_SET_KEEPCAPS, 1, 0, 0, 0);
-     setuid(AID_RADIO);
+     if (setresuid(AID_RADIO, AID_RADIO, AID_RADIO) == -1) {
+         RLOGE("setresuid failed: %s", strerror(errno));
+         exit(EXIT_FAILURE);
+     }
  
      struct __user_cap_header_struct header;
      memset(&header, 0, sizeof(header));
@@@ -180,8 -183,7 +183,8 @@@ int main(int argc, char **argv) 
          exit(0);
      }
      if (strncmp(clientId, "0", MAX_CLIENT_ID_LENGTH)) {
 -        RIL_setRilSocketName(strncat(rild, clientId, MAX_SOCKET_NAME_LENGTH));
 +        strlcat(rild, clientId, MAX_SOCKET_NAME_LENGTH);
 +        Ril_setRilSocketName(rild);
      }
  
      if (rilLibPath == NULL) {