From 0bb670eb661890b92a1e87895e63f46fd78db903 Mon Sep 17 00:00:00 2001 From: Benoît Ganne Date: Thu, 9 Sep 2021 12:00:00 +0200 Subject: session: fix non-NULL terminated string MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit vlib_unix_recursive_mkdir () expects a NULL-terminated C-string. Type: fix Change-Id: I412b48443d0792307d611c466747c0aa5e423417 Signed-off-by: Benoît Ganne --- src/vnet/session/session_api.c | 25 +++++++------------------ 1 file changed, 7 insertions(+), 18 deletions(-) (limited to 'src/vnet/session/session_api.c') diff --git a/src/vnet/session/session_api.c b/src/vnet/session/session_api.c index e6aac953bce..371fcfc9271 100644 --- a/src/vnet/session/session_api.c +++ b/src/vnet/session/session_api.c @@ -1720,26 +1720,21 @@ appns_sapi_add_ns_socket (app_namespace_t * app_ns) struct stat file_stat; clib_error_t *err; clib_socket_t *cs; - u8 *dir = 0; - int rv = 0; - - vec_add (dir, vlib_unix_get_runtime_dir (), - strlen (vlib_unix_get_runtime_dir ())); - vec_add (dir, (u8 *) subdir, strlen (subdir)); + char dir[4096]; + snprintf (dir, sizeof (dir), "%s%s", vlib_unix_get_runtime_dir (), subdir); err = vlib_unix_recursive_mkdir ((char *) dir); if (err) { clib_error_report (err); - rv = -1; - goto error; + return -1; } /* Use abstract sockets if a netns was provided */ if (app_ns->netns) app_ns->sock_name = format (0, "@vpp/session/%v%c", app_ns->ns_id, 0); else - app_ns->sock_name = format (0, "%v%v%c", dir, app_ns->ns_id, 0); + app_ns->sock_name = format (0, "%s%v%c", dir, app_ns->ns_id, 0); /* * Create and initialize socket to listen on @@ -1753,15 +1748,11 @@ appns_sapi_add_ns_socket (app_namespace_t * app_ns) if ((err = clib_socket_init_netns (cs, app_ns->netns))) { clib_error_report (err); - rv = -1; - goto error; + return -1; } if (!app_ns->netns && stat ((char *) app_ns->sock_name, &file_stat) == -1) - { - rv = -1; - goto error; - } + return -1; /* * Start polling it @@ -1779,9 +1770,7 @@ appns_sapi_add_ns_socket (app_namespace_t * app_ns) handle->aah_file_index = clib_file_add (&file_main, &cf); handle->aah_app_wrk_index = APP_INVALID_INDEX; -error: - vec_free (dir); - return rv; + return 0; } static void -- cgit 1.2.3-korg