Oh, I see. Thanks Thang.

On 6/2/20 2:00 PM, Thang Duc Nguyen wrote:
Hi Vu,
Thanks for your comments.
See my respond inline.

B.R/Thang

-----Original Message-----
From: Vu Minh Nguyen <vu.m.ngu...@dektech.com.au>
Sent: Tuesday, June 2, 2020 12:14 PM
To: Thang Duc Nguyen <thang.d.ngu...@dektech.com.au>; Thien Minh Huynh 
<thien.m.hu...@dektech.com.au>; Thuan Tran <thuan.t...@dektech.com.au>; Minh Hon Chau 
<minh.c...@dektech.com.au>
Cc: opensaf-devel@lists.sourceforge.net
Subject: Re: [devel] [PATCH 1/1] lgs: fix memory leak reeported by valgrind 
[#3195]

Hi Thang,

See my comments inline.

/Vu

On 6/2/20 11:11 AM, thang.d.nguyen wrote:
Fix definitely lost reported by valgrind.
---
   src/base/daemon.c         | 2 --
   src/log/logd/lgs_imm.cc   | 8 ++++++++
   src/log/logd/lgs_mbcsv.cc | 1 +
   3 files changed, 9 insertions(+), 2 deletions(-)

diff --git a/src/base/daemon.c b/src/base/daemon.c index
48a0665f2..56f5aa8ff 100644
--- a/src/base/daemon.c
+++ b/src/base/daemon.c
@@ -57,7 +57,6 @@
#define DEFAULT_RUNAS_USERNAME "opensaf" -static const char *internal_version_id_; static char fifo_file[NAME_MAX];
   static char __pidfile[NAME_MAX];
@@ -294,7 +293,6 @@ void daemonize(int argc, char *argv[])
        char buf1[256 + sizeof("_SCHED_PRIORITY")] = {0};
        char buf2[256 + sizeof("_SCHED_POLICY")] = {0};
- internal_version_id_ = strdup("@(#) $Id: " INTERNAL_VERSION_ID " $");
[Vu] I think this line is intentional. Refer to this commit for more info.
[Thang]: OK. Will keep. Will find another way.

commit 892322c6810e892e12c1042f076069c33745c6ca
Author: Hans Nordeback <hans.nordeb...@ericsson.com>
Date:   Tue Jan 7 14:57:46 2014 +0100

      osaf: Improve fault analyse by using current changeset when configuring 
osaf [#676]

      Current changeset is visible in the syslog, in corefiles using ident, and 
also
      in the amfd and amfnd binaries (use ident). Updated wih review comments.

if (argc > 0 && argv != NULL) {
                __parse_options(argc, argv);
diff --git a/src/log/logd/lgs_imm.cc b/src/log/logd/lgs_imm.cc index
9094be5f3..1889a57b3 100644
--- a/src/log/logd/lgs_imm.cc
+++ b/src/log/logd/lgs_imm.cc
@@ -3027,6 +3027,14 @@ SaAisErrorT lgs_imm_init_configStreams(lgs_cb_t *cb) {
     }
done:
+  /* Free memory allocated for attribute descriptions */  om_rc =
+ saImmOmClassDescriptionMemoryFree_2(omHandle, attr_definitions);  if
+ (om_rc != SA_AIS_OK) {
+    LOG_NO("saImmOmClassDescriptionMemoryFree_2() Fail %s",
+      saf_error(om_rc));
+    goto done;
+  }
[Vu] I think the memory is freed when the search handle or om handle is 
finalized in below lines.
I is probably mentioned in SAF spec. You can  refer to it for more info.
[Thang]: I think these memory allocate for these attribtutes can not release by 
finalize.
There are some services still free like that. And mem leak was reported if not 
free.
A sample code that invoked free explicitely. You can refer to 
get_SaLogStreamConfig_default( )

/Vu
+
     /* Do not abort if error when finalizing */
     om_rc = immutil_saImmOmSearchFinalize(immSearchHandle);
     if (om_rc != SA_AIS_OK) {
diff --git a/src/log/logd/lgs_mbcsv.cc b/src/log/logd/lgs_mbcsv.cc
index 6ec004f0a..ad98b1036 100644
--- a/src/log/logd/lgs_mbcsv.cc
+++ b/src/log/logd/lgs_mbcsv.cc
@@ -341,6 +341,7 @@ uint32_t edp_ed_open_stream_rec(EDU_HDL *edu_hdl, EDU_TKN 
*edu_tkn,
       } else {
         ckpt_open_stream_msg_ptr = static_cast<lgs_ckpt_stream_open_t *>(ptr);
       }
+    osafassert(ckpt_open_stream_msg_ptr != NULL);
rc = m_NCS_EDU_RUN_RULES(edu_hdl, edu_tkn, ckpt_open_stream_rec_ed_rules,
                                ckpt_open_stream_msg_ptr, ptr_data_len,
buf_env,



_______________________________________________
Opensaf-devel mailing list
Opensaf-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/opensaf-devel

Reply via email to