Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 44db990d authored by Nick Kralevich's avatar Nick Kralevich
Browse files

Fix bug 2950316. Check return values.

Change-Id: I687bb5fb8195d4c1fc863e32a5e233a8b9e74196
parent 65e461c4
Loading
Loading
Loading
Loading
+12 −4
Original line number Diff line number Diff line
@@ -891,7 +891,9 @@ int adb_main(int is_daemon, int server_port)
        struct __user_cap_header_struct header;
        struct __user_cap_data_struct cap;

        prctl(PR_SET_KEEPCAPS, 1, 0, 0, 0);
        if (prctl(PR_SET_KEEPCAPS, 1, 0, 0, 0) != 0) {
            exit(1);
        }

        /* add extra groups:
        ** AID_ADB to access the USB driver
@@ -905,11 +907,17 @@ int adb_main(int is_daemon, int server_port)
        */
        gid_t groups[] = { AID_ADB, AID_LOG, AID_INPUT, AID_INET, AID_GRAPHICS,
                           AID_NET_BT, AID_NET_BT_ADMIN, AID_SDCARD_RW, AID_MOUNT };
        setgroups(sizeof(groups)/sizeof(groups[0]), groups);
        if (setgroups(sizeof(groups)/sizeof(groups[0]), groups) != 0) {
            exit(1);
        }

        /* then switch user and group to "shell" */
        setgid(AID_SHELL);
        setuid(AID_SHELL);
        if (setgid(AID_SHELL) != 0) {
            exit(1);
        }
        if (setuid(AID_SHELL) != 0) {
            exit(1);
        }

        /* set CAP_SYS_BOOT capability, so "adb reboot" will succeed */
        header.version = _LINUX_CAPABILITY_VERSION;