This patch sets *typep to an empty string instead of letting it uninitialized when no QoS configuration is set.
It fixes the following vswitchd crash when no QoS has been set on vhost-user interface: $> ovs-appctl -t ovs-vswitchd qos/show vhost-user1 #0 0x00007efcbadf18d7 in raise () from /lib64/libc.so.6 #1 0x00007efcbadf353a in abort () from /lib64/libc.so.6 #2 0x000000000068d5be in ovs_abort_valist at lib/util.c:335 #3 0x0000000000693d90 in vlog_abort_valist at lib/vlog.c:1204 #4 0x0000000000693e17 in vlog_abort at lib/vlog.c:1218 #5 0x000000000068d3ae in ovs_assert_failure at lib/util.c:72 #6 0x000000000060425c in ds_put_format_valist at lib/dynamic-string.c:168 #7 0x00000000006042e7 in ds_put_format at lib/dynamic-string.c:142 #8 0x00000000005a9e75 in qos_unixctl_show at vswitchd/bridge.c:3185 #9 0x000000000068cda1 in process_command at lib/unixctl.c:347 #11 unixctl_server_run at lib/unixctl.c:400 #12 0x000000000040a3ff in main at vswitchd/ovs-vswitchd.c:113 Signed-off-by: Maxime Coquelin <maxime.coque...@redhat.com> --- lib/netdev-dpdk.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/lib/netdev-dpdk.c b/lib/netdev-dpdk.c index a0d541a..159fe73 100644 --- a/lib/netdev-dpdk.c +++ b/lib/netdev-dpdk.c @@ -2680,6 +2680,9 @@ netdev_dpdk_get_qos(const struct netdev *netdev, *typep = dev->qos_conf->ops->qos_name; error = (dev->qos_conf->ops->qos_get ? dev->qos_conf->ops->qos_get(netdev, details): 0); + } else { + /* No QoS configuration set, return an empty string */ + *typep = ""; } ovs_mutex_unlock(&dev->mutex); -- 2.7.4 _______________________________________________ dev mailing list dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev