]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
mail-lua: Fix gc code to push key first then value
authorAki Tuomi <aki.tuomi@dovecot.fi>
Tue, 25 Sep 2018 12:49:21 +0000 (15:49 +0300)
committerVille Savolainen <ville.savolainen@dovecot.fi>
Wed, 14 Nov 2018 12:01:53 +0000 (14:01 +0200)
Otherwise it uses nil as key, which makes no sense and leads to eventual crash.

src/plugins/mail-lua/mail-storage-lua.c

index 426567d0fbd40c4781263101e0a29409b1728238..32e9ec4e75708690423e61c85b41bf85f96f4f13 100644 (file)
@@ -170,8 +170,8 @@ static int lua_storage_mail_user_unref(lua_State *L)
        (void)lua_check_storage_mail_user(script, 1);
 
        /* reset value to NULL */
-       lua_pushnil(script->L);
        lua_pushliteral(script->L, "item");
+       lua_pushnil(script->L);
        lua_rawset(script->L, 1);
 
        return 0;
@@ -297,8 +297,8 @@ static int lua_storage_mailbox_gc(lua_State *L)
        (void)lua_check_storage_mailbox(script, 1);
 
        /* reset value to NULL */
-       lua_pushnil(script->L);
        lua_pushliteral(script->L, "item");
+       lua_pushnil(script->L);
        lua_rawset(script->L, 1);
 
        return 0;
@@ -535,8 +535,8 @@ static int lua_storage_mail_gc(lua_State *L)
        (void)lua_check_storage_mail(script, 1);
 
        /* reset value to NULL */
-       lua_pushnil(script->L);
        lua_pushliteral(script->L, "item");
+       lua_pushnil(script->L);
        lua_rawset(script->L, 1);
 
        return 0;