summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lib/vty.c13
1 files changed, 4 insertions, 9 deletions
diff --git a/lib/vty.c b/lib/vty.c
index 9bee7b6c83..2d97cca351 100644
--- a/lib/vty.c
+++ b/lib/vty.c
@@ -84,7 +84,7 @@ static char *vty_ipv6_accesslist_name = NULL;
static vector Vvty_serv_thread;
/* Current directory. */
-char *vty_cwd = NULL;
+char vty_cwd[MAXPATHLEN];
/* Login password check. */
static int no_password_check = 0;
@@ -3056,10 +3056,9 @@ void vty_reset(void)
static void vty_save_cwd(void)
{
- char cwd[MAXPATHLEN];
char *c;
- c = getcwd(cwd, MAXPATHLEN);
+ c = getcwd(vty_cwd, sizeof(vty_cwd));
if (!c) {
/*
@@ -3073,16 +3072,12 @@ static void vty_save_cwd(void)
SYSCONFDIR, errno);
exit(-1);
}
- if (getcwd(cwd, MAXPATHLEN) == NULL) {
+ if (getcwd(vty_cwd, sizeof(vty_cwd)) == NULL) {
flog_err_sys(EC_LIB_SYSTEM_CALL,
"Failure to getcwd, errno: %d", errno);
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)
@@ -3148,7 +3143,7 @@ void vty_init(struct thread_master *master_thread)
void vty_terminate(void)
{
- XFREE(MTYPE_TMP, vty_cwd);
+ memset(vty_cwd, 0x00, sizeof(vty_cwd));
if (vtyvec && Vvty_serv_thread) {
vty_reset();