On Tue, May 01, 2018 at 05:20:31PM -0700, Yi-Hung Wei wrote:
> Currently, the revalidator thread may hit segmentation fault when geneve
> TLV map is updated.  It is because we may store the old TLV map (struct
> tun_table) in the frozen state for recirculation, and we may access the
> already freed old tun_table in xlate_actions().
> 
> This patch update the logic of getting tun_table so that we will use
> the latest tun_table instead of the frozen one.
> 
> VMWare-BZ: #2106987
> Signed-off-by: Yi-Hung Wei <yihung....@gmail.com>

If the TLV map changed, then won't replacing 'tab' by the new one cause
the packet to be misinterpreted?  If so, then it would be better to
detect the change and abort translating the packet.  I don't think we
currently have a way to tell whether the TLV map changed, so we'd need
to add one.

However, it's still better to avoid the crash, of course.  I'd like to
see a comment update that mentions the reason we're replacing the table
pointer in this case though, and (if I'm right about the above) an XXX
comment that says that it would be better to abort translation if the
table changed.

Thanks,

Ben.
_______________________________________________
dev mailing list
d...@openvswitch.org
https://mail.openvswitch.org/mailman/listinfo/ovs-dev

Reply via email to