]> git.ipfire.org Git - thirdparty/rspamd.git/commitdiff
[Minor] Fix parse_table_arguments
authorVsevolod Stakhov <vsevolod@highsecure.ru>
Mon, 1 Jul 2019 12:29:06 +0000 (13:29 +0100)
committerVsevolod Stakhov <vsevolod@highsecure.ru>
Mon, 1 Jul 2019 12:29:06 +0000 (13:29 +0100)
src/lua/lua_common.c

index 354a932f90e1eb90727bb745c0a42d8a1f604d39..cf909e02185d24e16bf25fa450353c4662001ff1 100644 (file)
@@ -1320,6 +1320,9 @@ rspamd_lua_parse_table_arguments (lua_State *L, gint pos,
                                        if (how != RSPAMD_LUA_PARSE_ARGUMENTS_IGNORE_MISSING) {
                                                *(va_arg (ap, const gchar **)) = NULL;
                                        }
+                                       else {
+                                               (void)va_arg (ap, gchar **);
+                                       }
                                }
                                else {
                                        g_set_error (err,
@@ -1342,13 +1345,16 @@ rspamd_lua_parse_table_arguments (lua_State *L, gint pos,
 
                        case 'I':
                                if (t == LUA_TNUMBER) {
-                                       *(va_arg (ap, gint64 *)) = lua_tonumber (L, idx);
+                                       *(va_arg (ap, gint64 *)) = lua_tointeger (L, idx);
                                }
                                else if (t == LUA_TNIL || t == LUA_TNONE) {
                                        failed = TRUE;
                                        if (how != RSPAMD_LUA_PARSE_ARGUMENTS_IGNORE_MISSING) {
                                                *(va_arg (ap, gint64 *)) = 0;
                                        }
+                                       else {
+                                               (void)va_arg (ap, gint64 *);
+                                       }
                                }
                                else {
                                        g_set_error (err,
@@ -1383,6 +1389,9 @@ rspamd_lua_parse_table_arguments (lua_State *L, gint pos,
                                        if (how != RSPAMD_LUA_PARSE_ARGUMENTS_IGNORE_MISSING) {
                                                *(va_arg (ap, gint *)) = -1;
                                        }
+                                       else {
+                                               (void)va_arg (ap, gint *);
+                                       }
 
                                        if (is_table) {
                                                lua_pop (L, 1);
@@ -1450,6 +1459,9 @@ rspamd_lua_parse_table_arguments (lua_State *L, gint pos,
                                        if (how != RSPAMD_LUA_PARSE_ARGUMENTS_IGNORE_MISSING) {
                                                *(va_arg (ap, gdouble *)) = 0;
                                        }
+                                       else {
+                                               (void)va_arg (ap, gdouble *);
+                                       }
                                }
                                else {
                                        g_set_error (err,
@@ -1481,6 +1493,9 @@ rspamd_lua_parse_table_arguments (lua_State *L, gint pos,
                                        if (how != RSPAMD_LUA_PARSE_ARGUMENTS_IGNORE_MISSING) {
                                                *(va_arg (ap, gdouble *)) = NAN;
                                        }
+                                       else {
+                                               (void)va_arg (ap, gdouble *);
+                                       }
                                }
                                else {
                                        g_set_error (err,
@@ -1516,6 +1531,9 @@ rspamd_lua_parse_table_arguments (lua_State *L, gint pos,
                                                *(va_arg (ap, const char **)) = NULL;
                                                *valuelen = 0;
                                        }
+                                       else {
+                                               (void)va_arg (ap, const char **);
+                                       }
                                }
                                else {
                                        g_set_error (err,
@@ -1547,6 +1565,9 @@ rspamd_lua_parse_table_arguments (lua_State *L, gint pos,
                                        if (how != RSPAMD_LUA_PARSE_ARGUMENTS_IGNORE_MISSING) {
                                                *(va_arg (ap, ucl_object_t **)) = NULL;
                                        }
+                                       else {
+                                               (void)va_arg (ap, ucl_object_t **);
+                                       }
                                }
 
                                if (is_table) {
@@ -1560,6 +1581,9 @@ rspamd_lua_parse_table_arguments (lua_State *L, gint pos,
                                        if (how != RSPAMD_LUA_PARSE_ARGUMENTS_IGNORE_MISSING) {
                                                *(va_arg (ap, void **)) = NULL;
                                        }
+                                       else {
+                                               (void)va_arg (ap, void **);
+                                       }
                                }
                                else if (t != LUA_TUSERDATA) {
                                        g_set_error (err,