Skip to content

Commit

Permalink
lib-sieve: Handle extension overriding itself properly.
Browse files Browse the repository at this point in the history
  • Loading branch information
stephanbosch committed Apr 28, 2016
1 parent 7c79cdc commit b9e567b
Showing 1 changed file with 5 additions and 3 deletions.
8 changes: 5 additions & 3 deletions src/lib-sieve/sieve-extensions.c
Expand Up @@ -504,13 +504,15 @@ void sieve_extension_override
struct sieve_extension * const *mod_ext;
struct sieve_extension *old_ext;

old_ext = sieve_extension_lookup(svinst, name);
if (old_ext == ext)
return;
i_assert( old_ext == NULL || !old_ext->overridden );

i_assert( ext->id >= 0 &&
ext->id < (int) array_count(&ext_reg->extensions) );
mod_ext = array_idx(&ext_reg->extensions, ext->id);

old_ext = sieve_extension_lookup(svinst, name);
i_assert( old_ext == NULL || !old_ext->overridden );

sieve_extension_insert(svinst, name, *mod_ext);
if ( old_ext != NULL )
old_ext->overridden = TRUE;
Expand Down

0 comments on commit b9e567b

Please sign in to comment.