On 07-Sep-10 10:51 PM, Sasha Khapyorsky wrote:
> 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).

Oh, you're right. I was following the function
parameter itself and missed this part.

-- Yevgeny


> 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

Reply via email to