Hi,

Find my comments on ntfsv_sanamet_clone_strptr cases inline.

-----Original Message-----
From: Minh Hon Chau [mailto:minh.c...@dektech.com.au] 
Sent: den 2 juli 2014 07:50
To: Anders Widell; mathi.naic...@oracle.com; Hans Feldt; 
praveen.malv...@oracle.com
Cc: opensaf-devel@lists.sourceforge.net
Subject: [devel] [PATCH 1 of 5] NTF: Adapt NTF API to support long DNs [#873]

 osaf/libs/agents/saf/ntfa/Makefile.am |   1 +
 osaf/libs/agents/saf/ntfa/ntfa_api.c  |  25 ++++++++++++++++---------
 osaf/libs/saf/libSaNtf/Makefile.am    |   1 +
 3 files changed, 18 insertions(+), 9 deletions(-)


diff --git a/osaf/libs/agents/saf/ntfa/Makefile.am 
b/osaf/libs/agents/saf/ntfa/Makefile.am
--- a/osaf/libs/agents/saf/ntfa/Makefile.am
+++ b/osaf/libs/agents/saf/ntfa/Makefile.am
@@ -25,6 +25,7 @@ noinst_HEADERS = \
 noinst_LTLIBRARIES = libntfa.la
 
 libntfa_la_CPPFLAGS = \
+       -DSA_EXTENDED_NAME_SOURCE \
        $(AM_CPPFLAGS) \
        -I$(top_srcdir)/osaf/libs/common/ntfsv/include
 
diff --git a/osaf/libs/agents/saf/ntfa/ntfa_api.c 
b/osaf/libs/agents/saf/ntfa/ntfa_api.c
--- a/osaf/libs/agents/saf/ntfa/ntfa_api.c
+++ b/osaf/libs/agents/saf/ntfa/ntfa_api.c
@@ -18,7 +18,8 @@
 #include <string.h>
 #include "ntfa.h"
 #include "ntfsv_mem.h"
-
+#include "osaf_extended_name.h"
+#include "saAis.h"
 #define NCS_SAF_MIN_ACCEPT_TIME 10
 #define NTFS_WAIT_TIME 1000
 
@@ -304,9 +305,10 @@ static SaAisErrorT checkSecurityAlarmFil
 static SaAisErrorT checkHeader(SaNtfNotificationHeaderT *nh)
 {
        int i =0;
-
-       if (nh->notificationObject->length > SA_MAX_NAME_LENGTH || 
nh->notifyingObject->length > SA_MAX_NAME_LENGTH) {
-               TRACE_1("SaNameT length too big");
+       
+       if (!ntfsv_sanamet_is_valid(nh->notificationObject) ||
+               !ntfsv_sanamet_is_valid(nh->notifyingObject)) {
+               TRACE_1("SaNameT is invaild");
                return SA_AIS_ERR_INVALID_PARAM;
        }
 
@@ -517,12 +519,17 @@ static SaAisErrorT fillSendStruct(SaNtfN
        /* nodificationId set to zero means that this is a new notification */
        /* and not an sync message send from the server. */
        *(notificationHeader->notificationId) = 0;
+       
+       /* For long dn object, clone the string pointer */
+       ntfsv_sanamet_clone_strptr(notificationHeader->notificationObject);

[Zoran] Looks like ntfsv_sanamet_clone_strptr makes memory leak here for long 
dn ??? Why does long dn need to be cloned ?

-       if (notificationHeader->notifyingObject->length == 0) {
-               notificationHeader->notifyingObject->length = 
notificationHeader->notificationObject->length;
-               (void)memcpy(notificationHeader->notifyingObject->value, 
notificationHeader->notificationObject->value,
-                            notificationHeader->notifyingObject->length);
-       }
+       /* Copy notificationObject to notifyingObject if it's empty */
+       if (osaf_is_extended_name_empty(notificationHeader->notifyingObject))
+               rc = ntfsv_sanamet_copy(notificationHeader->notifyingObject, 
+                                                       
notificationHeader->notificationObject);
+       else    /* Not empty and it's long dn object, clone the string pointer 
*/
+               ntfsv_sanamet_clone_strptr(notificationHeader->notifyingObject);

[Zoran] Another case of using ntfsv_sanamet_clone_strptr, and same questions as 
above.

Best regards,
Zoran

+
        return rc;
 }
 
diff --git a/osaf/libs/saf/libSaNtf/Makefile.am 
b/osaf/libs/saf/libSaNtf/Makefile.am
--- a/osaf/libs/saf/libSaNtf/Makefile.am
+++ b/osaf/libs/saf/libSaNtf/Makefile.am
@@ -29,6 +29,7 @@ lib_LTLIBRARIES = libSaNtf.la
 libSaNtf_la_SOURCES = 
 
 libSaNtf_la_CPPFLAGS = \
+       -DSA_EXTENDED_NAME_SOURCE \
        $(AM_CPPFLAGS)
 
 if HAVE_LD_VERSION_SCRIPT

------------------------------------------------------------------------------
Open source business process management suite built on Java and Eclipse
Turn processes into business applications with Bonita BPM Community Edition
Quickly connect people, data, and systems into organized workflows
Winner of BOSSIE, CODIE, OW2 and Gartner awards
http://p.sf.net/sfu/Bonitasoft
_______________________________________________
Opensaf-devel mailing list
Opensaf-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/opensaf-devel

------------------------------------------------------------------------------
Open source business process management suite built on Java and Eclipse
Turn processes into business applications with Bonita BPM Community Edition
Quickly connect people, data, and systems into organized workflows
Winner of BOSSIE, CODIE, OW2 and Gartner awards
http://p.sf.net/sfu/Bonitasoft
_______________________________________________
Opensaf-devel mailing list
Opensaf-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/opensaf-devel

Reply via email to