diff mbox series

[v3] tracing/eprobe: no need to check for negative ret value for snprintf

Message ID 20230109040625.3259642-1-quanfafu@gmail.com (mailing list archive)
State Accepted
Commit c96abaec78f34366b3ddf1c6be52ca5c1241e15b
Delegated to: Masami Hiramatsu
Headers show
Series [v3] tracing/eprobe: no need to check for negative ret value for snprintf | expand

Commit Message

Quanfa Fu Jan. 9, 2023, 4:06 a.m. UTC
No need to check for negative return value from snprintf() as the
code does not return negative values.

Signed-off-by: Quanfa Fu <quanfafu@gmail.com>

-----
V2 -> V3: continue to use snprintf
V1 -> V2: memory allc uses kzalloc and replace snprintf with memcpy
---
 kernel/trace/trace_eprobe.c | 12 ++++--------
 1 file changed, 4 insertions(+), 8 deletions(-)

Comments

Masami Hiramatsu (Google) Jan. 9, 2023, 2:59 p.m. UTC | #1
On Mon,  9 Jan 2023 12:06:25 +0800
Quanfa Fu <quanfafu@gmail.com> wrote:

> No need to check for negative return value from snprintf() as the
> code does not return negative values.
> 

Thanks for simplifying, this looks good to me.

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

> Signed-off-by: Quanfa Fu <quanfafu@gmail.com>
> 
> -----
> V2 -> V3: continue to use snprintf
> V1 -> V2: memory allc uses kzalloc and replace snprintf with memcpy
> ---
>  kernel/trace/trace_eprobe.c | 12 ++++--------
>  1 file changed, 4 insertions(+), 8 deletions(-)
> 
> diff --git a/kernel/trace/trace_eprobe.c b/kernel/trace/trace_eprobe.c
> index 352b65e2b910..594ac1d086aa 100644
> --- a/kernel/trace/trace_eprobe.c
> +++ b/kernel/trace/trace_eprobe.c
> @@ -923,17 +923,13 @@ static int trace_eprobe_parse_filter(struct trace_eprobe *ep, int argc, const ch
>  
>  	p = ep->filter_str;
>  	for (i = 0; i < argc; i++) {
> -		ret = snprintf(p, len, "%s ", argv[i]);
> -		if (ret < 0)
> -			goto error;
> -		if (ret > len) {
> -			ret = -E2BIG;
> -			goto error;
> -		}
> +		if (i)
> +			ret = snprintf(p, len, " %s", argv[i]);
> +		else
> +			ret = snprintf(p, len, "%s", argv[i]);
>  		p += ret;
>  		len -= ret;
>  	}
> -	p[-1] = '\0';
>  
>  	/*
>  	 * Ensure the filter string can be parsed correctly. Note, this
> -- 
> 2.31.1
>
Steven Rostedt Jan. 9, 2023, 3:12 p.m. UTC | #2
On Mon, 9 Jan 2023 23:59:13 +0900
Masami Hiramatsu (Google) <mhiramat@kernel.org> wrote:

> On Mon,  9 Jan 2023 12:06:25 +0800
> Quanfa Fu <quanfafu@gmail.com> wrote:
> 
> > No need to check for negative return value from snprintf() as the
> > code does not return negative values.
> >   
> 
> Thanks for simplifying, this looks good to me.
> 
> Acked-by: Masami Hiramatsu (Google) <mhiramat@kernel.org>

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

Masami, do you want to take it into the probes branch, or do you want me to
take it into the tracing branch?

-- Steve


> 
> > Signed-off-by: Quanfa Fu <quanfafu@gmail.com>
> >
Masami Hiramatsu (Google) Jan. 10, 2023, 12:29 a.m. UTC | #3
On Mon, 9 Jan 2023 10:12:26 -0500
Steven Rostedt <rostedt@goodmis.org> wrote:

> On Mon, 9 Jan 2023 23:59:13 +0900
> Masami Hiramatsu (Google) <mhiramat@kernel.org> wrote:
> 
> > On Mon,  9 Jan 2023 12:06:25 +0800
> > Quanfa Fu <quanfafu@gmail.com> wrote:
> > 
> > > No need to check for negative return value from snprintf() as the
> > > code does not return negative values.
> > >   
> > 
> > Thanks for simplifying, this looks good to me.
> > 
> > Acked-by: Masami Hiramatsu (Google) <mhiramat@kernel.org>
> 
> Reviewed-by: Steven Rostedt (Google) <rostedt@goodmis.org>
> 
> Masami, do you want to take it into the probes branch, or do you want me to
> take it into the tracing branch?

Yes, I'll take it to probe/for-next.

Thank you!

> 
> -- Steve
> 
> 
> > 
> > > Signed-off-by: Quanfa Fu <quanfafu@gmail.com>
> > >
diff mbox series

Patch

diff --git a/kernel/trace/trace_eprobe.c b/kernel/trace/trace_eprobe.c
index 352b65e2b910..594ac1d086aa 100644
--- a/kernel/trace/trace_eprobe.c
+++ b/kernel/trace/trace_eprobe.c
@@ -923,17 +923,13 @@  static int trace_eprobe_parse_filter(struct trace_eprobe *ep, int argc, const ch
 
 	p = ep->filter_str;
 	for (i = 0; i < argc; i++) {
-		ret = snprintf(p, len, "%s ", argv[i]);
-		if (ret < 0)
-			goto error;
-		if (ret > len) {
-			ret = -E2BIG;
-			goto error;
-		}
+		if (i)
+			ret = snprintf(p, len, " %s", argv[i]);
+		else
+			ret = snprintf(p, len, "%s", argv[i]);
 		p += ret;
 		len -= ret;
 	}
-	p[-1] = '\0';
 
 	/*
 	 * Ensure the filter string can be parsed correctly. Note, this