These are mostly string overflow issues.
---
 src/base/conf.cc                   |  4 +--
 src/base/daemon.c                  |  7 +++--
 src/dtm/dtmnd/dtm_main.cc          |  2 +-
 src/dtm/dtmnd/multicast.cc         |  2 +-
 src/imm/immnd/immnd_proc.c         |  2 +-
 src/imm/immnd/immnd_utils.cc       |  7 +++--
 src/log/apitest/logtestfr.c        | 17 ++++++++---
 src/log/apitest/saflogtest.c       |  7 +++--
 src/log/apitest/tet_LogOiOps.c     | 49 +++++++++++++++---------------
 src/log/apitest/tet_Log_recov.c    |  8 ++++-
 src/log/apitest/tet_log_longDN.c   |  7 +++--
 src/log/logd/lgs_util.cc           | 12 ++++++--
 src/mds/mds_c_db.c                 | 34 +++++++++++++--------
 src/nid/nodeinit.cc                |  5 ++-
 src/ntf/apitest/tet_ntf_clm.cc     | 26 +++++++++++-----
 src/rde/rded/rde_amf.cc            |  2 +-
 src/smf/smfd/SmfUpgradeCampaign.cc |  2 +-
 17 files changed, 123 insertions(+), 70 deletions(-)

diff --git a/src/base/conf.cc b/src/base/conf.cc
index d5755a11f..e27e7167a 100644
--- a/src/base/conf.cc
+++ b/src/base/conf.cc
@@ -189,7 +189,7 @@ std::string Conf::ReadFile(const std::string& path_name,
   try {
     str.open(path_name);
     str >> contents;
-  } catch (std::ifstream::failure) {
+  } catch (std::ifstream::failure&) {
     contents.clear();
   }
   return (str.fail() || contents.empty()) ? default_contents : contents;
@@ -203,7 +203,7 @@ void Conf::WriteFileAtomically(const std::string& path_name,
   try {
     str.open(tmp_file, std::ofstream::out | std::ofstream::trunc);
     str << contents << std::endl;
-  } catch (std::ofstream::failure) {
+  } catch (std::ofstream::failure&) {
     success = false;
   }
   str.close();
diff --git a/src/base/daemon.c b/src/base/daemon.c
index cdde7fde0..f5a43c93d 100644
--- a/src/base/daemon.c
+++ b/src/base/daemon.c
@@ -99,7 +99,8 @@ static int __create_pidfile(const char *pidfile)
        pid_t pid;
 
        pid = getpid();
-       snprintf(pidfiletmp, NAME_MAX, "%s.%u.tmp", pidfile, pid);
+       if (snprintf(pidfiletmp, NAME_MAX, "%s.%u.tmp", pidfile, pid) >= 
NAME_MAX)
+               syslog(LOG_WARNING,"truncation occurred writing pid file: %s", 
pidfiletmp);
 
        /* open the file and associate a stream with it */
        if (((fd = open(pidfiletmp, O_RDWR | O_CREAT, 0644)) == -1) ||
@@ -289,8 +290,8 @@ void daemonize(int argc, char *argv[])
        int prio_val = sched_get_priority_min(policy);
        int i;
        char t_str[256];
-       char buf1[256] = {0};
-       char buf2[256] = {0};
+       char buf1[256 + sizeof("_SCHED_PRIORITY")] = {0};
+       char buf2[256 + sizeof("_SCHED_POLICY")] = {0};
 
        internal_version_id_ = strdup("@(#) $Id: " INTERNAL_VERSION_ID " $");
 
diff --git a/src/dtm/dtmnd/dtm_main.cc b/src/dtm/dtmnd/dtm_main.cc
index 585e11ed1..04230165d 100644
--- a/src/dtm/dtmnd/dtm_main.cc
+++ b/src/dtm/dtmnd/dtm_main.cc
@@ -367,7 +367,7 @@ void UpdateNodeIdFile(DTM_INTERNODE_CB *cb) {
       try {
         str.open(PKGLOCALSTATEDIR "/node_id", std::ofstream::out);
         str << std::hex << node_id << std::endl;
-      } catch (std::ofstream::failure) {
+      } catch (std::ofstream::failure&) {
       }
       str.close();
     }
diff --git a/src/dtm/dtmnd/multicast.cc b/src/dtm/dtmnd/multicast.cc
index cadc002bd..9752a01c9 100644
--- a/src/dtm/dtmnd/multicast.cc
+++ b/src/dtm/dtmnd/multicast.cc
@@ -199,7 +199,7 @@ bool Multicast::GetPeersFromFile(const std::string 
&path_name) {
         }
       }
     }
-  } catch (std::ifstream::failure) {
+  } catch (std::ifstream::failure&) {
     LOG_ER("Caught std::ifstream::failure when reading file '%s', peers=%zu",
            path_name.c_str(), static_cast<size_t>(peers_.size()));
     peers_.clear();
diff --git a/src/imm/immnd/immnd_proc.c b/src/imm/immnd/immnd_proc.c
index 48363b1a4..87b8a728d 100644
--- a/src/imm/immnd/immnd_proc.c
+++ b/src/imm/immnd/immnd_proc.c
@@ -1887,7 +1887,7 @@ static int immnd_forkPbe(IMMND_CB *cb)
        char execPath[1024];
        char dbFilePath[1024];
        int pid = (-1);
-       int execDirLen = (int)(strlen(cb->mProgName) - strlen(base));
+       size_t execDirLen = strlen(cb->mProgName) - strlen(base);
        int dirLen = (int)strlen(cb->mDir);
        int pbeLen = (int)strlen(cb->mPbeFile);
        int i, j;
diff --git a/src/imm/immnd/immnd_utils.cc b/src/imm/immnd/immnd_utils.cc
index f1dae4452..351a0b2cd 100644
--- a/src/imm/immnd/immnd_utils.cc
+++ b/src/imm/immnd/immnd_utils.cc
@@ -192,8 +192,11 @@ void CollectRecentFevsLogData(const IMMND_EVT *evt, 
SaUint64T msg_no) {
       break;
   }
 
-  snprintf(evt_data, MAX_LENGTH_FEVS_MSG,
-      "<%llu>[%s -> %s]", msg_no, evt_name, evt_info);
+  if (snprintf(evt_data, MAX_LENGTH_FEVS_MSG,
+               "<%llu>[%s -> %s]", msg_no, evt_name, evt_info) >=
+                 MAX_LENGTH_FEVS_MSG) {
+    LOG_WA("truncation occurred on evt_data: %s", evt_data);
+  }
 
   static int index = 0;
   latest_fevs[index] = std::string(evt_data);
diff --git a/src/log/apitest/logtestfr.c b/src/log/apitest/logtestfr.c
index a11024025..7ed82767c 100644
--- a/src/log/apitest/logtestfr.c
+++ b/src/log/apitest/logtestfr.c
@@ -452,7 +452,8 @@ static int truncate_filenames(void)
        size_t str_end;
 
        /* Create path to log files */
-       snprintf(file_path, 256, "%s/%s/", log_root_path, logfile_path_str);
+       if (snprintf(file_path, 256, "%s/%s/", log_root_path, logfile_path_str) 
>= 256)
+               fprintf(stderr, "warning: trunction occurred on file_path: %s", 
file_path);
        printf_v("%s: logdir \"%s\"\n", __FUNCTION__, file_path);
 
        /* Get the files to truncate */
@@ -529,8 +530,11 @@ static int remove_rf(const char *path)
 
        /* Remove files */
        for (i = 0; i < file_cnt; i++) {
-               (void)snprintf(filepath, PATH_MAX, "%s/%s", path,
-                              namelist[i]->d_name);
+               if (snprintf(filepath, PATH_MAX, "%s/%s", path,
+                              namelist[i]->d_name) >= PATH_MAX) {
+                       fprintf(stderr, "warning: truncation occurred on "
+                               "filepath: %s", filepath);
+               }
                rc = remove(filepath);
                if (rc < 0) {
                        goto done;
@@ -688,8 +692,11 @@ int tst_logrotation_truncated_filename(void)
         */
        /* Create path to remove*/
        char rem_path[PATH_MAX];
-       (void)snprintf(rem_path, PATH_MAX, "%s/%s", log_root_path,
-                      logfile_path_str);
+       if (snprintf(rem_path, PATH_MAX, "%s/%s", log_root_path,
+                      logfile_path_str) >= PATH_MAX) {
+               fprintf(stderr, "warning: truncation occurred on rem_path: %s",
+                               rem_path);
+       }
        printf_v("Path to remove \"%s\"\n", rem_path);
        rc = remove_rf(rem_path);
        if (rc < 0) {
diff --git a/src/log/apitest/saflogtest.c b/src/log/apitest/saflogtest.c
index 771a6deff..80cbadee5 100644
--- a/src/log/apitest/saflogtest.c
+++ b/src/log/apitest/saflogtest.c
@@ -413,8 +413,11 @@ int main(int argc, char *argv[])
                exit(EXIT_FAILURE);
        }
 
-       sprintf((char *)logSvcUsrName.value, "%s.%u@%s", "saflogtest", getpid(),
-               hostname);
+       if (snprintf((char *)logSvcUsrName.value, SA_MAX_NAME_LENGTH,
+               "%s.%u@%s", "saflogtest", getpid(),
+               hostname) >= SA_MAX_NAME_LENGTH) {
+               fprintf(stderr, "warning: truncation occurred with 
logSvcUsrName: %s", logSvcUsrName.value);
+       }
        logSvcUsrName.length = strlen((char *)logSvcUsrName.value);
 
        while (1) {
diff --git a/src/log/apitest/tet_LogOiOps.c b/src/log/apitest/tet_LogOiOps.c
index b70e10cd1..23fe13838 100644
--- a/src/log/apitest/tet_LogOiOps.c
+++ b/src/log/apitest/tet_LogOiOps.c
@@ -29,6 +29,7 @@
 #include "log/apitest/imm_tstutil.h"
 
 #define MAX_DATA 256
+#define SET_VALUES_MAX_DATA 50
 #define opensaf_user "opensaf"
 #define data_group "log-data"
 
@@ -143,8 +144,11 @@ void saLogOi_02(void)
        tstptr = strrchr(tststr, '/');
        *tstptr = '\0';
 
-       sprintf(command, "immcfg -a saLogStreamPathName=/%s %s 2> /dev/null",
-               tststr, SA_LOG_STREAM_ALARM);
+       if (snprintf(command, MAX_DATA,
+                       "immcfg -a saLogStreamPathName=/%s %s 2> /dev/null",
+                       tststr, SA_LOG_STREAM_ALARM) >= MAX_DATA) {
+               fprintf(stderr, "warning: truncation on command: %s", command);
+       }
        rc = system(command);
        rc_validate(WEXITSTATUS(rc), 1);
 }
@@ -319,9 +323,9 @@ void saLogOi_12(void)
 {
        int rc;
        char command[MAX_DATA];
-       char fomartChange[MAX_DATA] =
+       const char fomartChange[] =
            "@Cr @Ct @Nh:@Nn:@Ns @Nm/@Nd/@NY @Ne5 @No30 @Ng30 \"@Cb\" ";
-       char v_saLogStreamLogFileFormat[MAX_DATA] =
+       char v_saLogStreamLogFileFormat[] =
            "@Cr @Ct @Nt @Ne6 @No30 @Ng30 \"@Cb\" ";
 
        get_attr_value(&alarmStreamName, "saLogStreamLogFileFormat",
@@ -343,7 +347,7 @@ void saLogOi_13(void)
 {
        int rc;
        char command[MAX_DATA];
-       char fomartChange[MAX_DATA] = "@Cr @Ct @Sv @Ne5 @No30 @Ng30 \"@Cb\" ";
+       const char fomartChange[] = "@Cr @Ct @Sv @Ne5 @No30 @Ng30 \"@Cb\" ";
 
        sprintf(command,
                "immcfg -a saLogStreamLogFileFormat='%s' %s 2> /dev/null",
@@ -1242,7 +1246,7 @@ void saLogOi_43(void)
 {
        int rc;
        char command[MAX_DATA];
-       char logFileFormat[MAX_DATA];
+       const char logFileFormat[] = "@Cr @Ct @Cd @Cy @Cb40 @Ca @Sl30 @Sv @Cx";
 
        /* Object Create, strD, */
        sprintf(
@@ -1253,7 +1257,6 @@ void saLogOi_43(void)
        if (rc != 0)
                goto done;
 
-       strcpy(logFileFormat, "@Cr @Ct @Cd @Cy @Cb40 @Ca @Sl30 @Sv @Cx");
        sprintf(
            command,
            "immcfg -a saLogStreamLogFileFormat=\"%s\" 
safLgStrCfg=strD,safApp=safLogService",
@@ -1274,7 +1277,7 @@ void saLogOi_44()
 {
        int rc;
        char command[MAX_DATA];
-       char logFileFormat[MAX_DATA];
+       const char logFileFormat[] = "@Cr @Ct @Cd @Cy @Cb40 @Ca @Sl30 @Sv @Cx";
 
        /* Object Create, strD, */
        sprintf(
@@ -1285,7 +1288,6 @@ void saLogOi_44()
        if (rc != 0)
                goto done;
 
-       strcpy(logFileFormat, "@Cr @Ct @Cd @Cy @Cb40 @Ca @Sl30 @Sv @Cx");
        sprintf(
            command,
            "immcfg -a saLogStreamLogFileFormat=\"%s\" 
safLgStrCfg=strD,safApp=safLogService",
@@ -1314,8 +1316,8 @@ void saLogOi_45(void)
 {
        int rc;
        char command[MAX_DATA];
-       char logFileName[MAX_DATA];
-       char logFileFormat[MAX_DATA];
+       const char logFileName[] = "CrCtChCnCsCaCmCMCdCyCYCcCxCb40Ci40";
+       const char logFileFormat[] = "@Cr @Ct @Cd @Cy @Cb40 @Ca @Sl30 @Sv @Cx";
 
        /* Object Create, strD, */
        sprintf(
@@ -1326,7 +1328,6 @@ void saLogOi_45(void)
        if (rc != 0)
                goto done;
 
-       strcpy(logFileFormat, "@Cr @Ct @Cd @Cy @Cb40 @Ca @Sl30 @Sv @Cx");
        sprintf(
            command,
            "immcfg -a saLogStreamLogFileFormat=\"%s\" 
safLgStrCfg=strD,safApp=safLogService",
@@ -1335,7 +1336,6 @@ void saLogOi_45(void)
        if (rc != 0)
                goto delete_object;
 
-       strcpy(logFileName, "CrCtChCnCsCaCmCMCdCyCYCcCxCb40Ci40");
        sprintf(
            command,
            "immcfg -a saLogStreamFileName=\"%s\" 
safLgStrCfg=strD,safApp=safLogService",
@@ -1358,7 +1358,8 @@ void saLogOi_46()
 {
        int rc;
        char command[MAX_DATA];
-       char logFileFormat[MAX_DATA];
+       const char logFileFormat[] = "@Cr @Ct @Ch @Cn @Cs @Ca @Cm @CM @Cd @Cy "
+               "@CY @Cc @Cx @Cb40 @Ci40";
 
        /* Object Create, strD, */
        sprintf(
@@ -1369,9 +1370,6 @@ void saLogOi_46()
        if (rc != 0)
                goto done;
 
-       strcpy(
-           logFileFormat,
-           "@Cr @Ct @Ch @Cn @Cs @Ca @Cm @CM @Cd @Cy @CY @Cc @Cx @Cb40 @Ci40");
        sprintf(
            command,
            "immcfg -a saLogStreamLogFileFormat=\"%s\" 
safLgStrCfg=strD,safApp=safLogService",
@@ -1605,7 +1603,7 @@ void saLogOi_501(void)
 void saLogOi_502(void)
 {
        int rc = 0, tst_stat = 0;
-       char command[MAX_DATA];
+       char command[MAX_DATA * 2];
        char tstdir[MAX_DATA];
        struct timespec timeout_time;
        const int kWaitTime = 10*1000;
@@ -1676,7 +1674,7 @@ done:
 void change_root_path(void)
 {
        int rc = 0, tst_stat = 0;
-       char command[MAX_DATA];
+       char command[MAX_DATA * 2];
        char tstdir[MAX_DATA];
 
        /* Path to test directory */
@@ -2098,7 +2096,8 @@ void saLogOi_515(void)
  * @return false if compare fail
  */
 static bool read_and_compare(SaConstStringT objectName,
-                            char set_values[][MAX_DATA], int num_values)
+                            char set_values[][SET_VALUES_MAX_DATA],
+                            int num_values)
 {
        char **read_values;
        char *attr_name = "logRecordDestinationConfiguration";
@@ -2162,7 +2161,7 @@ void check_logRecordDestinationConfigurationAdd(void)
 {
        char command[MAX_DATA];
        const int num_values = 5;
-       char set_values[num_values][MAX_DATA];
+       char set_values[num_values][SET_VALUES_MAX_DATA];
        int test_result = 0; /* -1 if Fail */
 
        do {
@@ -2221,7 +2220,7 @@ void check_logRecordDestinationConfigurationDelete(void)
 {
        char command[MAX_DATA];
        const int num_values = 5;
-       char set_values[num_values][MAX_DATA];
+       char set_values[num_values][SET_VALUES_MAX_DATA];
        int test_result = 0; /* -1 if Fail */
 
        do {
@@ -2313,7 +2312,7 @@ void check_logRecordDestinationConfigurationReplace(void)
 {
        char command[MAX_DATA * 2];
        const int num_values = 5;
-       char set_values[num_values][MAX_DATA];
+       char set_values[num_values][SET_VALUES_MAX_DATA];
        int test_result = 0; /* 1 if Fail */
 
        do {
@@ -2411,7 +2410,7 @@ void check_logRecordDestinationConfigurationEmpty(void)
 {
        char command[MAX_DATA * 2];
        const int num_values = 5;
-       char set_values[num_values][MAX_DATA];
+       char set_values[num_values][SET_VALUES_MAX_DATA];
        int test_result = 0; /* 1 if Fail */
 
        do {
@@ -3764,7 +3763,7 @@ void modStrLogFileFmt_04(void)
 void modStrLogFileFmt_05(void)
 {
        int rc;
-       char command[MAX_DATA];
+       char command[MAX_DATA * 2];
        char v_saLogStreamLogFileFormat[MAX_DATA] =
            "@Cr @Ch:@Cn:@Cs @Cm/@Cd/@CY @Sv @Sl \"@Cb\"";
        /* Enable timezone and millisecond token - @Cz @Ck */
diff --git a/src/log/apitest/tet_Log_recov.c b/src/log/apitest/tet_Log_recov.c
index a04a545ea..74277c61f 100644
--- a/src/log/apitest/tet_Log_recov.c
+++ b/src/log/apitest/tet_Log_recov.c
@@ -255,6 +255,12 @@ static int filter_logfile_name(const struct dirent *finfo)
        /* Create format string for sscanf */
        n = snprintf(name_format, SA_MAX_NAME_LENGTH, "%s%s", file_name_find,
                     time_stamps);
+       if (n >= SA_MAX_NAME_LENGTH) {
+               fprintf(stderr,
+                       "warning: name_format truncated: %s",
+                       name_format);
+       }
+
        /* Get number of timestamps */
        n = sscanf(finfo->d_name, name_format, &a, &b, &c, &d);
 
@@ -952,8 +958,8 @@ void saLogRecov_pause_s(void)
 void saLogRecov_clean_tstdir(void)
 {
        int rc = 0;
-       char command[PATH_MAX + 256];
        char tstpath[PATH_MAX + 256];
+       char command[sizeof(tstpath) + sizeof("rm -rf ")];
 
        sprintf(tstpath, "%s/%s", log_root_path, logfile_path_str);
        printf_v("Clean test dir \"%s\"\n", tstpath);
diff --git a/src/log/apitest/tet_log_longDN.c b/src/log/apitest/tet_log_longDN.c
index 43ba88330..cdaa27403 100644
--- a/src/log/apitest/tet_log_longDN.c
+++ b/src/log/apitest/tet_log_longDN.c
@@ -512,8 +512,11 @@ static SaAisErrorT openLog(stream_type_t type)
 
                char tmp[1000] = {0};
                memset(tmp, 'L', sizeof(tmp) - 1);
-               snprintf(appStreamDN, sizeof(appStreamDN) - 2, "safLgStr=%s",
-                        tmp);
+               if (snprintf(appStreamDN, sizeof(appStreamDN) - 2, 
"safLgStr=%s",
+                        tmp) >= sizeof(appStreamDN) - 2) {
+                       fprintf(stderr, "warning: truncation occurred on "
+                               "appStreamDN: %s", appStreamDN);
+               }
 
                /* Use built-in log file format in log server for app stream */
                appLogFileCreateAttributesIn.logFileFmt = NULL;
diff --git a/src/log/logd/lgs_util.cc b/src/log/logd/lgs_util.cc
index ac93d5a71..9b0707fd7 100644
--- a/src/log/logd/lgs_util.cc
+++ b/src/log/logd/lgs_util.cc
@@ -199,13 +199,19 @@ char *lgs_get_time(time_t *time_in) {
   osafassert(timeStampData);
 
   stringSize = 5 * sizeof(char);
-  snprintf(srcString, (size_t)stringSize, "%d",
-           (timeStampData->tm_year + START_YEAR));
+  if (snprintf(srcString, (size_t)stringSize, "%d",
+           (timeStampData->tm_year + START_YEAR)) >=
+        static_cast<int>(stringSize)) {
+    LOG_WA("truncation on log year: %s", srcString);
+  }
 
   strncpy(timeStampString, srcString, stringSize);
 
   stringSize = 3 * sizeof(char);
-  snprintf(srcString, (size_t)stringSize, "%02d", (timeStampData->tm_mon + 1));
+  if (snprintf(srcString, (size_t)stringSize, "%02d",
+               timeStampData->tm_mon + 1) >= static_cast<int>(stringSize)) {
+    LOG_WA("trunction on log month: %s", srcString);
+  }
 
   strncat(timeStampString, srcString, stringSize);
 
diff --git a/src/mds/mds_c_db.c b/src/mds/mds_c_db.c
index e6b95cdf7..58f0e3aee 100644
--- a/src/mds/mds_c_db.c
+++ b/src/mds/mds_c_db.c
@@ -123,12 +123,17 @@ void get_adest_details(MDS_DEST adest, char 
*adest_details)
                }
        }
 
-       if (remote == true)
-               snprintf(adest_details, MDS_MAX_PROCESS_NAME_LEN,
-                        "<rem_nodeid[0x%" PRIx32 "]:%s>", ncs_node_id, 
process_name);
-       else
-               snprintf(adest_details, MDS_MAX_PROCESS_NAME_LEN,
-                        "<nodeid[0x%" PRIx32 "]:%s>", ncs_node_id, 
process_name);
+       if (remote == true) {
+               if (snprintf(adest_details, MDS_MAX_PROCESS_NAME_LEN,
+                        "<rem_nodeid[0x%" PRIx32 "]:%s>", ncs_node_id, 
process_name) >= MDS_MAX_PROCESS_NAME_LEN) {
+                       LOG_WA("truncation occurred while writing adest: %s", 
adest_details);
+               }
+       } else {
+               if (snprintf(adest_details, MDS_MAX_PROCESS_NAME_LEN,
+                        "<nodeid[0x%" PRIx32 "]:%s>", ncs_node_id, 
process_name) >= MDS_MAX_PROCESS_NAME_LEN) {
+                       LOG_WA("truncation occurred while writing adest: %s", 
adest_details);
+               }
+       }
 
        m_MDS_LOG_DBG("MDS:DB: adest_details: %s ", adest_details);
        m_MDS_LEAVE();
@@ -206,12 +211,17 @@ void get_subtn_adest_details(MDS_PWE_HDL pwe_hdl, 
MDS_SVC_ID svc_id,
                }
        }
 
-       if (remote == true)
-               snprintf(adest_details, MDS_MAX_PROCESS_NAME_LEN,
-                        "<rem_node[0x%" PRIx32 "]:%s>", ncs_node_id, 
process_name);
-       else
-               snprintf(adest_details, MDS_MAX_PROCESS_NAME_LEN,
-                        "<node[0x%" PRIx32 "]:%s>", ncs_node_id, process_name);
+       if (remote == true) {
+               if (snprintf(adest_details, MDS_MAX_PROCESS_NAME_LEN,
+                        "<rem_node[0x%" PRIx32 "]:%s>", ncs_node_id, 
process_name) >= MDS_MAX_PROCESS_NAME_LEN) {
+                       LOG_WA("truncation occurred while writing adest: %s", 
adest_details);
+               }
+       } else {
+               if (snprintf(adest_details, MDS_MAX_PROCESS_NAME_LEN,
+                        "<node[0x%" PRIx32 "]:%s>", ncs_node_id, process_name) 
>= MDS_MAX_PROCESS_NAME_LEN) {
+                       LOG_WA("truncation occurred while writing adest: %s", 
adest_details);
+               }
+       }
 done:
        m_MDS_LOG_DBG("MDS:DB: adest_details: %s ", adest_details);
        m_MDS_LEAVE();
diff --git a/src/nid/nodeinit.cc b/src/nid/nodeinit.cc
index 5a4b73cc6..5f15916b4 100644
--- a/src/nid/nodeinit.cc
+++ b/src/nid/nodeinit.cc
@@ -603,7 +603,10 @@ uint32_t parse_nodeinit_conf(char *strbuf) {
   (void)fclose(ntfile);
 
   if ((file = fopen(nidconf, "r")) == NULL) {
-    sprintf(strbuf, "%s. file open error '%s'\n", nidconf, strerror(errno));
+    if (snprintf(strbuf, 256, "%s. file open error '%s'\n", nidconf,
+                 strerror(errno)) >= 256) {
+      LOG_WA("strbuf truncated: %s", strbuf);
+    }
     return NCSCC_RC_FAILURE;
   }
 
diff --git a/src/ntf/apitest/tet_ntf_clm.cc b/src/ntf/apitest/tet_ntf_clm.cc
index b1870f368..2dd5c77ef 100644
--- a/src/ntf/apitest/tet_ntf_clm.cc
+++ b/src/ntf/apitest/tet_ntf_clm.cc
@@ -403,13 +403,25 @@ __attribute__((constructor)) static void 
ntf_clm_constructor(void) {
   }
   pclose(fp);
 
-  snprintf(clm_node_name,
-     strlen("safNode=") + strlen(rdn) + strlen(cluster_name) + 2,
-     "safNode=%s,%s", rdn, cluster_name);
-  snprintf(lock_cmd, strlen("immadm -o 2 ") + strlen(clm_node_name) + 1,
-     "immadm -o 2 %s", clm_node_name);
-  snprintf(unlock_cmd, strlen("immadm -o 1 ") + strlen(clm_node_name) + 1,
-     "immadm -o 1 %s", clm_node_name);
+  if (snprintf(clm_node_name,
+               strlen("safNode=") + strlen(rdn) + strlen(cluster_name) + 2,
+               "safNode=%s,%s", rdn, cluster_name) >=
+                 static_cast<int>(strlen("safNode=") + strlen(rdn) +
+                                  strlen(cluster_name) + 2)) {
+    std::cerr << "truncation on clm_node_name: " << clm_node_name << std::endl;
+  }
+  if (snprintf(lock_cmd, strlen("immadm -o 2 ") + strlen(clm_node_name) + 1,
+               "immadm -o 2 %s", clm_node_name) >=
+                 static_cast<int>(strlen("immadm -o 2 ") +
+                                  strlen(clm_node_name) + 1)) {
+    std::cerr << "truncation on lock_cmd: " << lock_cmd << std::endl;
+  }
+  if (snprintf(unlock_cmd, strlen("immadm -o 1 ") + strlen(clm_node_name) + 1,
+               "immadm -o 1 %s", clm_node_name) >=
+                 static_cast<int>(strlen("immadm -o 1 ") +
+                                  strlen(clm_node_name) + 1)) {
+    std::cerr << "truncation on unlock_cmd: " << unlock_cmd << std::endl;
+  }
 
   // For debugging purpose.
   // printf("node_name:'%s'\n",clm_node_name);
diff --git a/src/rde/rded/rde_amf.cc b/src/rde/rded/rde_amf.cc
index 81e521e3f..5a80bc418 100644
--- a/src/rde/rded/rde_amf.cc
+++ b/src/rde/rded/rde_amf.cc
@@ -102,7 +102,7 @@ static uint32_t rde_amf_healthcheck_start(RDE_AMF_CB 
*rde_amf_cb) {
   SaAmfHealthcheckKeyT Healthy;
   SaNameT SaCompName;
   char *phlth_ptr;
-  char hlth_str[256];
+  char hlth_str[SA_AMF_HEALTHCHECK_KEY_MAX];
 
   TRACE_ENTER();
 
diff --git a/src/smf/smfd/SmfUpgradeCampaign.cc 
b/src/smf/smfd/SmfUpgradeCampaign.cc
index c30ea14b8..3c50bf7a9 100644
--- a/src/smf/smfd/SmfUpgradeCampaign.cc
+++ b/src/smf/smfd/SmfUpgradeCampaign.cc
@@ -473,7 +473,7 @@ SaAisErrorT SmfUpgradeCampaign::tooManyRestarts(bool 
*o_result) {
     attrsmfCampRestartCnt.SetAttributeName("smfCampRestartCnt");
     attrsmfCampRestartCnt.SetAttributeType("SA_IMM_ATTR_SAUINT32T");
     char buf[5];
-    snprintf(buf, 4, "%d", curCnt);
+    snprintf(buf, 4, "%u", curCnt);
     attrsmfCampRestartCnt.AddAttributeValue(buf);
     imoCampRestartInfo.AddValue(attrsmfCampRestartCnt);
 
-- 
2.17.2


-----------------------------------------------------------------------------------------------------------------------
Notice: This e-mail together with any attachments may contain information of 
Ribbon Communications Inc. that
is confidential and/or proprietary for the sole use of the intended recipient.  
Any review, disclosure, reliance or
distribution by others or forwarding without express permission is strictly 
prohibited.  If you are not the intended
recipient, please notify the sender immediately and then delete all copies, 
including any attachments.
-----------------------------------------------------------------------------------------------------------------------

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

Reply via email to