From: Ben Pfaff Date: Fri, 21 Dec 2012 22:11:29 +0000 (-0800) Subject: ofp-util: Fix uninitialized bytes in OF1.0 and OF1.1 table stats replies. X-Git-Tag: sliver-openvswitch-1.9.90-3~10^2~32 X-Git-Url: http://git.onelab.eu/?a=commitdiff_plain;h=3bdc692b0445b685f0dce52aedc83bd855af28a5;p=sliver-openvswitch.git 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 Acked-by: Ethan Jackson --- diff --git a/lib/ofp-util.c b/lib/ofp-util.c index db94c4ff3..9c9aaefc2 100644 --- a/lib/ofp-util.c +++ b/lib/ofp-util.c @@ -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;