Make qsort() in readconf.c more portable
authorHeiko Schlittermann (HS12-RIPE) <hs@schlittermann.de>
Tue, 1 Mar 2016 23:14:28 +0000 (00:14 +0100)
committerHeiko Schlittermann (HS12-RIPE) <hs@schlittermann.de>
Tue, 1 Mar 2016 23:14:28 +0000 (00:14 +0100)
src/src/functions.h
src/src/readconf.c
src/src/string.c

index a4c791f1049e25cca16a3d90bffd7aa7b711ddd2..97af70cee8a83279e720728aad8487a74414ab27 100644 (file)
@@ -419,7 +419,7 @@ extern uschar *string_append_listele(uschar *, uschar, const uschar *);
 extern uschar *string_append_listele_n(uschar *, uschar, const uschar *, unsigned);
 extern uschar *string_base62(unsigned long int);
 extern uschar *string_cat(uschar *, int *, int *, const uschar *, int);
-extern int     string_compare_by_pointer(const uschar **, const uschar **);
+extern int     string_compare_by_pointer(const void *, const void *);
 extern uschar *string_copy_dnsdomain(uschar *);
 extern uschar *string_copy_malloc(const uschar *);
 extern uschar *string_copylc(const uschar *);
index 92160c8f28dc41cbf71d6de33b55cb9218a4d507..8844ca73a874b3168740e614e61827e00afbde01 100644 (file)
@@ -2715,7 +2715,7 @@ if (type == NULL)
       size_t n;
       for (p = USS environ; *p; p++) ;
       n = p - USS environ;
-      qsort(environ, p - USS environ, sizeof(*p), (__compar_fn_t) string_compare_by_pointer);
+      qsort(environ, p - USS environ, sizeof(*p), string_compare_by_pointer);
 
       for (p = USS environ; *p; p++)
         {
index 1c4ba121ce2a812ab6c1f7f09aeec213e176003c..be5a8deda633965ad33300b716352278e3374a83 100644 (file)
@@ -1713,9 +1713,9 @@ for -bP environment output, needs a function to compare two pointers to string
 pointers. Here it is. */
 
 int
-string_compare_by_pointer(const uschar **a, const uschar **b)
+string_compare_by_pointer(const void *a, const void *b)
 {
-return Ustrcmp(CUS *a, CUS *b);
+return Ustrcmp(CUSS *(const char**) a, CUSS *(const char**) b);
 }
 #endif /* COMPILE_UTILITY */