From 2c11c7afe90f4c70c721c9b4ab7bd45efe9d6aba Mon Sep 17 00:00:00 2001 From: Petr Cvek Date: Wed, 6 Mar 2019 00:31:40 +0100 Subject: [PATCH] Clear the whole structure instead the size of a pointer The type of "bak" and "pattern" is uint8. The compiler does not have a way to know how long this array will be. Use data_size from allocation. Some newer versions may have this fixed. TODO there will be probably more bugs of this type in the code. Check it. TODO^2 change the allocation to support zeroing? Signed-off-by: Petr Cvek --- tools/dutserver/linux/dut_utest_nv.c | 4 ++-- tools/mttools/shared/mtlk_cli_client.c | 2 +- tools/mttools/shared/mtlk_cli_server.c | 2 +- wireless/driver/linux/mtlk_df_user.c | 2 +- 4 files changed, 5 insertions(+), 5 deletions(-) diff --git a/tools/dutserver/linux/dut_utest_nv.c b/tools/dutserver/linux/dut_utest_nv.c index d543f9d..d265678 100644 --- a/tools/dutserver/linux/dut_utest_nv.c +++ b/tools/dutserver/linux/dut_utest_nv.c @@ -977,8 +977,8 @@ _flush_on_rmmod (int hw_idx, int storage) goto close; } - memset(bak, 0, sizeof(*bak)); - memset(pattern, 0, sizeof(*pattern)); + memset(bak, 0, data_size); + memset(pattern, 0, data_size); /* read original */ size = __nvm_read(hw_idx, storage, 0, bak, data_size); diff --git a/tools/mttools/shared/mtlk_cli_client.c b/tools/mttools/shared/mtlk_cli_client.c index 16fec51..848ff14 100644 --- a/tools/mttools/shared/mtlk_cli_client.c +++ b/tools/mttools/shared/mtlk_cli_client.c @@ -169,7 +169,7 @@ mtlk_cli_clt_create (void) mtlk_cli_clt_t *clt = (mtlk_cli_clt_t *)mtlk_osal_mem_alloc(sizeof(*clt), MTLK_MEM_TAG_CLI_CLT); if (clt) { - memset(clt, 0, sizeof(clt)); + memset(clt, 0, sizeof(*clt)); } return clt; diff --git a/tools/mttools/shared/mtlk_cli_server.c b/tools/mttools/shared/mtlk_cli_server.c index 6a8f8be..09d5b5a 100644 --- a/tools/mttools/shared/mtlk_cli_server.c +++ b/tools/mttools/shared/mtlk_cli_server.c @@ -374,7 +374,7 @@ mtlk_cli_srv_create (void) if (srv) { int res; - memset(srv, 0, sizeof(srv)); + memset(srv, 0, sizeof(*srv)); res = _mtlk_cli_srv_init(srv); if (res != MTLK_ERR_OK) { diff --git a/wireless/driver/linux/mtlk_df_user.c b/wireless/driver/linux/mtlk_df_user.c index cbf80b3..f7b5109 100644 --- a/wireless/driver/linux/mtlk_df_user.c +++ b/wireless/driver/linux/mtlk_df_user.c @@ -1421,7 +1421,7 @@ _mtlk_df_user_fill_hw_cfg(mtlk_hw_cfg_t *cfg, char *str) char *next_token = str; int res = MTLK_ERR_PARAMS; - memset(cfg, 0, sizeof(cfg)); + memset(cfg, 0, sizeof(*cfg)); next_token = mtlk_get_token(next_token, buf, sizeof(buf), ','); if (next_token) { -- 2.11.4.GIT