mirror of
https://github.com/openvswitch/ovs
synced 2025-08-31 06:15:47 +00:00
ofp-util: Fix uninitialized bytes in OF1.0 and OF1.1 table stats replies.
Also, use ovs_strlcpy() instead of strcpy() just to be a teensy bit safer. Found by valgrind. Bug #14357. Signed-off-by: Ben Pfaff <blp@nicira.com> Acked-by: Ethan Jackson <ethan@nicira.com>
This commit is contained in:
@@ -3482,9 +3482,9 @@ ofputil_put_ofp10_table_stats(const struct ofp12_table_stats *in,
|
||||
struct ofp10_table_stats *out;
|
||||
const struct wc_map *p;
|
||||
|
||||
out = ofpbuf_put_uninit(buf, sizeof *out);
|
||||
out = ofpbuf_put_zeros(buf, sizeof *out);
|
||||
out->table_id = in->table_id;
|
||||
strcpy(out->name, in->name);
|
||||
ovs_strlcpy(out->name, in->name, sizeof out->name);
|
||||
out->wildcards = 0;
|
||||
for (p = wc_map; p < &wc_map[ARRAY_SIZE(wc_map)]; p++) {
|
||||
if (in->wildcards & htonll(1ULL << p->mf12)) {
|
||||
@@ -3542,9 +3542,9 @@ ofputil_put_ofp11_table_stats(const struct ofp12_table_stats *in,
|
||||
{
|
||||
struct ofp11_table_stats *out;
|
||||
|
||||
out = ofpbuf_put_uninit(buf, sizeof *out);
|
||||
out = ofpbuf_put_zeros(buf, sizeof *out);
|
||||
out->table_id = in->table_id;
|
||||
strcpy(out->name, in->name);
|
||||
ovs_strlcpy(out->name, in->name, sizeof out->name);
|
||||
out->wildcards = oxm12_to_ofp11_flow_match_fields(in->wildcards);
|
||||
out->match = oxm12_to_ofp11_flow_match_fields(in->match);
|
||||
out->instructions = in->instructions;
|
||||
|
Reference in New Issue
Block a user