From: Jérémie Galarneau Date: Mon, 4 Oct 2021 16:41:51 +0000 (-0400) Subject: Fix: userspace-probe: unreported error on string copy error X-Git-Tag: v2.13.1~11 X-Git-Url: https://git.liburcu.org/?p=lttng-tools.git;a=commitdiff_plain;h=8434f919e7b4db73116fedd90df78fe74c6b4d7d Fix: userspace-probe: unreported error on string copy error Issue ===== String copy errors, either due to the length or an allocation failure, are not reported by lttng_userspace_probe_location_tracepoint_create_from_payload and don't log a clear error message. This allowed truncation bugs like the one fixed in b45a296 to go unnoticed. Fix === Return an "invalid" status code and log a more descriptive error message. Signed-off-by: Jérémie Galarneau Change-Id: Ia07cac7cba315ea79337262e9082dd06eb60950f --- diff --git a/src/common/userspace-probe.c b/src/common/userspace-probe.c index 5b79f9728..1c46f7c48 100644 --- a/src/common/userspace-probe.c +++ b/src/common/userspace-probe.c @@ -1382,18 +1382,21 @@ int lttng_userspace_probe_location_tracepoint_create_from_payload( probe_name = lttng_strndup(probe_name_src, LTTNG_SYMBOL_NAME_LEN); if (!probe_name) { - PERROR("lttng_strndup"); + PERROR("Failed to allocate probe name"); + ret = -LTTNG_ERR_INVALID; goto end; } provider_name = lttng_strndup(provider_name_src, LTTNG_SYMBOL_NAME_LEN); if (!provider_name) { - PERROR("lttng_strndup"); + PERROR("Failed to allocate provider name"); + ret = -LTTNG_ERR_INVALID; goto end; } binary_path = lttng_strndup(binary_path_src, LTTNG_PATH_MAX); if (!binary_path) { - PERROR("lttng_strndup"); + PERROR("Failed to allocate binary path"); + ret = -LTTNG_ERR_INVALID; goto end; }