From 84bbb4d8164aae21a8e5418250359637d8aabc29 Mon Sep 17 00:00:00 2001 From: "Heiko Schlittermann (HS12-RIPE)" Date: Wed, 2 Mar 2016 00:14:28 +0100 Subject: [PATCH] Make qsort() in readconf.c more portable --- src/src/functions.h | 2 +- src/src/readconf.c | 2 +- src/src/string.c | 4 ++-- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/src/functions.h b/src/src/functions.h index a4c791f10..97af70cee 100644 --- a/src/src/functions.h +++ b/src/src/functions.h @@ -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 *); diff --git a/src/src/readconf.c b/src/src/readconf.c index 92160c8f2..8844ca73a 100644 --- a/src/src/readconf.c +++ b/src/src/readconf.c @@ -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++) { diff --git a/src/src/string.c b/src/src/string.c index 1c4ba121c..be5a8deda 100644 --- a/src/src/string.c +++ b/src/src/string.c @@ -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 */ -- 2.30.2