]> git.puffer.fish Git - mirror/frr.git/commitdiff
lib: add one check in "list_sort()" 11195/head
authoranlan_cs <vic.lan@pica8.com>
Fri, 13 May 2022 02:14:11 +0000 (22:14 -0400)
committeranlan_cs <vic.lan@pica8.com>
Fri, 13 May 2022 02:36:54 +0000 (22:36 -0400)
Add one check in `list_sort()`:
Immediatly return if no any items in this list.

Signed-off-by: anlan_cs <vic.lan@pica8.com>
lib/linklist.c

index 8137b68d845daf4d75f8f25fb04f7020b073bd8b..85194828850a865bf39d92793f4ac722e39f39e5 100644 (file)
@@ -370,10 +370,15 @@ void list_sort(struct list *list, int (*cmp)(const void **, const void **))
        int i = -1;
        void *data;
        size_t n = list->count;
-       void **items = XCALLOC(MTYPE_TMP, (sizeof(void *)) * n);
+       void **items;
        int (*realcmp)(const void *, const void *) =
                (int (*)(const void *, const void *))cmp;
 
+       if (!n)
+               return;
+
+       items = XCALLOC(MTYPE_TMP, (sizeof(void *)) * n);
+
        for (ALL_LIST_ELEMENTS(list, ln, nn, data)) {
                items[++i] = data;
                list_delete_node(list, ln);