s4-ldb: fixed sorting of module names
authorAndrew Tridgell <tridge@samba.org>
Wed, 3 Nov 2010 09:37:08 +0000 (20:37 +1100)
committerAndrew Tridgell <tridge@samba.org>
Wed, 3 Nov 2010 09:39:53 +0000 (20:39 +1100)
this should also fix a valgrind error on freebsd

thanks to Matthieu for spotting this

source4/lib/ldb/common/ldb_modules.c

index 121890771d017861b04b6d732a70cbb30868f2a5..14572987987933d553aa4859a5ec129b188f57eb 100644 (file)
@@ -906,6 +906,11 @@ static int ldb_modules_load_one(const char *path, const char *version)
        return ret;
 }
 
+static int qsort_string(const char **s1, const char **s2)
+{
+       return strcmp(*s1, *s2);
+}
+
 
 /*
   load all modules from the given ldb modules directory. This is run once
@@ -961,7 +966,7 @@ static int ldb_modules_load_dir(const char *modules_dir, const char *version)
        closedir(dir);
 
        /* sort the directory, so we get consistent load ordering */
-       qsort(modlist, num_modules, sizeof(modlist[0]), QSORT_CAST strcmp);
+       TYPESAFE_QSORT(modlist, num_modules, qsort_string);
 
        for (i=0; i<num_modules; i++) {
                int ret = ldb_modules_load_one(modlist[i], version);