From: Jérémie Galarneau Date: Thu, 10 Sep 2020 16:23:28 +0000 (-0400) Subject: userspace-probe: replace explicit null-termination check X-Git-Url: http://git.efficios.com/?p=lttng-tools.git;a=commitdiff_plain;h=b9e63e21bd01c0deeaec2195ba912e38460bc038 userspace-probe: replace explicit null-termination check Replace explicit null-termination checks by uses of lttng_buffer_view_contains_string() which provides the same guarantees and ensures the string pointer is within the view. Signed-off-by: Jérémie Galarneau Change-Id: If0038a82ad7dfe1ed0e8cdef7870d5e25d62200d --- diff --git a/src/common/userspace-probe.c b/src/common/userspace-probe.c index 9e5429f73..49cc83575 100644 --- a/src/common/userspace-probe.c +++ b/src/common/userspace-probe.c @@ -1212,11 +1212,14 @@ int lttng_userspace_probe_location_function_create_from_payload( binary_path_src = function_name_src + location_function_comm->function_name_len; - if (function_name_src[location_function_comm->function_name_len - 1] != '\0') { + if (lttng_buffer_view_contains_string(&view->buffer, function_name_src, + location_function_comm->function_name_len)) { ret = -LTTNG_ERR_INVALID; goto end; } - if (binary_path_src[location_function_comm->binary_path_len - 1] != '\0') { + + if (lttng_buffer_view_contains_string(&view->buffer, binary_path_src, + location_function_comm->binary_path_len)) { ret = -LTTNG_ERR_INVALID; goto end; } @@ -1300,17 +1303,20 @@ int lttng_userspace_probe_location_tracepoint_create_from_payload( binary_path_src = provider_name_src + location_tracepoint_comm->provider_name_len; - if (probe_name_src[location_tracepoint_comm->probe_name_len - 1] != '\0') { + if (lttng_buffer_view_contains_string(&view->buffer, probe_name_src, + location_tracepoint_comm->probe_name_len)) { ret = -LTTNG_ERR_INVALID; goto end; } - if (provider_name_src[location_tracepoint_comm->provider_name_len - 1] != '\0') { + if (lttng_buffer_view_contains_string(&view->buffer, provider_name_src, + location_tracepoint_comm->provider_name_len)) { ret = -LTTNG_ERR_INVALID; goto end; } - if (binary_path_src[location_tracepoint_comm->binary_path_len - 1] != '\0') { + if (lttng_buffer_view_contains_string(&view->buffer, binary_path_src, + location_tracepoint_comm->binary_path_len)) { ret = -LTTNG_ERR_INVALID; goto end; }