mirror of
https://git.proxmox.com/git/mirror_frr
synced 2026-01-08 19:06:09 +00:00
lib: Modify 'banner motd file <X>'
Modify the banner motd file X command to do these things differently: 1) Only allow the file <X> to be in SYSCONFDIR 2) Only allow the user to use a file that exists. Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com> Reviewed-by: Dinesh Dutt <ddutt@cumulusnetworks.com>
This commit is contained in:
parent
6ac9179ca7
commit
1ee08155da
@ -3912,11 +3912,25 @@ DEFUN (no_config_log_timestamp_precision,
|
||||
int
|
||||
cmd_banner_motd_file (const char *file)
|
||||
{
|
||||
if (host.motdfile)
|
||||
XFREE (MTYPE_HOST, host.motdfile);
|
||||
host.motdfile = XSTRDUP (MTYPE_HOST, file);
|
||||
int success = CMD_SUCCESS;
|
||||
char p[PATH_MAX];
|
||||
char *rpath;
|
||||
char *in;
|
||||
|
||||
return CMD_SUCCESS;
|
||||
rpath = realpath (file, p);
|
||||
if (!rpath)
|
||||
return CMD_ERR_NO_FILE;
|
||||
in = strstr (rpath, SYSCONFDIR);
|
||||
if (in == rpath)
|
||||
{
|
||||
if (host.motdfile)
|
||||
XFREE (MTYPE_HOST, host.motdfile);
|
||||
host.motdfile = XSTRDUP (MTYPE_HOST, file);
|
||||
}
|
||||
else
|
||||
success = CMD_WARNING;
|
||||
|
||||
return success;
|
||||
}
|
||||
|
||||
DEFUN (banner_motd_file,
|
||||
@ -3927,7 +3941,15 @@ DEFUN (banner_motd_file,
|
||||
"Banner from a file\n"
|
||||
"Filename\n")
|
||||
{
|
||||
return cmd_banner_motd_file (argv[0]);
|
||||
int cmd = cmd_banner_motd_file (argv[0]);
|
||||
|
||||
if (cmd == CMD_ERR_NO_FILE)
|
||||
vty_out (vty, "%s does not exist", argv[0]);
|
||||
else if (cmd == CMD_WARNING)
|
||||
vty_out (vty, "%s must be in %s",
|
||||
argv[0], SYSCONFDIR);
|
||||
|
||||
return cmd;
|
||||
}
|
||||
|
||||
DEFUN (banner_motd_default,
|
||||
|
||||
Loading…
Reference in New Issue
Block a user