diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index aacf97f495ead10c192a0ee1ec6b75bee8488e68..285a25fb65ce71866c1d02f8fb79968c8a9c026e 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -1,22 +1,14 @@
 variables:
-  DEBUG: 'TRUE'
-  SOURCE_FOLDER: "./src"
-  FLAWFINDER_OPTIONS: "-m 4 --error-level=5"
-  CPPCHECK_OPTIONS: " --enable=all --error-exitcode=1 --suppress=unusedStructMember"
+  SOURCE_FOLDER: "."
 
 include:
   - project: 'iopsys/gitlab-ci-pipeline'
     file: '/static-code-analysis.yml'
-    ref: '0.31'
-  - project: 'docs/portal2/pipeline-template'
-    file: 'MkDocs.gitlab-ci.yml'
-    rules:
-       - if: $CI_COMMIT_BRANCH == "devel"
+    ref: '1.0'
 
 stages:
     - static_code_analysis
     - functional_test
-    - deploy
 
 run_functional_test:
     stage: functional_test
diff --git a/Makefile b/Makefile
index df5a5e104603f01f8a126ae81fecb749dc773129..a8a624feba3f4c7325bdd5c72cf5cc8c26bbabd7 100644
--- a/Makefile
+++ b/Makefile
@@ -20,4 +20,4 @@ $(LIB): $(LIB_OBJS)
 	$(CC) $(PROG_CFLAGS) $(LIB_LDFLAGS) -shared -o $@ $^
 
 clean:
-	rm -f *.o $(PROG) $(LIB)
+	rm -f *.o $(PROG) $(LIB) ./src/*.o
diff --git a/gitlab-ci/functional-test.sh b/gitlab-ci/functional-test.sh
index b8468a3cc85a0c5988a76757b8ddf528c0420f59..6e70338b87de120a83a0cd79435f8c186a89de40 100755
--- a/gitlab-ci/functional-test.sh
+++ b/gitlab-ci/functional-test.sh
@@ -18,6 +18,11 @@ function check_result()
 	fi
 }
 
+# install twampy
+if [ ! -d "/opt/dev/twampy" ]; then
+	exec_cmd git clone https://github.com/nokia/twampy.git /opt/dev/twampy
+fi
+
 # building twamp
 twamp_clean
 twamp_make
diff --git a/gitlab-ci/install-dependencies.sh b/gitlab-ci/install-dependencies.sh
index 1693741fb1b43825591465352ee4dd52ce91ccc7..285cc185721796dab4b7e8dba2c5292c8a88c21f 100755
--- a/gitlab-ci/install-dependencies.sh
+++ b/gitlab-ci/install-dependencies.sh
@@ -1,17 +1,7 @@
 #!/bin/bash
 
 echo "install dependencies for tests"
-pwd
 source ./gitlab-ci/shared.sh
 
-# install required packages
-exec_cmd apt update
-
 # install bbfdm
 install_bbfdm
-
-# install twampy
-cd /opt/dev  
-[ -d twampy ] && rm -fr twampy
-exec_cmd git clone https://github.com/nokia/twampy.git
-
diff --git a/gitlab-ci/shared.sh b/gitlab-ci/shared.sh
index aa9379bd03a25f43c5c408f1ef20f2511bec6554..8314b9dd2c16f939cb0399b654ba552c332b4232 100755
--- a/gitlab-ci/shared.sh
+++ b/gitlab-ci/shared.sh
@@ -59,7 +59,7 @@ function generate_report()
 
 function install_bbfdm()
 {
-	[ -d "/opt/dev/bbfdm" ] && rm -rf /opt/dev/bbfdm
+	[ -d "/opt/dev/bbfdm" ] && return 0
 
 	if [ -n "${BBFDM_BRANCH}" ]; then
 		exec_cmd git clone -b ${BBFDM_BRANCH} https://dev.iopsys.eu/bbf/bbfdm.git /opt/dev/bbfdm
diff --git a/src/common.c b/src/common.c
index 46076987d69f2655defe15417c898aff2dac3105..5e092f4f630fd81b847bab194600cd25e467d85a 100644
--- a/src/common.c
+++ b/src/common.c
@@ -173,7 +173,7 @@ int twamp_get_uci_config(twamp_ref_cfg_t **ref_cfg, twamp_glob_cfg_t *glb_cfg)
 
 			if (tb[E_TWAMP_GLOB_LOG_LEVEL]) {
 				const char *val = tb[E_TWAMP_GLOB_LOG_LEVEL]->v.string;
-				glb_cfg->log_level = atoi(val) > SDEBUG ? SDEBUG : atoi(val);
+				glb_cfg->log_level = strtol(val, NULL, 10) > SDEBUG ? SDEBUG : strtol(val, NULL, 10);
 			} else {
 				glb_cfg->log_level = SINFO;
 			}
@@ -209,12 +209,12 @@ int twamp_get_uci_config(twamp_ref_cfg_t **ref_cfg, twamp_glob_cfg_t *glb_cfg)
 
 			if (tb[E_TWAMP_REFL_PORT]) {
 				const char *val = tb[E_TWAMP_REFL_PORT]->v.string;
-				tmp[ret].ref_port = atoi(val);
+				tmp[ret].ref_port = strtol(val, NULL, 10);
 			}
 
 			if (tb[E_TWAMP_REFL_TTL]) {
 				const char *val = tb[E_TWAMP_REFL_TTL]->v.string;
-				tmp[ret].ref_ttl = atoi(val);
+				tmp[ret].ref_ttl = strtol(val, NULL, 10);
 			}
 
 			if (tb[E_TWAMP_REFL_DEV]) {
@@ -223,7 +223,7 @@ int twamp_get_uci_config(twamp_ref_cfg_t **ref_cfg, twamp_glob_cfg_t *glb_cfg)
 
 			if (tb[E_TWAMP_REFL_IP_VER]) {
 				const char *val = tb[E_TWAMP_REFL_IP_VER]->v.string;
-				tmp[ret].ip_ver = atoi(val) == 0 ? 4 : atoi(val);
+				tmp[ret].ip_ver = strtol(val, NULL, 10) == 0 ? 4 : strtol(val, NULL, 10);
 			} else {
 				tmp[ret].ip_ver = 4;
 			}
diff --git a/src/common.h b/src/common.h
index c76f3c783af23ce7eb98a70f8372a06aadf4c35d..5bb200f64ce18bec58a79e391e8f8de5af9b7d10 100644
--- a/src/common.h
+++ b/src/common.h
@@ -56,11 +56,11 @@ void print_debug(const char *format, ...);
 
 typedef struct refl_cfg {
 	bool ref_enable;
-	char ref_intf[16];
-	char ref_dev[16];
 	int ip_ver;
 	int ref_port;
 	int ref_ttl;
+	char ref_intf[16];
+	char ref_dev[16];
 	char ref_ip_allow[1024];
 	char ref_port_allow[1024];
 } twamp_ref_cfg_t;
diff --git a/src/datamodel.c b/src/datamodel.c
index 6a471152d6f5406b68d3190a50d9a5086f0004b6..e3903001ee78a567dcb0baa935adb6dc2f845794 100644
--- a/src/datamodel.c
+++ b/src/datamodel.c
@@ -186,9 +186,10 @@ static int get_IPInterfaceTWAMPReflector_Status(char *refparam, struct dmctx *ct
 
 	bbf_uci_get_value_by_section(((struct dm_data *)data)->config_section, "enable", &enable);
 	if (strcmp(enable, "1") == 0)
-		*value = "Active";
+		*value = dmstrdup("Active");
 	else
-		*value = "Disabled";
+		*value = dmstrdup("Disabled");
+
 	return 0;
 }
 
diff --git a/src/twamp_light.c b/src/twamp_light.c
index 75afc8b3256e2c60c96f2742f2a63d7461699c5c..ff47c294f97f4457760d0c18aab31b7355ab52cc 100644
--- a/src/twamp_light.c
+++ b/src/twamp_light.c
@@ -158,13 +158,13 @@ int check_port_allowed(const char *allowed_port_list, int port)
 		if(strstr(pch, "-")) {
 			min = strtok_r(pch, "-", &str);
 			max = strtok_r(NULL, "", &str);
-			if(port >= atoi(min) && port <= atoi(max)) {
+			if(port >= strtol(min, NULL, 10) && port <= strtol(max, NULL, 10)) {
 				ret = 1;
 				break;
 			}
 		}
 
-		if (port == atoi(pch)) {
+		if (port == strtol(pch, NULL, 10)) {
 			ret = 1;
 			break;
 		}
@@ -177,7 +177,7 @@ int check_port_allowed(const char *allowed_port_list, int port)
 static char *check_ipv6_address_active(char *ip)
 {
 	unsigned char buf[sizeof(struct in6_addr)];
-	char str[INET6_ADDRSTRLEN], *res = "";
+	char str[INET6_ADDRSTRLEN] = {0};
 	int s;
 
 	s = inet_pton(AF_INET6, ip, buf);
@@ -191,16 +191,16 @@ static char *check_ipv6_address_active(char *ip)
 		goto exit;
 	}
 
-	res = str;
+	return strdup(str);
 exit:
-	return strdup(res);
+	return strdup("");
 }
 
 static int check_ipv6_address(char *ip, char *maskstr, char *address)
 {
 	struct sockaddr_in6 sa = {0};
 	unsigned long netaddress, maxaddress;
-	unsigned long mask = ~((1 << (128 - atoi(maskstr))) - 1);
+	unsigned long mask = ~((1 << (128 - strtol(maskstr, 0, 10))) - 1);
 
 	inet_pton(AF_INET6, address, &(sa.sin6_addr));
 	netaddress = (ntohl(*((uint32_t *)sa.sin6_addr.s6_addr)) & mask);
@@ -216,7 +216,7 @@ static int check_ipv4_address(char *ip, char *maskstr, char *address)
 {
 	struct sockaddr_in sa = {0};
 	unsigned long netaddress, maxaddress;
-	unsigned long mask = ~((1 << (32 - atoi(maskstr))) - 1);
+	unsigned long mask = ~((1 << (32 - strtol(maskstr, NULL, 10))) - 1);
 
 	inet_pton(AF_INET, address, &(sa.sin_addr));
 	netaddress = (ntohl(sa.sin_addr.s_addr) & mask);
@@ -306,6 +306,8 @@ static int receive_test_message(twamp_ref_cfg_t *tc, twamp_client_info_t *client
 	if (tc->ip_ver == 6)
 		socket_family = AF_INET6;
 
+	memset(&addr, 0, sizeof(struct sockaddr_in));
+
 	inet_ntop(socket_family, (socket_family == AF_INET6)? (void*) &(client->addr6.sin6_addr) : (void*) &(client->addr.sin_addr), str_client, sizeof(str_client));
 
 	ref_unauth_param_t refl_parm;
@@ -327,9 +329,10 @@ static int receive_test_message(twamp_ref_cfg_t *tc, twamp_client_info_t *client
 
 	message.msg_name = (socket_family == AF_INET6)? (void*)&addr6: (void*)&addr;
 	message.msg_namelen = len;
+
+	vec.iov_base = &pack;
+	vec.iov_len = TWAMP_UNAUTH_PKT_SIZE;
 	message.msg_iov = &vec;
-	message.msg_iov->iov_base = &pack;
-	message.msg_iov->iov_len = TWAMP_UNAUTH_PKT_SIZE;
 	message.msg_iovlen = 1;
 	message.msg_control = &control_buffer;
 	message.msg_controllen = control_length;
@@ -462,7 +465,7 @@ static void configure_client(twamp_client_info_t *client, int sockfd,
 
 void *twamp_connect_light(void *arg)
 {
-	int sockfd = -1;
+	int sockfd;
 	int ret=0;
 	int family = AF_INET;
         struct sockaddr_in6 serv6_addr;
@@ -474,6 +477,7 @@ void *twamp_connect_light(void *arg)
 	memset(&serv_addr, 0, sizeof(serv_addr));
 	memset(&serv6_addr, 0, sizeof(serv6_addr));
 	memset(&config, 0, sizeof(twamp_ref_cfg_t));
+	memset(&client, 0, sizeof(twamp_client_info_t));
 
 	if (tc == NULL) {
 		return NULL;