changeset 18025:5201cc72e203

savedir: avoid undefined behavior in qsort call GCC 5.1.1 -fsanitize=undefined with glibc 2.21 is returning: "runtime error: null pointer passed as argument 1, which is declared to never be null" * lib/savedir.c (streamsavedir): Avoid the call with no entries.
author Pádraig Brady <P@draigBrady.com>
date Wed, 24 Jun 2015 19:08:08 +0100
parents 7bef0e656365
children 1a086f523d28
files ChangeLog lib/savedir.c
diffstat 2 files changed, 10 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,11 @@
+2015-06-24  Pádraig Brady  <P@draigBrady.com>
+
+	savedir: avoid undefined behavior in qsort call
+	GCC 5.1.1 -fsanitize=undefined with glibc 2.21 is returning:
+	"runtime error: null pointer passed as argument 1,
+	 which is declared to never be null"
+	* lib/savedir.c (streamsavedir): Avoid the call with no entries.
+
 2015-06-24  Pádraig Brady  <P@draigBrady.com>
 
 	userspec: avoid undefined behavior in gettext call
--- a/lib/savedir.c
+++ b/lib/savedir.c
@@ -161,7 +161,8 @@
     {
       size_t i;
 
-      qsort (entries, entries_used, sizeof *entries, cmp);
+      if (entries_used)
+        qsort (entries, entries_used, sizeof *entries, cmp);
       name_space = xmalloc (used + 1);
       used = 0;
       for (i = 0; i < entries_used; i++)