summaryrefslogtreecommitdiff
path: root/lib/frrscript.c
diff options
context:
space:
mode:
authorDonald Lee <dlqs@gmx.com>2021-07-23 23:25:20 +0800
committerDonald Lee <dlqs@gmx.com>2021-07-24 00:45:22 +0800
commit1763ed26559eda64663f1224a07b46001084d985 (patch)
tree4b32831941772d0bbaeca9a097f97616e76b11c2 /lib/frrscript.c
parent67b64027b2a5fc97d58f1298e5b99da1bbe78a68 (diff)
lib: Cap script_name length
Signed-off-by: Donald Lee <dlqs@gmx.com>
Diffstat (limited to 'lib/frrscript.c')
-rw-r--r--lib/frrscript.c11
1 files changed, 8 insertions, 3 deletions
diff --git a/lib/frrscript.c b/lib/frrscript.c
index b385ad7eaa..3f2544f4a0 100644
--- a/lib/frrscript.c
+++ b/lib/frrscript.c
@@ -262,10 +262,15 @@ int frrscript_load(struct frrscript *fs, const char *function_name,
frrlua_export_logging(L);
- char script_name[MAXPATHLEN * 2];
+ char script_name[MAXPATHLEN];
- snprintf(script_name, sizeof(script_name), "%s/%s.lua", scriptdir,
- fs->name);
+ if (snprintf(script_name, sizeof(script_name), "%s/%s.lua", scriptdir,
+ fs->name)
+ < 0) {
+ zlog_err("frrscript: path to script %s/%s.lua is too long",
+ scriptdir, fs->name);
+ goto fail;
+ }
int ret = luaL_dofile(L, script_name);
switch (ret) {