Ack. No more comments on top of Anders comments.
Thanks,
Ramesh.
On 1/10/2017 8:07 PM, Anders Widell wrote:
> Ack with comments inline, marked AndersW>
>
> regards,
>
> Anders Widell
>
>
> On 01/04/2017 03:28 PM, Zoran Milinkovic wrote:
>> src/base/sysf_tmr.c | 9 ++++++++-
>> 1 files changed, 8 insertions(+), 1 deletions(-)
>>
>>
>> Fix memory leak in ncs_tmr_add_pat_node()
>> Fix timer state, so that the timer will not execute if
>> ncs_tmr_start() fails
>>
>> diff --git a/src/base/sysf_tmr.c b/src/base/sysf_tmr.c
>> --- a/src/base/sysf_tmr.c
>> +++ b/src/base/sysf_tmr.c
>> @@ -180,6 +180,7 @@ static struct timespec ts_start;
>> static uint32_t ncs_tmr_add_pat_node(SYSF_TMR *tmr)
>> {
>> SYSF_TMR_PAT_NODE *temp_tmr_pat_node = NULL;
>> + int rc;
> AndersW> should be "unsigned int" to match the return type of
> ncs_patricia_tree_add()
>> temp_tmr_pat_node = (SYSF_TMR_PAT_NODE
>> *)ncs_patricia_tree_get(&gl_tcb.tmr_pat_tree, (uint8_t *)&tmr->key);
>> @@ -190,7 +191,11 @@ static uint32_t ncs_tmr_add_pat_node(SYS
>> memset(temp_tmr_pat_node, '\0', sizeof(SYSF_TMR_PAT_NODE));
>> temp_tmr_pat_node->key = tmr->key;
>> temp_tmr_pat_node->pat_node.key_info = (uint8_t
>> *)&temp_tmr_pat_node->key;
>> - ncs_patricia_tree_add(&gl_tcb.tmr_pat_tree,
>> (NCS_PATRICIA_NODE *)&temp_tmr_pat_node->pat_node);
>> + rc = ncs_patricia_tree_add(&gl_tcb.tmr_pat_tree,
>> (NCS_PATRICIA_NODE *)&temp_tmr_pat_node->pat_node);
>> + if(rc != NCSCC_RC_SUCCESS) {
>> + m_NCS_MEM_FREE(temp_tmr_pat_node,
>> NCS_MEM_REGION_PERSISTENT, NCS_SERVICE_ID_LEAP_TMR, 0);
>> + return NCSCC_RC_FAILURE;
>> + }
>> }
>> if (temp_tmr_pat_node->tmr_list_start == NULL) {
>> @@ -733,6 +738,8 @@ tmr_t ncs_tmr_start(tmr_t tid, int64_t t
>> on the "sel_obj". */
>> if (m_NCS_SEL_OBJ_IND(&gl_tcb.sel_obj) != NCSCC_RC_SUCCESS) {
>> /* We would never reach here! */
>> + /* Ignore this timer. Indication was not successfully
>> sent */
>> + TMR_SET_STATE(tmr, TMR_STATE_DESTROY);
> AndersW> I think it is better to call osaf_abort() in this error case,
> since there must be some serious problem. Setting the timer state to
> TMR_STATE_DESTROY could be dangerous - doesn't that mean that the
> timer could be re-used by someone else?
>> m_NCS_UNLOCK(&gl_tcb.safe.enter_lock, NCS_LOCK_WRITE);
>> m_LEAP_DBG_SINK_VOID;
>> return NULL;
>>
>> ------------------------------------------------------------------------------
>>
>>
>> Check out the vibrant tech community on one of the world's most
>> engaging tech sites, SlashDot.org! http://sdm.link/slashdot
>> _______________________________________________
>> Opensaf-devel mailing list
>> [email protected]
>> https://lists.sourceforge.net/lists/listinfo/opensaf-devel
>>
>
------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, SlashDot.org! http://sdm.link/slashdot
_______________________________________________
Opensaf-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/opensaf-devel