mirror of
https://github.com/openvswitch/ovs
synced 2025-08-30 22:05:19 +00:00
ipf: Fix a use-after-free error, and remove the 'do_not_steal' flag.
As reported by Wang Liang, the way packets are passed to the ipf module doesn't allow for use later on in reassembly. Such packets may be get released anyway, such as during cleanup of tx processing. Because the ipf module lacks a way of forcing the dp_packet to be retained, it will later reuse the packet. Instead, just clone the packet and let the ipf queue own the copy until the queue is destroyed. After this change, there are no more in-tree users of the batch 'do_not_steal' flag. Thus, we remove it as well. Fixes:4ea96698f6
("Userspace datapath: Add fragmentation handling.") Fixes:0b3ff31d35
("dp-packet: Add 'do_not_steal' packet batch flag.") Reported-at: https://mail.openvswitch.org/pipermail/ovs-dev/2021-April/382098.html Reported-by: Wang Liang <wangliangrt@didiglobal.com> Signed-off-by: Aaron Conole <aconole@redhat.com> Co-authored-by: Wang Liang <wangliangrt@didiglobal.com> Signed-off-by: Wang Liang <wangliangrt@didiglobal.com> Signed-off-by: Ilya Maximets <i.maximets@ovn.org>
This commit is contained in:
committed by
Ilya Maximets
parent
2afe31169a
commit
640d4db788
@@ -4169,7 +4169,6 @@ dpif_netdev_execute(struct dpif *dpif, struct dpif_execute *execute)
|
||||
}
|
||||
|
||||
dp_packet_batch_init_packet(&pp, execute->packet);
|
||||
pp.do_not_steal = true;
|
||||
dp_netdev_execute_actions(pmd, &pp, false, execute->flow,
|
||||
execute->actions, execute->actions_len);
|
||||
dp_netdev_pmd_flush_output_packets(pmd, true);
|
||||
|
Reference in New Issue
Block a user