Good work.
Ack from me.

Best regards,
Zoran

-----Original Message-----
From: [email protected] [mailto:[email protected]] 
Sent: den 27 augusti 2014 14:14
To: Anders Björnerstedt; Zoran Milinkovic
Cc: [email protected]
Subject: [PATCH 1 of 1] imm:corrected memory corruption problem when 
ccberrorstring is used in modify/create callback[#961]

 osaf/services/saf/immsv/immnd/immnd_evt.c |  5 +++--
 1 files changed, 3 insertions(+), 2 deletions(-)


OI rejects create/modify callback and adds ccberrorstring to the OI response.
IMMND while sending the reponse back to OM client there is memory corruption 
observed.

diff --git a/osaf/services/saf/immsv/immnd/immnd_evt.c 
b/osaf/services/saf/immsv/immnd/immnd_evt.c
--- a/osaf/services/saf/immsv/immnd/immnd_evt.c
+++ b/osaf/services/saf/immsv/immnd/immnd_evt.c
@@ -3492,12 +3492,12 @@ static void immnd_evt_proc_ccb_obj_modif
                memset(&send_evt, '\0', sizeof(IMMSV_EVT));
                send_evt.type = IMMSV_EVT_TYPE_IMMA;
                send_evt.info.imma.type = IMMA_EVT_ND2A_IMM_ERROR;
+               IMMSV_ATTR_NAME_LIST strList;
                
                if (evt->info.ccbUpcallRsp.result != SA_AIS_OK) {
                        evt->info.ccbUpcallRsp.result = 
SA_AIS_ERR_FAILED_OPERATION;
                        if (evt->info.ccbUpcallRsp.errorString.size) {
                                osafassert(evt->type == 
IMMND_EVT_A2ND_CCB_OBJ_MODIFY_RSP_2);
-                               IMMSV_ATTR_NAME_LIST strList;
                                strList.next = NULL;
                                strList.name = 
evt->info.ccbUpcallRsp.errorString;/*borrow*/
                                send_evt.info.imma.info.errRsp.errStrings = 
&(strList);
@@ -3562,11 +3562,12 @@ static void immnd_evt_proc_ccb_obj_creat
                memset(&send_evt, '\0', sizeof(IMMSV_EVT));
                send_evt.type = IMMSV_EVT_TYPE_IMMA;
                send_evt.info.imma.type = IMMA_EVT_ND2A_IMM_ERROR;
+               IMMSV_ATTR_NAME_LIST strList;
+
                if (evt->info.ccbUpcallRsp.result != SA_AIS_OK) {
                        evt->info.ccbUpcallRsp.result = 
SA_AIS_ERR_FAILED_OPERATION;
                        if (evt->info.ccbUpcallRsp.errorString.size) {
                                osafassert(evt->type == 
IMMND_EVT_A2ND_CCB_OBJ_CREATE_RSP_2);
-                               IMMSV_ATTR_NAME_LIST strList;
                                strList.next = NULL;
                                strList.name = 
evt->info.ccbUpcallRsp.errorString;/*borrow*/
                                send_evt.info.imma.info.errRsp.errStrings = 
&(strList);

------------------------------------------------------------------------------
Slashdot TV.  
Video for Nerds.  Stuff that matters.
http://tv.slashdot.org/
_______________________________________________
Opensaf-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/opensaf-devel

Reply via email to