diff options
| author | Donald Lee <dlqs@gmx.com> | 2021-07-23 23:25:20 +0800 |
|---|---|---|
| committer | Donald Lee <dlqs@gmx.com> | 2021-07-24 00:45:22 +0800 |
| commit | 1763ed26559eda64663f1224a07b46001084d985 (patch) | |
| tree | 4b32831941772d0bbaeca9a097f97616e76b11c2 /lib/frrscript.c | |
| parent | 67b64027b2a5fc97d58f1298e5b99da1bbe78a68 (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.c | 11 |
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) { |
