gtk/queryimmodules.c: Make the output deterministic.

Whilst working on the Reproducible Builds effort [0], we noticed that
queryimmodules generates non-reproducible output as it iterates over the
filesystem without sorting.

Patch attached.

 [0] https://reproducible-builds.org/

Signed-off-by: Chris Lamb <lamby@debian.org>

https://bugzilla.gnome.org/show_bug.cgi?id=786528
This commit is contained in:
Chris Lamb 2017-08-25 16:24:38 +01:00 committed by Matthias Clasen
parent 53bc2566b3
commit 6b85162f43

View File

@ -200,13 +200,19 @@ G_GNUC_END_IGNORE_DEPRECATIONS
if (dir)
{
const char *dent;
GList *list = NULL, *iterator = NULL;
while ((dent = g_dir_read_name (dir)))
list = g_list_prepend (list, g_strdup (dent));
list = g_list_sort (list, (GCompareFunc) strcmp);
for (iterator = list; iterator; iterator = iterator->next)
{
if (g_str_has_suffix (dent, SOEXT))
error |= query_module (dirs[i], dent, contents);
if (g_str_has_suffix (iterator->data, SOEXT))
error |= query_module (dirs[i], iterator->data, contents);
}
g_list_free_full (list, g_free);
g_dir_close (dir);
}