Am I casting a constant to head?
User *find_user(const char *name, const User *head) {

    while (head != NULL){
        if (strncmp(name, head->name, MAX_NAME) == 0){
            return (const User*)head;
        }
        head = head->next;
    }
    return NULL;
}