Mercurial > dovecot > original-hg > dovecot-2.2
changeset 17760:3d9f233f5b77
lib-storage: Fixed off-by-one memory allocation in dynamic settings allocation code.
This didn't actually affect normal Dovecot builds, because there were always
some storages with get_setting_parser_info=NULL that added the necessary
padding.
Patch by Michael M Slusarz
author | Timo Sirainen <tss@iki.fi> |
---|---|
date | Wed, 03 Sep 2014 06:29:52 -0700 |
parents | d136c0869774 |
children | 58738244dc34 |
files | src/lib-storage/mail-storage-settings.c |
diffstat | 1 files changed, 2 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- a/src/lib-storage/mail-storage-settings.c Fri Aug 29 13:22:11 2014 +0900 +++ b/src/lib-storage/mail-storage-settings.c Wed Sep 03 06:29:52 2014 -0700 @@ -322,7 +322,7 @@ unsigned int i, j, count; storages = array_get(&mail_storage_classes, &count); - parsers = p_new(pool, struct dynamic_settings_parser, count + 1); + parsers = p_new(pool, struct dynamic_settings_parser, 1 + count + 1); parsers[0].name = MAIL_STORAGE_SET_DRIVER_NAME; parsers[0].info = &mail_storage_setting_parser_info; @@ -334,6 +334,7 @@ parsers[j].info = storages[i]->v.get_setting_parser_info(); j++; } + parsers[j] = NULL; return parsers; }