From 30f63a5c271519872f70285e7bc92067872eae66 Mon Sep 17 00:00:00 2001
From: Rob Swindell <rob@synchro.net>
Date: Tue, 4 May 2021 01:06:51 -0700
Subject: [PATCH] NULL pointer checks in strListSort*() and strListDup()

---
 src/xpdev/str_list.c | 14 ++++++++++----
 1 file changed, 10 insertions(+), 4 deletions(-)

diff --git a/src/xpdev/str_list.c b/src/xpdev/str_list.c
index 993c6dbdd5..aeace2d05c 100644
--- a/src/xpdev/str_list.c
+++ b/src/xpdev/str_list.c
@@ -483,22 +483,26 @@ static int QSORT_CALLBACK_TYPE strListCompareAlphaCaseReverse(const void *arg1,
 
 void strListSortAlpha(str_list_t list)
 {
-	qsort(list,strListCount(list),sizeof(char*),strListCompareAlpha);
+	if(list != NULL)
+		qsort(list,strListCount(list),sizeof(char*),strListCompareAlpha);
 }
 
 void strListSortAlphaReverse(str_list_t list)
 {
-	qsort(list,strListCount(list),sizeof(char*),strListCompareAlphaReverse);
+	if(list != NULL)
+		qsort(list,strListCount(list),sizeof(char*),strListCompareAlphaReverse);
 }
 
 void strListSortAlphaCase(str_list_t list)
 {
-	qsort(list,strListCount(list),sizeof(char*),strListCompareAlphaCase);
+	if(list != NULL)
+		qsort(list,strListCount(list),sizeof(char*),strListCompareAlphaCase);
 }
 
 void strListSortAlphaCaseReverse(str_list_t list)
 {
-	qsort(list,strListCount(list),sizeof(char*),strListCompareAlphaCaseReverse);
+	if(list != NULL)
+		qsort(list,strListCount(list),sizeof(char*),strListCompareAlphaCaseReverse);
 }
 
 str_list_t strListDup(str_list_t list)
@@ -506,6 +510,8 @@ str_list_t strListDup(str_list_t list)
 	str_list_t	ret;
 	size_t		count=0;
 
+	if(list == NULL)
+		return NULL;
 	ret = strListInit();
 	for(; *list; list++)
 		strListAppend(&ret, *list, count++);
-- 
GitLab