From: Prasad J Pandit <p...@fedoraproject.org> eth_get_gso_type() routine returns segmentation offload type based on L3 protocol type. It calls g_assert_not_reached if L3 protocol is unknown, making the following return statement unreachable. Remove the g_assert call, it maybe triggered by a guest user.
Reported-by: Gaoning Pan <p...@zju.edu.cn> Signed-off-by: Prasad J Pandit <p...@fedoraproject.org> --- net/eth.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) Update v3: use LOG_GUEST_ERROR mask and %0x04PRIx16 conversion. -> https://lists.nongnu.org/archive/html/qemu-devel/2020-10/msg05759.html -> https://lists.nongnu.org/archive/html/qemu-devel/2020-10/msg05752.html diff --git a/net/eth.c b/net/eth.c index 0c1d413ee2..eee77071f9 100644 --- a/net/eth.c +++ b/net/eth.c @@ -16,6 +16,7 @@ */ #include "qemu/osdep.h" +#include "qemu/log.h" #include "net/eth.h" #include "net/checksum.h" #include "net/tap.h" @@ -71,9 +72,8 @@ eth_get_gso_type(uint16_t l3_proto, uint8_t *l3_hdr, uint8_t l4proto) return VIRTIO_NET_HDR_GSO_TCPV6 | ecn_state; } } - - /* Unsupported offload */ - g_assert_not_reached(); + qemu_log_mask(LOG_GUEST_ERROR, "%s: probably not GSO frame, " + "unknown L3 protocol: 0x%04"PRIx16"\n", __func__, l3_proto); return VIRTIO_NET_HDR_GSO_NONE | ecn_state; } -- 2.26.2