dovecot-2.0: lib-settings: Do proper alignment for dynamically a...
dovecot at dovecot.org
dovecot at dovecot.org
Fri Jul 16 17:08:49 EEST 2010
details: http://hg.dovecot.org/dovecot-2.0/rev/ba76cf7467c4
changeset: 11841:ba76cf7467c4
user: Timo Sirainen <tss at iki.fi>
date: Fri Jul 16 15:08:46 2010 +0100
description:
lib-settings: Do proper alignment for dynamically added structs.
Fixes a crash with some CPUs.
diffstat:
src/lib-settings/settings-parser.c | 6 +++---
1 files changed, 3 insertions(+), 3 deletions(-)
diffs (30 lines):
diff -r 38fcf81cc9e0 -r ba76cf7467c4 src/lib-settings/settings-parser.c
--- a/src/lib-settings/settings-parser.c Fri Jul 16 13:57:41 2010 +0100
+++ b/src/lib-settings/settings-parser.c Fri Jul 16 15:08:46 2010 +0100
@@ -1464,7 +1464,7 @@
/* add existing defines */
for (j = 0; parent->defines[j].key != NULL; j++)
array_append(&defines, &parent->defines[j], 1);
- new_struct_size = parent->struct_size;
+ new_struct_size = MEM_ALIGN(parent->struct_size);
/* add new dynamic defines */
for (i = 0; parsers[i].name != NULL; i++) {
@@ -1486,7 +1486,7 @@
/* update defaults */
parent_defaults = p_malloc(pool, new_struct_size);
memcpy(parent_defaults, parent->defaults, parent->struct_size);
- offset = parent->struct_size;
+ offset = MEM_ALIGN(parent->struct_size);
for (i = 0; parsers[i].name != NULL; i++) {
memcpy(PTR_OFFSET(parent_defaults, offset),
parsers[i].info->defaults, parsers[i].info->struct_size);
@@ -1502,7 +1502,7 @@
&parent->dynamic_parsers[i], 1);
}
}
- offset = parent->struct_size;
+ offset = MEM_ALIGN(parent->struct_size);
for (i = 0; parsers[i].name != NULL; i++) {
new_parser = parsers[i];
new_parser.name = p_strdup(pool, new_parser.name);
More information about the dovecot-cvs
mailing list