X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=datapath%2Fdatapath.c;h=34d2c9bc2bb1df13eea46a468870f8344ef90bd2;hb=abaad8cf1b5089e17a4af0ab1ff644bfcf63cad9;hp=8de5614442ec9909e7df2b6ac908de346c91c7da;hpb=959a2ecdc8a5ffe53e74456ff6eb1ec25092db75;p=openvswitch diff --git a/datapath/datapath.c b/datapath/datapath.c index 8de56144..34d2c9bc 100644 --- a/datapath/datapath.c +++ b/datapath/datapath.c @@ -940,6 +940,7 @@ static int put_flow(struct datapath *dp, struct odp_flow_put __user *ufp) error = -EFAULT; if (copy_from_user(&uf, ufp, sizeof(struct odp_flow_put))) goto error; + memset(uf.flow.key.reserved, 0, sizeof uf.flow.key.reserved); table = rcu_dereference(dp->table); flow = dp_table_lookup(table, &uf.flow.key); @@ -1084,6 +1085,7 @@ static int del_flow(struct datapath *dp, struct odp_flow __user *ufp) error = -EFAULT; if (copy_from_user(&uf, ufp, sizeof uf)) goto error; + memset(uf.key.reserved, 0, sizeof uf.key.reserved); flow = dp_table_lookup(table, &uf.key); error = -ENOENT; @@ -1119,6 +1121,7 @@ static int query_flows(struct datapath *dp, const struct odp_flowvec *flowvec) if (__copy_from_user(&uf, ufp, sizeof uf)) return -EFAULT; + memset(uf.key.reserved, 0, sizeof uf.key.reserved); flow = dp_table_lookup(table, &uf.key); if (!flow)