dovecot-2.0: module_dir_load(): Ignore duplicates in module names.
dovecot at dovecot.org
dovecot at dovecot.org
Fri Jul 2 20:58:58 EEST 2010
details: http://hg.dovecot.org/dovecot-2.0/rev/e586c030e430
changeset: 11715:e586c030e430
user: Timo Sirainen <tss at iki.fi>
date: Fri Jul 02 18:58:55 2010 +0100
description:
module_dir_load(): Ignore duplicates in module names.
diffstat:
src/lib/module-dir.c | 10 +++++++++-
1 files changed, 9 insertions(+), 1 deletions(-)
diffs (25 lines):
diff -r 1683324ac632 -r e586c030e430 src/lib/module-dir.c
--- a/src/lib/module-dir.c Fri Jul 02 18:47:43 2010 +0100
+++ b/src/lib/module-dir.c Fri Jul 02 18:58:55 2010 +0100
@@ -250,12 +250,20 @@
static void module_names_fix(const char **module_names)
{
- unsigned int i;
+ unsigned int i, j;
/* allow giving the module names also in non-base form.
convert them in here. */
for (i = 0; module_names[i] != NULL; i++)
module_names[i] = module_file_get_name(module_names[i]);
+
+ /* @UNSAFE: drop duplicates */
+ qsort(module_names, i, sizeof(*module_names), i_strcmp_p);
+ for (i = j = 1; module_names[i] != NULL; i++) {
+ if (strcmp(module_names[i-1], module_names[i]) != 0)
+ module_names[j++] = module_names[i];
+ }
+ module_names[j] = NULL;
}
static bool
More information about the dovecot-cvs
mailing list