On Wed, 1 Aug 2018 14:52:46 -0700, Saeed Mahameed wrote: > From: Moshe Shemesh <mo...@mellanox.com> > > In case devlink param type is string, it needs to copy the string value > it got from the input to devlink_param_value. > > Fixes: e3b7ca18ad7b ("devlink: Add param set command") > Signed-off-by: Moshe Shemesh <mo...@mellanox.com> > Acked-by: Jiri Pirko <j...@mellanox.com> > Signed-off-by: Saeed Mahameed <sae...@mellanox.com> > --- > include/net/devlink.h | 2 +- > net/core/devlink.c | 3 ++- > 2 files changed, 3 insertions(+), 2 deletions(-) > > diff --git a/include/net/devlink.h b/include/net/devlink.h > index b9b89d6604d4..b0e17c025fdc 100644 > --- a/include/net/devlink.h > +++ b/include/net/devlink.h > @@ -311,7 +311,7 @@ union devlink_param_value { > u8 vu8; > u16 vu16; > u32 vu32; > - const char *vstr; > + char vstr[DEVLINK_PARAM_MAX_STRING_VALUE]; > bool vbool; > }; > > diff --git a/net/core/devlink.c b/net/core/devlink.c > index 65fc366a78a4..61e126c28526 100644 > --- a/net/core/devlink.c > +++ b/net/core/devlink.c > @@ -3014,7 +3014,8 @@ devlink_param_value_get_from_info(const struct > devlink_param *param, > if (nla_len(info->attrs[DEVLINK_ATTR_PARAM_VALUE_DATA]) > > DEVLINK_PARAM_MAX_STRING_VALUE) > return -EINVAL; > - value->vstr = > nla_data(info->attrs[DEVLINK_ATTR_PARAM_VALUE_DATA]); > + strcpy(value->vstr, > + nla_data(info->attrs[DEVLINK_ATTR_PARAM_VALUE_DATA]));
DEVLINK_ATTR_PARAM_VALUE_DATA is a type mux, I'm struggling to find in the code where it's checked for being null-terminated for strings. > break; > case DEVLINK_PARAM_TYPE_BOOL: > value->vbool = info->attrs[DEVLINK_ATTR_PARAM_VALUE_DATA] ?