2
0
mirror of https://github.com/openvswitch/ovs synced 2025-08-31 06:15:47 +00:00

dpif-linux: Fix a bug.

Commit da546e0 (dpif: Allow execute to modify the packet.) introduced
a bug by subtracting the zero-value ofpbuf size by "sizeof(struct
nlattr)" and assigning the result back to the ofpbuf size.  This bug
causes the ovs-assert failure in facet_push_stats().

This commit fixes the bug by assigning the right value to the ofpbuf
size.

Signed-off-by: Alex Wang <alexw@nicira.com>
Acked-by: Jarno Rajahalme <jrajahalme@nicira.com>
This commit is contained in:
Alex Wang
2013-12-17 16:16:24 +00:00
committed by Jarno Rajahalme
parent 8119625482
commit c3ee8a0a19

View File

@@ -1473,7 +1473,7 @@ parse_odp_packet(struct ofpbuf *buf, struct dpif_upcall *upcall,
nl_attr_get_size(a[OVS_PACKET_ATTR_PACKET]) +
sizeof(struct nlattr));
upcall->packet.data = (char *)upcall->packet.data + sizeof(struct nlattr);
upcall->packet.size -= sizeof(struct nlattr);
upcall->packet.size = nl_attr_get_size(a[OVS_PACKET_ATTR_PACKET]);
*dp_ifindex = ovs_header->dp_ifindex;