projects
/
openvswitch
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
| inline |
side by side
(from parent 1:
d7f1e2b
)
Fix memory leak when OFPP_TABLE is used for a packet that matches no flow.
author
Ben Pfaff
<blp@nicira.com>
Tue, 5 Aug 2008 21:35:26 +0000
(14:35 -0700)
committer
Ben Pfaff
<blp@nicira.com>
Thu, 7 Aug 2008 17:23:06 +0000
(10:23 -0700)
datapath/datapath.c
patch
|
blob
|
history
switch/datapath.c
patch
|
blob
|
history
diff --git
a/datapath/datapath.c
b/datapath/datapath.c
index 193a4526da5957ccc5af519750f7289a264d4bd7..28da3bb706a03437ec45b16ed5afa42b2467c63e 100644
(file)
--- a/
datapath/datapath.c
+++ b/
datapath/datapath.c
@@
-554,6
+554,7
@@
int dp_output_port(struct datapath *dp, struct sk_buff *skb, int out_port)
execute_actions(dp, skb, &key, flow->actions, flow->n_actions);
return 0;
}
+ kfree_skb(skb);
return -ESRCH;
} else if (out_port == OFPP_LOCAL) {
struct net_device *dev = dp->netdev;
diff --git
a/switch/datapath.c
b/switch/datapath.c
index e1ae51860591059be4d5f7f0119818a92ce3fa37..4ec436e0aad667560ea04c61a32d5bb41252cfe5 100644
(file)
--- a/
switch/datapath.c
+++ b/
switch/datapath.c
@@
-556,6
+556,8
@@
dp_output_port(struct datapath *dp, struct buffer *buffer,
flow_used(flow, buffer);
execute_actions(dp, buffer, in_port, &key,
flow->actions, flow->n_actions);
+ } else {
+ buffer_delete(buffer);
}
} else {
output_packet(dp, buffer, out_port);