util: fix list_is_singular()

Currently its dependant on the user calling and checking the result
of list_empty() before using the result of list_is_singular().

Cc: "13.0" <mesa-stable@lists.freedesktop.org>
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
diff --git a/src/util/list.h b/src/util/list.h
index e8a99ac..07eb9f3 100644
--- a/src/util/list.h
+++ b/src/util/list.h
@@ -110,7 +110,7 @@
  */
 static inline bool list_is_singular(const struct list_head *list)
 {
-   return list->next != NULL && list->next->next == list;
+   return list->next != NULL && list->next != list && list->next->next == list;
 }
 
 static inline unsigned list_length(struct list_head *list)