What is wrong with my insert linked list function

void insert_rule(Rule* head, Rule* rule) {
    if (head == NULL) {
        head = rule;
        return;
    }

    while (head->next_rule != NULL) {
        head = head->next_rule;
    }

    head->next_rule = rule;
    return;
}
