X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=lib%2Fdpif-linux.c;h=ac20ae7540c1c9a560fed698cddee12d015a90f7;hb=8d71683b7632b5b621dd21418bf33ff90865b4e0;hp=39acc9aa8f5d0eb87d3f4a2e68ea67a29c2752b7;hpb=12d7685905026b090868056c4d19ee866b6dbe5d;p=sliver-openvswitch.git diff --git a/lib/dpif-linux.c b/lib/dpif-linux.c index 39acc9aa8..ac20ae754 100644 --- a/lib/dpif-linux.c +++ b/lib/dpif-linux.c @@ -337,6 +337,7 @@ add_channel(struct dpif_linux *dpif, uint32_t port_no, struct nl_sock *sock) return errno; } + nl_sock_destroy(dpif->channels[port_no].sock); dpif->channels[port_no].sock = sock; dpif->channels[port_no].last_poll = LLONG_MIN; @@ -794,7 +795,7 @@ static void dpif_linux_init_flow_put(struct dpif *dpif_, const struct dpif_flow_put *put, struct dpif_linux_flow *request) { - static struct nlattr dummy_action; + static const struct nlattr dummy_action; struct dpif_linux *dpif = dpif_linux_cast(dpif_); @@ -805,7 +806,9 @@ dpif_linux_init_flow_put(struct dpif *dpif_, const struct dpif_flow_put *put, request->key = put->key; request->key_len = put->key_len; /* Ensure that OVS_FLOW_ATTR_ACTIONS will always be included. */ - request->actions = put->actions ? put->actions : &dummy_action; + request->actions = (put->actions + ? put->actions + : CONST_CAST(struct nlattr *, &dummy_action)); request->actions_len = put->actions_len; if (put->flags & DPIF_FP_ZERO_STATS) { request->clear = true;