lib: use static storage for vty_cwd

Why are we allocating this

Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
This commit is contained in:
Quentin Young 2019-05-15 22:42:41 +00:00
parent 6e0b62b428
commit daeb97e980

View File

@ -84,7 +84,7 @@ static char *vty_ipv6_accesslist_name = NULL;
static vector Vvty_serv_thread; static vector Vvty_serv_thread;
/* Current directory. */ /* Current directory. */
char *vty_cwd = NULL; char vty_cwd[MAXPATHLEN];
/* Login password check. */ /* Login password check. */
static int no_password_check = 0; static int no_password_check = 0;
@ -3056,10 +3056,9 @@ void vty_reset(void)
static void vty_save_cwd(void) static void vty_save_cwd(void)
{ {
char cwd[MAXPATHLEN];
char *c; char *c;
c = getcwd(cwd, MAXPATHLEN); c = getcwd(vty_cwd, sizeof(vty_cwd));
if (!c) { if (!c) {
/* /*
@ -3073,16 +3072,12 @@ static void vty_save_cwd(void)
SYSCONFDIR, errno); SYSCONFDIR, errno);
exit(-1); exit(-1);
} }
if (getcwd(cwd, MAXPATHLEN) == NULL) { if (getcwd(vty_cwd, sizeof(vty_cwd)) == NULL) {
flog_err_sys(EC_LIB_SYSTEM_CALL, flog_err_sys(EC_LIB_SYSTEM_CALL,
"Failure to getcwd, errno: %d", errno); "Failure to getcwd, errno: %d", errno);
exit(-1); exit(-1);
} }
} }
size_t vty_cwd_sz = strlen(cwd) + 1;
vty_cwd = XMALLOC(MTYPE_TMP, vty_cwd_sz);
strlcpy(vty_cwd, cwd, vty_cwd_sz);
} }
char *vty_get_cwd(void) char *vty_get_cwd(void)
@ -3148,7 +3143,7 @@ void vty_init(struct thread_master *master_thread)
void vty_terminate(void) void vty_terminate(void)
{ {
XFREE(MTYPE_TMP, vty_cwd); memset(vty_cwd, 0x00, sizeof(vty_cwd));
if (vtyvec && Vvty_serv_thread) { if (vtyvec && Vvty_serv_thread) {
vty_reset(); vty_reset();