static int setfsugid(int uid, int gid)

{

    /*

     * We still need DAC_OVERRIDE because  we don't change

     * supplementary group ids, and hence may be subjected DAC rules

     */

    cap_value_t cap_list[] = {

        CAP_DAC_OVERRIDE,

    };



    setfsgid(gid);

    setfsuid(uid);



    if (uid != 0 || gid != 0) {

        return do_cap_set(cap_list, ARRAY_SIZE(cap_list), 0);

    }

    return 0;

}

static int setfsugid(int uid, int gid)

{

    







    cap_value_t cap_list[] = {

        CAP_DAC_OVERRIDE,

    };



    setfsgid(gid);

    setfsuid(uid);



    if (uid != 0 || gid != 0) {

        return do_cap_set(cap_list, ARRAY_SIZE(cap_list), 0);

    }

    return 0;

}

static int FUNC_0(int VAR_0, int VAR_1)

{

    







    cap_value_t cap_list[] = {

        CAP_DAC_OVERRIDE,

    };



    setfsgid(VAR_1);

    setfsuid(VAR_0);



    if (VAR_0 != 0 || VAR_1 != 0) {

        return do_cap_set(cap_list, ARRAY_SIZE(cap_list), 0);

    }

    return 0;

}

static int FUNC_0(int VAR_0, int VAR_1)
{ cap_value_t cap_list[] = { CAP_DAC_OVERRIDE,
}; setfsgid(VAR_1); setfsuid(VAR_0); if (VAR_0 != 0 || VAR_1 != 0) { return do_cap_set(cap_list, ARRAY_SIZE(cap_list), 0); } return 0; }