2
0
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:
Ben Pfaff
2012-12-21 14:11:29 -08:00
parent b0aa8146bf
commit 3bdc692b04

View File

@@ -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;