what is wrong with this code?
int create_user(const char *name, User **user_ptr_add) {
    if (strlen(name) + 1 > MAX_NAME) {  // ???
        return 2;
    }

    User *u = malloc(sizeof(User));

    // Empty user list
    if (**user_ptr_add == NULL) {
        **user_ptr_add = u;
    }

    // At least 1 existing user
    while (**user_ptr_add.next != NULL) {
        
        user_ptr_add = **user_ptr_add.next;
    }

    return -1;
}