On 17:52 Tue 07 Sep , Yevgeny Kliteynik wrote:
> p_key is a parameter, and it is char[].
> It shouldn't be freed here.
I don't see this. st_delete() call:
if (st_delete(p_domain_imp->p_hash,
(void *)&p_key, (void *)&p_prev_val)) {
...
free(p_key);
...
}
overwrites those value by pointers to key values stored in the hash
table (then 1 is returned).
Sasha
>
> Signed-off-by: Yevgeny Kliteynik <[email protected]>
> ---
> opensm/opensm/osm_db_files.c | 1 -
> 1 files changed, 0 insertions(+), 1 deletions(-)
>
> diff --git a/opensm/opensm/osm_db_files.c b/opensm/opensm/osm_db_files.c
> index dd9f772..c475004 100644
> --- a/opensm/opensm/osm_db_files.c
> +++ b/opensm/opensm/osm_db_files.c
> @@ -582,7 +582,6 @@ int osm_db_delete(IN osm_db_domain_t * p_domain, IN char
> *p_key)
> p_key, p_domain_imp->file_name, p_prev_val);
> res = 1;
> } else {
> - free(p_key);
> free(p_prev_val);
> res = 0;
> }
> --
> 1.6.2.4
>
--
To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html