[iproute2] tunnel: Return constant string without copying it

Message ID 1515779354-26684-1-git-send-email-serhe.popovych@gmail.com
State Changes Requested
Delegated to: stephen hemminger
Headers show
Series
  • [iproute2] tunnel: Return constant string without copying it
Related show

Commit Message

Serhey Popovych Jan. 12, 2018, 5:49 p.m.
We return constant string from tnl_strproto(), no need
to copy it to temporary buffer and then return such
buffer as const: return constant string instead.

Signed-off-by: Serhey Popovych <serhe.popovych@gmail.com>
---
 ip/tunnel.c |   25 +++++++------------------
 1 file changed, 7 insertions(+), 18 deletions(-)

Comments

Serhey Popovych Jan. 18, 2018, 2:08 p.m. | #1
Serhey Popovych wrote:

> We return constant string from tnl_strproto(), no need
> to copy it to temporary buffer and then return such
> buffer as const: return constant string instead.
> 
> Signed-off-by: Serhey Popovych <serhe.popovych@gmail.com>

This change should be ignored: now it is a part of series
of patches with cover letter subject:

  "ip/tunnel: Improve tunnel parameters printing"

since v2.

> ---
>  ip/tunnel.c |   25 +++++++------------------
>  1 file changed, 7 insertions(+), 18 deletions(-)
> 
> diff --git a/ip/tunnel.c b/ip/tunnel.c
> index f860103..946a36c 100644
> --- a/ip/tunnel.c
> +++ b/ip/tunnel.c
> @@ -39,33 +39,22 @@
>  
>  const char *tnl_strproto(__u8 proto)
>  {
> -	static char buf[16];
> -
>  	switch (proto) {
>  	case IPPROTO_IPIP:
> -		strcpy(buf, "ip");
> -		break;
> +		return "ip";
>  	case IPPROTO_GRE:
> -		strcpy(buf, "gre");
> -		break;
> +		return "gre";
>  	case IPPROTO_IPV6:
> -		strcpy(buf, "ipv6");
> -		break;
> +		return "ipv6";
>  	case IPPROTO_ESP:
> -		strcpy(buf, "esp");
> -		break;
> +		return "esp";
>  	case IPPROTO_MPLS:
> -		strcpy(buf, "mpls");
> -		break;
> +		return "mpls";
>  	case 0:
> -		strcpy(buf, "any");
> -		break;
> +		return "any";
>  	default:
> -		strcpy(buf, "unknown");
> -		break;
> +		return "unknown";
>  	}
> -
> -	return buf;
>  }
>  
>  int tnl_get_ioctl(const char *basedev, void *p)
>

Patch

diff --git a/ip/tunnel.c b/ip/tunnel.c
index f860103..946a36c 100644
--- a/ip/tunnel.c
+++ b/ip/tunnel.c
@@ -39,33 +39,22 @@ 
 
 const char *tnl_strproto(__u8 proto)
 {
-	static char buf[16];
-
 	switch (proto) {
 	case IPPROTO_IPIP:
-		strcpy(buf, "ip");
-		break;
+		return "ip";
 	case IPPROTO_GRE:
-		strcpy(buf, "gre");
-		break;
+		return "gre";
 	case IPPROTO_IPV6:
-		strcpy(buf, "ipv6");
-		break;
+		return "ipv6";
 	case IPPROTO_ESP:
-		strcpy(buf, "esp");
-		break;
+		return "esp";
 	case IPPROTO_MPLS:
-		strcpy(buf, "mpls");
-		break;
+		return "mpls";
 	case 0:
-		strcpy(buf, "any");
-		break;
+		return "any";
 	default:
-		strcpy(buf, "unknown");
-		break;
+		return "unknown";
 	}
-
-	return buf;
 }
 
 int tnl_get_ioctl(const char *basedev, void *p)