From: Michael Jeanson Date: Fri, 25 Sep 2020 15:23:58 +0000 (-0400) Subject: fix: Add a 1MB limit to lttng_strlen_user_inatomic X-Git-Tag: v2.12.3~7 X-Git-Url: http://git.lttng.org./?a=commitdiff_plain;h=a1ffd991c43db2a7c031ca1c5c50681a6cebdd84;p=lttng-modules.git fix: Add a 1MB limit to lttng_strlen_user_inatomic The previous implementation was unbounded which could result in long loops with preemption turned off. Signed-off-by: Michael Jeanson Signed-off-by: Mathieu Desnoyers Change-Id: I85afcd879258735bb2e7502f6016fcb2d3974cf7 --- diff --git a/probes/lttng-probe-user.c b/probes/lttng-probe-user.c index 0d1f95fe..57dd33e1 100644 --- a/probes/lttng-probe-user.c +++ b/probes/lttng-probe-user.c @@ -10,6 +10,8 @@ #include #include +#define LTTNG_MAX_USER_STRING_LEN 1048576 /* 1MB */ + /* * Calculate string length. Include final null terminating character if there is * one, or ends at first fault. Disabling page faults ensures that we can safely @@ -41,6 +43,8 @@ long lttng_strlen_user_inatomic(const char *addr) if (unlikely(ret > 0)) break; count++; + if (unlikely(count > LTTNG_MAX_USER_STRING_LEN)) + break; if (unlikely(!v)) break; addr++;