lttng-dev.lists.lttng.org archive mirror
 help / color / mirror / Atom feed
* [lttng-dev] [PATCH lttng-tools 1/1] Fix: Handle empty string in lttng_event_field_value_string_create_with_size
@ 2022-09-27 16:52 Mathieu Desnoyers via lttng-dev
  0 siblings, 0 replies; only message in thread
From: Mathieu Desnoyers via lttng-dev @ 2022-09-27 16:52 UTC (permalink / raw)
  To: jgalar; +Cc: lttng-dev

When using the event notification capture API, empty strings are
represented by a NULL pointer with a size=0 in the msgpack object.
The NULL pointer is unexpected, which triggers an assertion in
lttng_event_field_value_string_create_with_size.

Fix this by duplicating an empty string ("") when a size=0 is
encountered. This ensures that users of the API don't end up with an
unexpected NULL pointer. Indeed, the sample program notif-app.c in the
LTTng website documentation does not expect a NULL pointer.

Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Change-Id: I7c3a839dbbeeb95a1b3bf6ddc3205a2f6b4538e3
---
 src/common/event-field-value.cpp | 13 +++++++++++--
 1 file changed, 11 insertions(+), 2 deletions(-)

diff --git a/src/common/event-field-value.cpp b/src/common/event-field-value.cpp
index 8017fd081..fa9e97018 100644
--- a/src/common/event-field-value.cpp
+++ b/src/common/event-field-value.cpp
@@ -183,8 +183,17 @@ struct lttng_event_field_value *lttng_event_field_value_string_create_with_size(
 		goto error;
 	}
 
-	LTTNG_ASSERT(val);
-	field_val->val = strndup(val, size);
+	if (size) {
+		LTTNG_ASSERT(val);
+		field_val->val = strndup(val, size);
+	} else {
+		/*
+		 * User code (e.g. notif-app.c on lttng.org/docs) do not expect
+		 * a NULL string pointer. Populate with an empty string when
+		 * length is 0.
+		 */
+		field_val->val = strdup("");
+	}
 	if (!field_val->val) {
 		goto error;
 	}
-- 
2.25.1

_______________________________________________
lttng-dev mailing list
lttng-dev@lists.lttng.org
https://lists.lttng.org/cgi-bin/mailman/listinfo/lttng-dev

^ permalink raw reply related	[flat|nested] only message in thread

only message in thread, other threads:[~2022-09-27 16:52 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-09-27 16:52 [lttng-dev] [PATCH lttng-tools 1/1] Fix: Handle empty string in lttng_event_field_value_string_create_with_size Mathieu Desnoyers via lttng-dev

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).