netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [iproute PATCH v2 0/3] Covscan: Fixes for obvious programming mistakes
@ 2017-08-17 17:09 Phil Sutter
  2017-08-17 17:09 ` [iproute PATCH v2 1/3] iproute_lwtunnel: csum_mode value checking was ineffective Phil Sutter
                   ` (3 more replies)
  0 siblings, 4 replies; 7+ messages in thread
From: Phil Sutter @ 2017-08-17 17:09 UTC (permalink / raw)
  To: Stephen Hemminger; +Cc: netdev

This series collects those patches from v1 which are clear programming
flaws.

No changes to the actual patches, just splitting into smaller series.

Phil Sutter (3):
  iproute_lwtunnel: csum_mode value checking was ineffective
  iproute_lwtunnel: Argument to strerror must be positive
  tipc/node: Fix socket fd check in cmd_node_get_addr()

 ip/iproute_lwtunnel.c | 9 +++++----
 tipc/node.c           | 3 ++-
 2 files changed, 7 insertions(+), 5 deletions(-)

-- 
2.13.1

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

* [iproute PATCH v2 1/3] iproute_lwtunnel: csum_mode value checking was ineffective
  2017-08-17 17:09 [iproute PATCH v2 0/3] Covscan: Fixes for obvious programming mistakes Phil Sutter
@ 2017-08-17 17:09 ` Phil Sutter
  2017-08-17 17:09 ` [iproute PATCH v2 2/3] iproute_lwtunnel: Argument to strerror must be positive Phil Sutter
                   ` (2 subsequent siblings)
  3 siblings, 0 replies; 7+ messages in thread
From: Phil Sutter @ 2017-08-17 17:09 UTC (permalink / raw)
  To: Stephen Hemminger; +Cc: netdev

ila_csum_name2mode() returning -1 on error but being declared as
returning __u8 doesn't make much sense. Change the code to correctly
detect this issue. Checking for __u8 overruns shouldn't be necessary
though since ila_csum_name2mode() return values are well-defined.

Signed-off-by: Phil Sutter <phil@nwl.cc>
---
 ip/iproute_lwtunnel.c | 7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)

diff --git a/ip/iproute_lwtunnel.c b/ip/iproute_lwtunnel.c
index 5c0c7d110d23e..398ab5e077ed8 100644
--- a/ip/iproute_lwtunnel.c
+++ b/ip/iproute_lwtunnel.c
@@ -171,7 +171,7 @@ static char *ila_csum_mode2name(__u8 csum_mode)
 	}
 }
 
-static __u8 ila_csum_name2mode(char *name)
+static int ila_csum_name2mode(char *name)
 {
 	if (strcmp(name, "adj-transport") == 0)
 		return ILA_CSUM_ADJUST_TRANSPORT;
@@ -517,7 +517,7 @@ static int parse_encap_ila(struct rtattr *rta, size_t len,
 
 	while (argc > 0) {
 		if (strcmp(*argv, "csum-mode") == 0) {
-			__u8 csum_mode;
+			int csum_mode;
 
 			NEXT_ARG();
 
@@ -526,7 +526,8 @@ static int parse_encap_ila(struct rtattr *rta, size_t len,
 				invarg("\"csum-mode\" value is invalid\n",
 				       *argv);
 
-			rta_addattr8(rta, 1024, ILA_ATTR_CSUM_MODE, csum_mode);
+			rta_addattr8(rta, 1024, ILA_ATTR_CSUM_MODE,
+				     (__u8)csum_mode);
 
 			argc--; argv++;
 		} else {
-- 
2.13.1

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

* [iproute PATCH v2 2/3] iproute_lwtunnel: Argument to strerror must be positive
  2017-08-17 17:09 [iproute PATCH v2 0/3] Covscan: Fixes for obvious programming mistakes Phil Sutter
  2017-08-17 17:09 ` [iproute PATCH v2 1/3] iproute_lwtunnel: csum_mode value checking was ineffective Phil Sutter
@ 2017-08-17 17:09 ` Phil Sutter
  2017-08-18  9:21   ` David Laight
  2017-08-17 17:09 ` [iproute PATCH v2 3/3] tipc/node: Fix socket fd check in cmd_node_get_addr() Phil Sutter
  2017-08-18 16:15 ` [iproute PATCH v2 0/3] Covscan: Fixes for obvious programming mistakes Stephen Hemminger
  3 siblings, 1 reply; 7+ messages in thread
From: Phil Sutter @ 2017-08-17 17:09 UTC (permalink / raw)
  To: Stephen Hemminger; +Cc: netdev

Signed-off-by: Phil Sutter <phil@nwl.cc>
---
 ip/iproute_lwtunnel.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/ip/iproute_lwtunnel.c b/ip/iproute_lwtunnel.c
index 398ab5e077ed8..1a3dc4d4c0ed9 100644
--- a/ip/iproute_lwtunnel.c
+++ b/ip/iproute_lwtunnel.c
@@ -643,7 +643,7 @@ static int lwt_parse_bpf(struct rtattr *rta, size_t len,
 	err = bpf_parse_common(bpf_type, &cfg, &bpf_cb_ops, &x);
 	if (err < 0) {
 		fprintf(stderr, "Failed to parse eBPF program: %s\n",
-			strerror(err));
+			strerror(-err));
 		return -1;
 	}
 	rta_nest_end(rta, nest);
-- 
2.13.1

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

* [iproute PATCH v2 3/3] tipc/node: Fix socket fd check in cmd_node_get_addr()
  2017-08-17 17:09 [iproute PATCH v2 0/3] Covscan: Fixes for obvious programming mistakes Phil Sutter
  2017-08-17 17:09 ` [iproute PATCH v2 1/3] iproute_lwtunnel: csum_mode value checking was ineffective Phil Sutter
  2017-08-17 17:09 ` [iproute PATCH v2 2/3] iproute_lwtunnel: Argument to strerror must be positive Phil Sutter
@ 2017-08-17 17:09 ` Phil Sutter
  2017-08-18 16:15 ` [iproute PATCH v2 0/3] Covscan: Fixes for obvious programming mistakes Stephen Hemminger
  3 siblings, 0 replies; 7+ messages in thread
From: Phil Sutter @ 2017-08-17 17:09 UTC (permalink / raw)
  To: Stephen Hemminger; +Cc: netdev

socket() returns -1 on error, not 0.

Signed-off-by: Phil Sutter <phil@nwl.cc>
---
 tipc/node.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/tipc/node.c b/tipc/node.c
index 201fe1a4df3bd..fe085aec9b4ac 100644
--- a/tipc/node.c
+++ b/tipc/node.c
@@ -109,7 +109,8 @@ static int cmd_node_get_addr(struct nlmsghdr *nlh, const struct cmd *cmd,
 	socklen_t sz = sizeof(struct sockaddr_tipc);
 	struct sockaddr_tipc addr;
 
-	if (!(sk = socket(AF_TIPC, SOCK_RDM, 0))) {
+	sk = socket(AF_TIPC, SOCK_RDM, 0);
+	if (sk < 0) {
 		fprintf(stderr, "opening TIPC socket: %s\n", strerror(errno));
 		return -1;
 	}
-- 
2.13.1

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

* RE: [iproute PATCH v2 2/3] iproute_lwtunnel: Argument to strerror must be positive
  2017-08-17 17:09 ` [iproute PATCH v2 2/3] iproute_lwtunnel: Argument to strerror must be positive Phil Sutter
@ 2017-08-18  9:21   ` David Laight
  2017-08-18 11:21     ` Phil Sutter
  0 siblings, 1 reply; 7+ messages in thread
From: David Laight @ 2017-08-18  9:21 UTC (permalink / raw)
  To: 'Phil Sutter', Stephen Hemminger; +Cc: netdev@vger.kernel.org

From: Phil Sutter
> Sent: 17 August 2017 18:10
> Signed-off-by: Phil Sutter <phil@nwl.cc>
> ---
>  ip/iproute_lwtunnel.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/ip/iproute_lwtunnel.c b/ip/iproute_lwtunnel.c
> index 398ab5e077ed8..1a3dc4d4c0ed9 100644
> --- a/ip/iproute_lwtunnel.c
> +++ b/ip/iproute_lwtunnel.c
> @@ -643,7 +643,7 @@ static int lwt_parse_bpf(struct rtattr *rta, size_t len,
>  	err = bpf_parse_common(bpf_type, &cfg, &bpf_cb_ops, &x);
>  	if (err < 0) {
>  		fprintf(stderr, "Failed to parse eBPF program: %s\n",
> -			strerror(err));
> +			strerror(-err));

If we are in userspace I'd expect errno values to be +ve.
Returning a -ve errno is very non-standard.

	David

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

* Re: [iproute PATCH v2 2/3] iproute_lwtunnel: Argument to strerror must be positive
  2017-08-18  9:21   ` David Laight
@ 2017-08-18 11:21     ` Phil Sutter
  0 siblings, 0 replies; 7+ messages in thread
From: Phil Sutter @ 2017-08-18 11:21 UTC (permalink / raw)
  To: David Laight; +Cc: Stephen Hemminger, netdev@vger.kernel.org

On Fri, Aug 18, 2017 at 09:21:34AM +0000, David Laight wrote:
> From: Phil Sutter
> > Sent: 17 August 2017 18:10
> > Signed-off-by: Phil Sutter <phil@nwl.cc>
> > ---
> >  ip/iproute_lwtunnel.c | 2 +-
> >  1 file changed, 1 insertion(+), 1 deletion(-)
> > 
> > diff --git a/ip/iproute_lwtunnel.c b/ip/iproute_lwtunnel.c
> > index 398ab5e077ed8..1a3dc4d4c0ed9 100644
> > --- a/ip/iproute_lwtunnel.c
> > +++ b/ip/iproute_lwtunnel.c
> > @@ -643,7 +643,7 @@ static int lwt_parse_bpf(struct rtattr *rta, size_t len,
> >  	err = bpf_parse_common(bpf_type, &cfg, &bpf_cb_ops, &x);
> >  	if (err < 0) {
> >  		fprintf(stderr, "Failed to parse eBPF program: %s\n",
> > -			strerror(err));
> > +			strerror(-err));
> 
> If we are in userspace I'd expect errno values to be +ve.
> Returning a -ve errno is very non-standard.

This is because bpf_parse() returns the number of instructions parsed or
a negative return code. We could change it to return instructions * -1
or a positive return code, but that's even more insane than calling
strerror(-err), isn't it?

Cheers, Phil

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

* Re: [iproute PATCH v2 0/3] Covscan: Fixes for obvious programming mistakes
  2017-08-17 17:09 [iproute PATCH v2 0/3] Covscan: Fixes for obvious programming mistakes Phil Sutter
                   ` (2 preceding siblings ...)
  2017-08-17 17:09 ` [iproute PATCH v2 3/3] tipc/node: Fix socket fd check in cmd_node_get_addr() Phil Sutter
@ 2017-08-18 16:15 ` Stephen Hemminger
  3 siblings, 0 replies; 7+ messages in thread
From: Stephen Hemminger @ 2017-08-18 16:15 UTC (permalink / raw)
  To: Phil Sutter; +Cc: netdev

On Thu, 17 Aug 2017 19:09:29 +0200
Phil Sutter <phil@nwl.cc> wrote:

> This series collects those patches from v1 which are clear programming
> flaws.
> 
> No changes to the actual patches, just splitting into smaller series.
> 
> Phil Sutter (3):
>   iproute_lwtunnel: csum_mode value checking was ineffective
>   iproute_lwtunnel: Argument to strerror must be positive
>   tipc/node: Fix socket fd check in cmd_node_get_addr()
> 
>  ip/iproute_lwtunnel.c | 9 +++++----
>  tipc/node.c           | 3 ++-
>  2 files changed, 7 insertions(+), 5 deletions(-)
> 

Accepted.

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

end of thread, other threads:[~2017-08-18 16:15 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2017-08-17 17:09 [iproute PATCH v2 0/3] Covscan: Fixes for obvious programming mistakes Phil Sutter
2017-08-17 17:09 ` [iproute PATCH v2 1/3] iproute_lwtunnel: csum_mode value checking was ineffective Phil Sutter
2017-08-17 17:09 ` [iproute PATCH v2 2/3] iproute_lwtunnel: Argument to strerror must be positive Phil Sutter
2017-08-18  9:21   ` David Laight
2017-08-18 11:21     ` Phil Sutter
2017-08-17 17:09 ` [iproute PATCH v2 3/3] tipc/node: Fix socket fd check in cmd_node_get_addr() Phil Sutter
2017-08-18 16:15 ` [iproute PATCH v2 0/3] Covscan: Fixes for obvious programming mistakes Stephen Hemminger

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