static int check_strtox_error(const char *p, char *endptr, const char **next,

                              int err)

{

    /* If no conversion was performed, prefer BSD behavior over glibc

     * behavior.

     */

    if (err == 0 && endptr == p) {

        err = EINVAL;

    }

    if (!next && *endptr) {

        return -EINVAL;

    }

    if (next) {

        *next = endptr;

    }

    return -err;

}

static int check_strtox_error(const char *p, char *endptr, const char **next,

                              int err)

{

    





    if (err == 0 && endptr == p) {

        err = EINVAL;

    }

    if (!next && *endptr) {

        return -EINVAL;

    }

    if (next) {

        *next = endptr;

    }

    return -err;

}

static int FUNC_0(const char *VAR_0, char *VAR_1, const char **VAR_2,

                              int VAR_3)

{

    





    if (VAR_3 == 0 && VAR_1 == VAR_0) {

        VAR_3 = EINVAL;

    }

    if (!VAR_2 && *VAR_1) {

        return -EINVAL;

    }

    if (VAR_2) {

        *VAR_2 = VAR_1;

    }

    return -VAR_3;

}

static int FUNC_0(const char *VAR_0, char *VAR_1, const char **VAR_2,
int VAR_3)
{ if (VAR_3 == 0 && VAR_1 == VAR_0) { VAR_3 = EINVAL; } if (!VAR_2 && *VAR_1) { return -EINVAL; } if (VAR_2) { *VAR_2 = VAR_1; } return -VAR_3; }