From 3bdc692b0445b685f0dce52aedc83bd855af28a5 Mon Sep 17 00:00:00 2001 From: Ben Pfaff Date: Fri, 21 Dec 2012 14:11:29 -0800 Subject: [PATCH] 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 --- lib/ofp-util.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) 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; -- 2.47.0