> If entry is null and head is valid segfault on line 10.
To get to line 10, we need prev->next == entry. Since we are talking about the case where entry == NULL, that requires prev->next == NULL
The for loop condition is prev->next, which will fail if prev->next == NULL, hence line 10 would never be reached in that case.
The difficulty of analysing all of this shows why mutable structures and variables make code hard to follow - perhaps the real good taste solution is to use something like finger trees instead of linked lists, together with a language which eliminates null.