From cfc997ef3da9f406afe5caad99fc98a53aab7a77 Mon Sep 17 00:00:00 2001 From: Dave Wallace Date: Tue, 22 Aug 2017 18:32:34 -0400 Subject: Fix vl_map_shmem() root_path dangling reference. Change-Id: I90c9d8e151cacf50a99ce76b7a589079303196e8 Signed-off-by: Dave Wallace --- src/vlibmemory/memory_shared.c | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) (limited to 'src/vlibmemory/memory_shared.c') diff --git a/src/vlibmemory/memory_shared.c b/src/vlibmemory/memory_shared.c index fbdabd06e36..8c6469080d7 100644 --- a/src/vlibmemory/memory_shared.c +++ b/src/vlibmemory/memory_shared.c @@ -340,15 +340,18 @@ vl_map_shmem (const char *region_name, int is_vlib) int i, rv; struct timespec ts, tsrem; u32 vlib_input_queue_length; + char *vpe_api_region_suffix = "-vpe-api"; memset (a, 0, sizeof (*a)); - if (strstr (region_name, "-vpe-api")) + if (strstr (region_name, vpe_api_region_suffix)) { - char root_path[strlen (region_name)]; - strncpy (root_path, region_name, strlen (region_name) - 8); - a->root_path = root_path; - am->root_path = root_path; + u8 *root_path = format (0, "%s", region_name); + _vec_len (root_path) = (vec_len (root_path) - + strlen (vpe_api_region_suffix)); + vec_terminate_c_string (root_path); + a->root_path = (const char *) root_path; + am->root_path = (const char *) root_path; } if (is_vlib == 0) -- cgit 1.2.3-korg