2
0
mirror of https://github.com/openvswitch/ovs synced 2025-08-31 06:15:47 +00:00

meta-flow: Fix uninitialized data parsing tnl_flags in mf_parse().

Also, add an assertion that the field is the expected size.

This bug was introduced in commit 2fdf762a006f (vswitchd: Log all tunnel
parameters of given flow.)

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:01:43 -08:00
parent 5115299cb8
commit b0aa8146bf

View File

@@ -2138,9 +2138,10 @@ out:
}
static char *
mf_from_tun_flags_string(const char *s, ovs_be16 *valuep)
mf_from_tun_flags_string(const char *s, ovs_be16 *valuep, ovs_be16 *maskp)
{
if (!parse_flow_tun_flags(s, flow_tun_flag_to_string, valuep)) {
*maskp = htons(UINT16_MAX);
return NULL;
}
@@ -2182,7 +2183,8 @@ mf_parse(const struct mf_field *mf, const char *s,
return mf_from_frag_string(s, &value->u8, &mask->u8);
case MFS_TNL_FLAGS:
return mf_from_tun_flags_string(s, &value->be16);
assert(mf->n_bytes == sizeof(ovs_be16));
return mf_from_tun_flags_string(s, &value->be16, &mask->be16);
}
NOT_REACHED();
}