Surely this test should only be applied when rp == input_list && rp->next == NULL, i.e. when we have only one entry in the list.  If a list contains the string "cf_nul" and isn't an (otherwise) empty list, well, it's a real entry in the list, right ?