[patch 16/45] PKT_SCHED: Fix error handling while dumping actions

Greg KH
2006-07-17T16:45:55Z

[-- Attachment #1: pkt_sched-fix-error-handling-while-dumping-actions.patch --]
[-- Type: text/plain, Size: 1199 bytes --]

-stable review patch. If anyone has any objections, please let us know.

------------------
From: Thomas Graf <tgraf@suug.ch>

"return -err" and blindly inheriting the error code in the netlink
failure exception handler causes errors codes to be returned as
positive value therefore making them being ignored by the caller.

May lead to sending out incomplete netlink messages.

Signed-off-by: Thomas Graf <tgraf@suug.ch>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Chris Wright <chrisw@sous-sol.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
---
net/sched/act_api.c | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)

--- linux-2.6.17.3.orig/net/sched/act_api.c
+++ linux-2.6.17.3/net/sched/act_api.c
@@ -251,15 +251,17 @@ tcf_action_dump(struct sk_buff *skb, str
RTA_PUT(skb, a->order, 0, NULL);
err = tcf_action_dump_1(skb, a, bind, ref);
if (err < 0)
- goto rtattr_failure;
+ goto errout;
r->rta_len = skb->tail - (u8*)r;
}

return 0;

rtattr_failure:
+ err = -EINVAL;
+errout:
skb_trim(skb, b - skb->data);
- return -err;
+ return err;
}

struct tc_action *tcf_action_init_1(struct rtattr *rta, struct rtattr *est,

--