linux-trace-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v2] tracing: Consider the NULL character when validating the event length
@ 2024-10-07 14:47 Leo Yan
  2024-10-07 15:43 ` Steven Rostedt
  2024-10-10 15:15 ` Masami Hiramatsu
  0 siblings, 2 replies; 3+ messages in thread
From: Leo Yan @ 2024-10-07 14:47 UTC (permalink / raw)
  To: Steven Rostedt, Masami Hiramatsu, Mathieu Desnoyers, Dave.Martin,
	linux-kernel, linux-trace-kernel
  Cc: Leo Yan

strlen() returns a string length excluding the null byte. If the string
length equals to the maximum buffer length, the buffer will have no
space for the NULL terminating character.

This commit checks this condition and returns failure for it.

Fixes: dec65d79fd26 ("tracing/probe: Check event name length correctly")
Signed-off-by: Leo Yan <leo.yan@arm.com>
---

Changes from v1:
Refined for condition checking (Steve).

 kernel/trace/trace_probe.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/kernel/trace/trace_probe.c b/kernel/trace/trace_probe.c
index 39877c80d6cb..16a5e368e7b7 100644
--- a/kernel/trace/trace_probe.c
+++ b/kernel/trace/trace_probe.c
@@ -276,7 +276,7 @@ int traceprobe_parse_event_name(const char **pevent, const char **pgroup,
 		}
 		trace_probe_log_err(offset, NO_EVENT_NAME);
 		return -EINVAL;
-	} else if (len > MAX_EVENT_NAME_LEN) {
+	} else if (len >= MAX_EVENT_NAME_LEN) {
 		trace_probe_log_err(offset, EVENT_TOO_LONG);
 		return -EINVAL;
 	}
-- 
2.34.1


^ permalink raw reply related	[flat|nested] 3+ messages in thread

* Re: [PATCH v2] tracing: Consider the NULL character when validating the event length
  2024-10-07 14:47 [PATCH v2] tracing: Consider the NULL character when validating the event length Leo Yan
@ 2024-10-07 15:43 ` Steven Rostedt
  2024-10-10 15:15 ` Masami Hiramatsu
  1 sibling, 0 replies; 3+ messages in thread
From: Steven Rostedt @ 2024-10-07 15:43 UTC (permalink / raw)
  To: Leo Yan
  Cc: Masami Hiramatsu, Mathieu Desnoyers, Dave.Martin, linux-kernel,
	linux-trace-kernel

On Mon,  7 Oct 2024 15:47:24 +0100
Leo Yan <leo.yan@arm.com> wrote:

> strlen() returns a string length excluding the null byte. If the string
> length equals to the maximum buffer length, the buffer will have no
> space for the NULL terminating character.
> 
> This commit checks this condition and returns failure for it.
> 
> Fixes: dec65d79fd26 ("tracing/probe: Check event name length correctly")
> Signed-off-by: Leo Yan <leo.yan@arm.com>

Reviewed-by: Steven Rostedt (Google) <rostedt@goodmis.org>

Masami, want to take this?

-- Steve

> ---
> 
> Changes from v1:
> Refined for condition checking (Steve).
> 
>  kernel/trace/trace_probe.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/kernel/trace/trace_probe.c b/kernel/trace/trace_probe.c
> index 39877c80d6cb..16a5e368e7b7 100644
> --- a/kernel/trace/trace_probe.c
> +++ b/kernel/trace/trace_probe.c
> @@ -276,7 +276,7 @@ int traceprobe_parse_event_name(const char **pevent, const char **pgroup,
>  		}
>  		trace_probe_log_err(offset, NO_EVENT_NAME);
>  		return -EINVAL;
> -	} else if (len > MAX_EVENT_NAME_LEN) {
> +	} else if (len >= MAX_EVENT_NAME_LEN) {
>  		trace_probe_log_err(offset, EVENT_TOO_LONG);
>  		return -EINVAL;
>  	}


^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [PATCH v2] tracing: Consider the NULL character when validating the event length
  2024-10-07 14:47 [PATCH v2] tracing: Consider the NULL character when validating the event length Leo Yan
  2024-10-07 15:43 ` Steven Rostedt
@ 2024-10-10 15:15 ` Masami Hiramatsu
  1 sibling, 0 replies; 3+ messages in thread
From: Masami Hiramatsu @ 2024-10-10 15:15 UTC (permalink / raw)
  To: Leo Yan
  Cc: Steven Rostedt, Mathieu Desnoyers, Dave.Martin, linux-kernel,
	linux-trace-kernel

On Mon,  7 Oct 2024 15:47:24 +0100
Leo Yan <leo.yan@arm.com> wrote:

> strlen() returns a string length excluding the null byte. If the string
> length equals to the maximum buffer length, the buffer will have no
> space for the NULL terminating character.
> 
> This commit checks this condition and returns failure for it.
> 

Ah, good catch! The traceprobe_parse_event_name() requires
MAX_EVENT_NAME_LEN buffer.

----
/* @buf must has MAX_EVENT_NAME_LEN size */
int traceprobe_parse_event_name(const char **pevent, const char **pgroup,
----

But the macro name is a bit confusing. We may need below and use it around.

#define EVENT_NAME_BUFSIZE (MAX_EVENT_NAME_LEN + 1)

Anyway, I think this fix is correct.

Acked-by: Masami Hiramatsu (Google) <mhiramat@kernel.org>

Thank you,

> Fixes: dec65d79fd26 ("tracing/probe: Check event name length correctly")
> Signed-off-by: Leo Yan <leo.yan@arm.com>
> ---
> 
> Changes from v1:
> Refined for condition checking (Steve).
> 
>  kernel/trace/trace_probe.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/kernel/trace/trace_probe.c b/kernel/trace/trace_probe.c
> index 39877c80d6cb..16a5e368e7b7 100644
> --- a/kernel/trace/trace_probe.c
> +++ b/kernel/trace/trace_probe.c
> @@ -276,7 +276,7 @@ int traceprobe_parse_event_name(const char **pevent, const char **pgroup,
>  		}
>  		trace_probe_log_err(offset, NO_EVENT_NAME);
>  		return -EINVAL;
> -	} else if (len > MAX_EVENT_NAME_LEN) {
> +	} else if (len >= MAX_EVENT_NAME_LEN) {
>  		trace_probe_log_err(offset, EVENT_TOO_LONG);
>  		return -EINVAL;
>  	}
> -- 
> 2.34.1
> 


-- 
Masami Hiramatsu (Google) <mhiramat@kernel.org>

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2024-10-10 15:15 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-10-07 14:47 [PATCH v2] tracing: Consider the NULL character when validating the event length Leo Yan
2024-10-07 15:43 ` Steven Rostedt
2024-10-10 15:15 ` Masami Hiramatsu

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).