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])); break; case DEVLINK_PARAM_TYPE_BOOL: value->vbool = info->attrs[DEVLINK_ATTR_PARAM_VALUE_DATA] ? -- 2.17.0