|
![](https://seccdn.libravatar.org/avatar/430f5efc40e35e0aa1fd79627936a80d173d15601d93a228822d42e35eddcd83?s=16&d=retro) |
af9996c |
From 3f1693d558d0758f829c8b53993f1749ddf6ffcb Mon Sep 17 00:00:00 2001
|
|
![](https://seccdn.libravatar.org/avatar/430f5efc40e35e0aa1fd79627936a80d173d15601d93a228822d42e35eddcd83?s=16&d=retro) |
af9996c |
From: Jim Jagielski <jim@apache.org>
|
|
![](https://seccdn.libravatar.org/avatar/430f5efc40e35e0aa1fd79627936a80d173d15601d93a228822d42e35eddcd83?s=16&d=retro) |
af9996c |
Date: Tue, 2 Dec 2014 12:50:59 +0000
|
|
![](https://seccdn.libravatar.org/avatar/430f5efc40e35e0aa1fd79627936a80d173d15601d93a228822d42e35eddcd83?s=16&d=retro) |
af9996c |
Subject: [PATCH] Merge r1642499 from trunk:
|
|
![](https://seccdn.libravatar.org/avatar/430f5efc40e35e0aa1fd79627936a80d173d15601d93a228822d42e35eddcd83?s=16&d=retro) |
af9996c |
|
|
![](https://seccdn.libravatar.org/avatar/430f5efc40e35e0aa1fd79627936a80d173d15601d93a228822d42e35eddcd83?s=16&d=retro) |
af9996c |
*) SECURITY: CVE-2014-8109 (cve.mitre.org)
|
|
![](https://seccdn.libravatar.org/avatar/430f5efc40e35e0aa1fd79627936a80d173d15601d93a228822d42e35eddcd83?s=16&d=retro) |
af9996c |
mod_lua: Fix handling of the Require line when a LuaAuthzProvider is
|
|
![](https://seccdn.libravatar.org/avatar/430f5efc40e35e0aa1fd79627936a80d173d15601d93a228822d42e35eddcd83?s=16&d=retro) |
af9996c |
used in multiple Require directives with different arguments.
|
|
![](https://seccdn.libravatar.org/avatar/430f5efc40e35e0aa1fd79627936a80d173d15601d93a228822d42e35eddcd83?s=16&d=retro) |
af9996c |
PR57204 [Edward Lu <Chaosed0 gmail.com>]
|
|
![](https://seccdn.libravatar.org/avatar/430f5efc40e35e0aa1fd79627936a80d173d15601d93a228822d42e35eddcd83?s=16&d=retro) |
af9996c |
|
|
![](https://seccdn.libravatar.org/avatar/430f5efc40e35e0aa1fd79627936a80d173d15601d93a228822d42e35eddcd83?s=16&d=retro) |
af9996c |
Submitted By: Edward Lu
|
|
![](https://seccdn.libravatar.org/avatar/430f5efc40e35e0aa1fd79627936a80d173d15601d93a228822d42e35eddcd83?s=16&d=retro) |
af9996c |
Committed By: covener
|
|
![](https://seccdn.libravatar.org/avatar/430f5efc40e35e0aa1fd79627936a80d173d15601d93a228822d42e35eddcd83?s=16&d=retro) |
af9996c |
|
|
![](https://seccdn.libravatar.org/avatar/430f5efc40e35e0aa1fd79627936a80d173d15601d93a228822d42e35eddcd83?s=16&d=retro) |
af9996c |
|
|
![](https://seccdn.libravatar.org/avatar/430f5efc40e35e0aa1fd79627936a80d173d15601d93a228822d42e35eddcd83?s=16&d=retro) |
af9996c |
Submitted by: covener
|
|
![](https://seccdn.libravatar.org/avatar/430f5efc40e35e0aa1fd79627936a80d173d15601d93a228822d42e35eddcd83?s=16&d=retro) |
af9996c |
Reviewed/backported by: jim
|
|
![](https://seccdn.libravatar.org/avatar/430f5efc40e35e0aa1fd79627936a80d173d15601d93a228822d42e35eddcd83?s=16&d=retro) |
af9996c |
|
|
![](https://seccdn.libravatar.org/avatar/430f5efc40e35e0aa1fd79627936a80d173d15601d93a228822d42e35eddcd83?s=16&d=retro) |
af9996c |
|
|
![](https://seccdn.libravatar.org/avatar/430f5efc40e35e0aa1fd79627936a80d173d15601d93a228822d42e35eddcd83?s=16&d=retro) |
af9996c |
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/branches/2.4.x@1642861 13f79535-47bb-0310-9956-ffa450edef68
|
|
![](https://seccdn.libravatar.org/avatar/430f5efc40e35e0aa1fd79627936a80d173d15601d93a228822d42e35eddcd83?s=16&d=retro) |
af9996c |
---
|
|
![](https://seccdn.libravatar.org/avatar/430f5efc40e35e0aa1fd79627936a80d173d15601d93a228822d42e35eddcd83?s=16&d=retro) |
af9996c |
CHANGES | 5 +++++
|
|
![](https://seccdn.libravatar.org/avatar/430f5efc40e35e0aa1fd79627936a80d173d15601d93a228822d42e35eddcd83?s=16&d=retro) |
af9996c |
STATUS | 7 -------
|
|
![](https://seccdn.libravatar.org/avatar/430f5efc40e35e0aa1fd79627936a80d173d15601d93a228822d42e35eddcd83?s=16&d=retro) |
af9996c |
modules/lua/mod_lua.c | 27 +++++++++++++++++----------
|
|
![](https://seccdn.libravatar.org/avatar/430f5efc40e35e0aa1fd79627936a80d173d15601d93a228822d42e35eddcd83?s=16&d=retro) |
af9996c |
3 files changed, 22 insertions(+), 17 deletions(-)
|
|
![](https://seccdn.libravatar.org/avatar/430f5efc40e35e0aa1fd79627936a80d173d15601d93a228822d42e35eddcd83?s=16&d=retro) |
af9996c |
|
|
![](https://seccdn.libravatar.org/avatar/430f5efc40e35e0aa1fd79627936a80d173d15601d93a228822d42e35eddcd83?s=16&d=retro) |
af9996c |
diff --git a/modules/lua/mod_lua.c b/modules/lua/mod_lua.c
|
|
![](https://seccdn.libravatar.org/avatar/430f5efc40e35e0aa1fd79627936a80d173d15601d93a228822d42e35eddcd83?s=16&d=retro) |
af9996c |
index b2dca75..e6d2cfc 100644
|
|
![](https://seccdn.libravatar.org/avatar/430f5efc40e35e0aa1fd79627936a80d173d15601d93a228822d42e35eddcd83?s=16&d=retro) |
af9996c |
--- a/modules/lua/mod_lua.c
|
|
![](https://seccdn.libravatar.org/avatar/430f5efc40e35e0aa1fd79627936a80d173d15601d93a228822d42e35eddcd83?s=16&d=retro) |
af9996c |
+++ b/modules/lua/mod_lua.c
|
|
![](https://seccdn.libravatar.org/avatar/430f5efc40e35e0aa1fd79627936a80d173d15601d93a228822d42e35eddcd83?s=16&d=retro) |
af9996c |
@@ -66,9 +66,13 @@ typedef struct {
|
|
![](https://seccdn.libravatar.org/avatar/430f5efc40e35e0aa1fd79627936a80d173d15601d93a228822d42e35eddcd83?s=16&d=retro) |
af9996c |
const char *file_name;
|
|
![](https://seccdn.libravatar.org/avatar/430f5efc40e35e0aa1fd79627936a80d173d15601d93a228822d42e35eddcd83?s=16&d=retro) |
af9996c |
const char *function_name;
|
|
![](https://seccdn.libravatar.org/avatar/430f5efc40e35e0aa1fd79627936a80d173d15601d93a228822d42e35eddcd83?s=16&d=retro) |
af9996c |
ap_lua_vm_spec *spec;
|
|
![](https://seccdn.libravatar.org/avatar/430f5efc40e35e0aa1fd79627936a80d173d15601d93a228822d42e35eddcd83?s=16&d=retro) |
af9996c |
- apr_array_header_t *args;
|
|
![](https://seccdn.libravatar.org/avatar/430f5efc40e35e0aa1fd79627936a80d173d15601d93a228822d42e35eddcd83?s=16&d=retro) |
af9996c |
} lua_authz_provider_spec;
|
|
![](https://seccdn.libravatar.org/avatar/430f5efc40e35e0aa1fd79627936a80d173d15601d93a228822d42e35eddcd83?s=16&d=retro) |
af9996c |
|
|
![](https://seccdn.libravatar.org/avatar/430f5efc40e35e0aa1fd79627936a80d173d15601d93a228822d42e35eddcd83?s=16&d=retro) |
af9996c |
+typedef struct {
|
|
![](https://seccdn.libravatar.org/avatar/430f5efc40e35e0aa1fd79627936a80d173d15601d93a228822d42e35eddcd83?s=16&d=retro) |
af9996c |
+ lua_authz_provider_spec *spec;
|
|
![](https://seccdn.libravatar.org/avatar/430f5efc40e35e0aa1fd79627936a80d173d15601d93a228822d42e35eddcd83?s=16&d=retro) |
af9996c |
+ apr_array_header_t *args;
|
|
![](https://seccdn.libravatar.org/avatar/430f5efc40e35e0aa1fd79627936a80d173d15601d93a228822d42e35eddcd83?s=16&d=retro) |
af9996c |
+} lua_authz_provider_func;
|
|
![](https://seccdn.libravatar.org/avatar/430f5efc40e35e0aa1fd79627936a80d173d15601d93a228822d42e35eddcd83?s=16&d=retro) |
af9996c |
+
|
|
![](https://seccdn.libravatar.org/avatar/430f5efc40e35e0aa1fd79627936a80d173d15601d93a228822d42e35eddcd83?s=16&d=retro) |
af9996c |
apr_hash_t *lua_authz_providers;
|
|
![](https://seccdn.libravatar.org/avatar/430f5efc40e35e0aa1fd79627936a80d173d15601d93a228822d42e35eddcd83?s=16&d=retro) |
af9996c |
|
|
![](https://seccdn.libravatar.org/avatar/430f5efc40e35e0aa1fd79627936a80d173d15601d93a228822d42e35eddcd83?s=16&d=retro) |
af9996c |
typedef struct
|
|
![](https://seccdn.libravatar.org/avatar/430f5efc40e35e0aa1fd79627936a80d173d15601d93a228822d42e35eddcd83?s=16&d=retro) |
af9996c |
@@ -1692,6 +1696,7 @@ static const char *lua_authz_parse(cmd_parms *cmd, const char *require_line,
|
|
![](https://seccdn.libravatar.org/avatar/430f5efc40e35e0aa1fd79627936a80d173d15601d93a228822d42e35eddcd83?s=16&d=retro) |
af9996c |
{
|
|
![](https://seccdn.libravatar.org/avatar/430f5efc40e35e0aa1fd79627936a80d173d15601d93a228822d42e35eddcd83?s=16&d=retro) |
af9996c |
const char *provider_name;
|
|
![](https://seccdn.libravatar.org/avatar/430f5efc40e35e0aa1fd79627936a80d173d15601d93a228822d42e35eddcd83?s=16&d=retro) |
af9996c |
lua_authz_provider_spec *spec;
|
|
![](https://seccdn.libravatar.org/avatar/430f5efc40e35e0aa1fd79627936a80d173d15601d93a228822d42e35eddcd83?s=16&d=retro) |
af9996c |
+ lua_authz_provider_func *func = apr_pcalloc(cmd->pool, sizeof(lua_authz_provider_func));
|
|
![](https://seccdn.libravatar.org/avatar/430f5efc40e35e0aa1fd79627936a80d173d15601d93a228822d42e35eddcd83?s=16&d=retro) |
af9996c |
|
|
![](https://seccdn.libravatar.org/avatar/430f5efc40e35e0aa1fd79627936a80d173d15601d93a228822d42e35eddcd83?s=16&d=retro) |
af9996c |
apr_pool_userdata_get((void**)&provider_name, AUTHZ_PROVIDER_NAME_NOTE,
|
|
![](https://seccdn.libravatar.org/avatar/430f5efc40e35e0aa1fd79627936a80d173d15601d93a228822d42e35eddcd83?s=16&d=retro) |
af9996c |
cmd->temp_pool);
|
|
![](https://seccdn.libravatar.org/avatar/430f5efc40e35e0aa1fd79627936a80d173d15601d93a228822d42e35eddcd83?s=16&d=retro) |
af9996c |
@@ -1699,16 +1704,17 @@ static const char *lua_authz_parse(cmd_parms *cmd, const char *require_line,
|
|
![](https://seccdn.libravatar.org/avatar/430f5efc40e35e0aa1fd79627936a80d173d15601d93a228822d42e35eddcd83?s=16&d=retro) |
af9996c |
|
|
![](https://seccdn.libravatar.org/avatar/430f5efc40e35e0aa1fd79627936a80d173d15601d93a228822d42e35eddcd83?s=16&d=retro) |
af9996c |
spec = apr_hash_get(lua_authz_providers, provider_name, APR_HASH_KEY_STRING);
|
|
![](https://seccdn.libravatar.org/avatar/430f5efc40e35e0aa1fd79627936a80d173d15601d93a228822d42e35eddcd83?s=16&d=retro) |
af9996c |
ap_assert(spec != NULL);
|
|
![](https://seccdn.libravatar.org/avatar/430f5efc40e35e0aa1fd79627936a80d173d15601d93a228822d42e35eddcd83?s=16&d=retro) |
af9996c |
+ func->spec = spec;
|
|
![](https://seccdn.libravatar.org/avatar/430f5efc40e35e0aa1fd79627936a80d173d15601d93a228822d42e35eddcd83?s=16&d=retro) |
af9996c |
|
|
![](https://seccdn.libravatar.org/avatar/430f5efc40e35e0aa1fd79627936a80d173d15601d93a228822d42e35eddcd83?s=16&d=retro) |
af9996c |
if (require_line && *require_line) {
|
|
![](https://seccdn.libravatar.org/avatar/430f5efc40e35e0aa1fd79627936a80d173d15601d93a228822d42e35eddcd83?s=16&d=retro) |
af9996c |
const char *arg;
|
|
![](https://seccdn.libravatar.org/avatar/430f5efc40e35e0aa1fd79627936a80d173d15601d93a228822d42e35eddcd83?s=16&d=retro) |
af9996c |
- spec->args = apr_array_make(cmd->pool, 2, sizeof(const char *));
|
|
![](https://seccdn.libravatar.org/avatar/430f5efc40e35e0aa1fd79627936a80d173d15601d93a228822d42e35eddcd83?s=16&d=retro) |
af9996c |
+ func->args = apr_array_make(cmd->pool, 2, sizeof(const char *));
|
|
![](https://seccdn.libravatar.org/avatar/430f5efc40e35e0aa1fd79627936a80d173d15601d93a228822d42e35eddcd83?s=16&d=retro) |
af9996c |
while ((arg = ap_getword_conf(cmd->pool, &require_line)) && *arg) {
|
|
![](https://seccdn.libravatar.org/avatar/430f5efc40e35e0aa1fd79627936a80d173d15601d93a228822d42e35eddcd83?s=16&d=retro) |
af9996c |
- APR_ARRAY_PUSH(spec->args, const char *) = arg;
|
|
![](https://seccdn.libravatar.org/avatar/430f5efc40e35e0aa1fd79627936a80d173d15601d93a228822d42e35eddcd83?s=16&d=retro) |
af9996c |
+ APR_ARRAY_PUSH(func->args, const char *) = arg;
|
|
![](https://seccdn.libravatar.org/avatar/430f5efc40e35e0aa1fd79627936a80d173d15601d93a228822d42e35eddcd83?s=16&d=retro) |
af9996c |
}
|
|
![](https://seccdn.libravatar.org/avatar/430f5efc40e35e0aa1fd79627936a80d173d15601d93a228822d42e35eddcd83?s=16&d=retro) |
af9996c |
}
|
|
![](https://seccdn.libravatar.org/avatar/430f5efc40e35e0aa1fd79627936a80d173d15601d93a228822d42e35eddcd83?s=16&d=retro) |
af9996c |
|
|
![](https://seccdn.libravatar.org/avatar/430f5efc40e35e0aa1fd79627936a80d173d15601d93a228822d42e35eddcd83?s=16&d=retro) |
af9996c |
- *parsed_require_line = spec;
|
|
![](https://seccdn.libravatar.org/avatar/430f5efc40e35e0aa1fd79627936a80d173d15601d93a228822d42e35eddcd83?s=16&d=retro) |
af9996c |
+ *parsed_require_line = func;
|
|
![](https://seccdn.libravatar.org/avatar/430f5efc40e35e0aa1fd79627936a80d173d15601d93a228822d42e35eddcd83?s=16&d=retro) |
af9996c |
return NULL;
|
|
![](https://seccdn.libravatar.org/avatar/430f5efc40e35e0aa1fd79627936a80d173d15601d93a228822d42e35eddcd83?s=16&d=retro) |
af9996c |
}
|
|
![](https://seccdn.libravatar.org/avatar/430f5efc40e35e0aa1fd79627936a80d173d15601d93a228822d42e35eddcd83?s=16&d=retro) |
af9996c |
|
|
![](https://seccdn.libravatar.org/avatar/430f5efc40e35e0aa1fd79627936a80d173d15601d93a228822d42e35eddcd83?s=16&d=retro) |
af9996c |
@@ -1722,7 +1728,8 @@ static authz_status lua_authz_check(request_rec *r, const char *require_line,
|
|
![](https://seccdn.libravatar.org/avatar/430f5efc40e35e0aa1fd79627936a80d173d15601d93a228822d42e35eddcd83?s=16&d=retro) |
af9996c |
&lua_module);
|
|
![](https://seccdn.libravatar.org/avatar/430f5efc40e35e0aa1fd79627936a80d173d15601d93a228822d42e35eddcd83?s=16&d=retro) |
af9996c |
const ap_lua_dir_cfg *cfg = ap_get_module_config(r->per_dir_config,
|
|
![](https://seccdn.libravatar.org/avatar/430f5efc40e35e0aa1fd79627936a80d173d15601d93a228822d42e35eddcd83?s=16&d=retro) |
af9996c |
&lua_module);
|
|
![](https://seccdn.libravatar.org/avatar/430f5efc40e35e0aa1fd79627936a80d173d15601d93a228822d42e35eddcd83?s=16&d=retro) |
af9996c |
- const lua_authz_provider_spec *prov_spec = parsed_require_line;
|
|
![](https://seccdn.libravatar.org/avatar/430f5efc40e35e0aa1fd79627936a80d173d15601d93a228822d42e35eddcd83?s=16&d=retro) |
af9996c |
+ const lua_authz_provider_func *prov_func = parsed_require_line;
|
|
![](https://seccdn.libravatar.org/avatar/430f5efc40e35e0aa1fd79627936a80d173d15601d93a228822d42e35eddcd83?s=16&d=retro) |
af9996c |
+ const lua_authz_provider_spec *prov_spec = prov_func->spec;
|
|
![](https://seccdn.libravatar.org/avatar/430f5efc40e35e0aa1fd79627936a80d173d15601d93a228822d42e35eddcd83?s=16&d=retro) |
af9996c |
int result;
|
|
![](https://seccdn.libravatar.org/avatar/430f5efc40e35e0aa1fd79627936a80d173d15601d93a228822d42e35eddcd83?s=16&d=retro) |
af9996c |
int nargs = 0;
|
|
![](https://seccdn.libravatar.org/avatar/430f5efc40e35e0aa1fd79627936a80d173d15601d93a228822d42e35eddcd83?s=16&d=retro) |
af9996c |
|
|
![](https://seccdn.libravatar.org/avatar/430f5efc40e35e0aa1fd79627936a80d173d15601d93a228822d42e35eddcd83?s=16&d=retro) |
af9996c |
@@ -1744,19 +1751,19 @@ static authz_status lua_authz_check(request_rec *r, const char *require_line,
|
|
![](https://seccdn.libravatar.org/avatar/430f5efc40e35e0aa1fd79627936a80d173d15601d93a228822d42e35eddcd83?s=16&d=retro) |
af9996c |
return AUTHZ_GENERAL_ERROR;
|
|
![](https://seccdn.libravatar.org/avatar/430f5efc40e35e0aa1fd79627936a80d173d15601d93a228822d42e35eddcd83?s=16&d=retro) |
af9996c |
}
|
|
![](https://seccdn.libravatar.org/avatar/430f5efc40e35e0aa1fd79627936a80d173d15601d93a228822d42e35eddcd83?s=16&d=retro) |
af9996c |
ap_lua_run_lua_request(L, r);
|
|
![](https://seccdn.libravatar.org/avatar/430f5efc40e35e0aa1fd79627936a80d173d15601d93a228822d42e35eddcd83?s=16&d=retro) |
af9996c |
- if (prov_spec->args) {
|
|
![](https://seccdn.libravatar.org/avatar/430f5efc40e35e0aa1fd79627936a80d173d15601d93a228822d42e35eddcd83?s=16&d=retro) |
af9996c |
+ if (prov_func->args) {
|
|
![](https://seccdn.libravatar.org/avatar/430f5efc40e35e0aa1fd79627936a80d173d15601d93a228822d42e35eddcd83?s=16&d=retro) |
af9996c |
int i;
|
|
![](https://seccdn.libravatar.org/avatar/430f5efc40e35e0aa1fd79627936a80d173d15601d93a228822d42e35eddcd83?s=16&d=retro) |
af9996c |
- if (!lua_checkstack(L, prov_spec->args->nelts)) {
|
|
![](https://seccdn.libravatar.org/avatar/430f5efc40e35e0aa1fd79627936a80d173d15601d93a228822d42e35eddcd83?s=16&d=retro) |
af9996c |
+ if (!lua_checkstack(L, prov_func->args->nelts)) {
|
|
![](https://seccdn.libravatar.org/avatar/430f5efc40e35e0aa1fd79627936a80d173d15601d93a228822d42e35eddcd83?s=16&d=retro) |
af9996c |
ap_log_rerror(APLOG_MARK, APLOG_ERR, 0, r, APLOGNO(02315)
|
|
![](https://seccdn.libravatar.org/avatar/430f5efc40e35e0aa1fd79627936a80d173d15601d93a228822d42e35eddcd83?s=16&d=retro) |
af9996c |
"Error: authz provider %s: too many arguments", prov_spec->name);
|
|
![](https://seccdn.libravatar.org/avatar/430f5efc40e35e0aa1fd79627936a80d173d15601d93a228822d42e35eddcd83?s=16&d=retro) |
af9996c |
ap_lua_release_state(L, spec, r);
|
|
![](https://seccdn.libravatar.org/avatar/430f5efc40e35e0aa1fd79627936a80d173d15601d93a228822d42e35eddcd83?s=16&d=retro) |
af9996c |
return AUTHZ_GENERAL_ERROR;
|
|
![](https://seccdn.libravatar.org/avatar/430f5efc40e35e0aa1fd79627936a80d173d15601d93a228822d42e35eddcd83?s=16&d=retro) |
af9996c |
}
|
|
![](https://seccdn.libravatar.org/avatar/430f5efc40e35e0aa1fd79627936a80d173d15601d93a228822d42e35eddcd83?s=16&d=retro) |
af9996c |
- for (i = 0; i < prov_spec->args->nelts; i++) {
|
|
![](https://seccdn.libravatar.org/avatar/430f5efc40e35e0aa1fd79627936a80d173d15601d93a228822d42e35eddcd83?s=16&d=retro) |
af9996c |
- const char *arg = APR_ARRAY_IDX(prov_spec->args, i, const char *);
|
|
![](https://seccdn.libravatar.org/avatar/430f5efc40e35e0aa1fd79627936a80d173d15601d93a228822d42e35eddcd83?s=16&d=retro) |
af9996c |
+ for (i = 0; i < prov_func->args->nelts; i++) {
|
|
![](https://seccdn.libravatar.org/avatar/430f5efc40e35e0aa1fd79627936a80d173d15601d93a228822d42e35eddcd83?s=16&d=retro) |
af9996c |
+ const char *arg = APR_ARRAY_IDX(prov_func->args, i, const char *);
|
|
![](https://seccdn.libravatar.org/avatar/430f5efc40e35e0aa1fd79627936a80d173d15601d93a228822d42e35eddcd83?s=16&d=retro) |
af9996c |
lua_pushstring(L, arg);
|
|
![](https://seccdn.libravatar.org/avatar/430f5efc40e35e0aa1fd79627936a80d173d15601d93a228822d42e35eddcd83?s=16&d=retro) |
af9996c |
}
|
|
![](https://seccdn.libravatar.org/avatar/430f5efc40e35e0aa1fd79627936a80d173d15601d93a228822d42e35eddcd83?s=16&d=retro) |
af9996c |
- nargs = prov_spec->args->nelts;
|
|
![](https://seccdn.libravatar.org/avatar/430f5efc40e35e0aa1fd79627936a80d173d15601d93a228822d42e35eddcd83?s=16&d=retro) |
af9996c |
+ nargs = prov_func->args->nelts;
|
|
![](https://seccdn.libravatar.org/avatar/430f5efc40e35e0aa1fd79627936a80d173d15601d93a228822d42e35eddcd83?s=16&d=retro) |
af9996c |
}
|
|
![](https://seccdn.libravatar.org/avatar/430f5efc40e35e0aa1fd79627936a80d173d15601d93a228822d42e35eddcd83?s=16&d=retro) |
af9996c |
if (lua_pcall(L, 1 + nargs, 1, 0)) {
|
|
![](https://seccdn.libravatar.org/avatar/430f5efc40e35e0aa1fd79627936a80d173d15601d93a228822d42e35eddcd83?s=16&d=retro) |
af9996c |
const char *err = lua_tostring(L, -1);
|