[prev in list] [next in list] [prev in thread] [next in thread] 

List:       serdev
Subject:    [sr-dev] git:master:1062d636: presence:use memcpy() instead of strncpy()
From:       Victor Seva <linuxmaniac () torreviejawireless ! org>
Date:       2018-09-28 12:42:50
Message-ID: E1g5s6c-0004dd-T5 () www ! kamailio ! org
[Download RAW message or body]

Module: kamailio
Branch: master
Commit: 1062d636fe3a5b79b0ee789e36fd205ea4b87fb3
URL: https://github.com/kamailio/kamailio/commit/1062d636fe3a5b79b0ee789e36fd205ea4b87fb3


Author: Victor Seva <linuxmaniac@torreviejawireless.org>
Committer: Victor Seva <linuxmaniac@torreviejawireless.org>
Date: 2018-09-28T14:42:44+02:00

presence:use memcpy() instead of strncpy()

> subscribe.c: In function 'send_2XX_reply':
> subscribe.c:74:2: warning: 'strncpy' output truncated before terminating nul \
> copying 9 bytes from a string of the same length [-Wstringop-truncation] \
> strncpy(hdr_append.s, "Expires: ", 9); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> subscribe.c:77:2: warning: 'strncpy' output truncated before terminating nul \
> copying 2 bytes from a string of the same length [-Wstringop-truncation] \
> strncpy(tmp.s, CRLF, CRLF_LEN); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> subscribe.c:79:2: warning: 'strncpy' output truncated before terminating nul \
> copying 10 bytes from a string of the same length [-Wstringop-truncation] \
> strncpy(tmp.s, "Contact: <", 10); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> subscribe.c:90:5: warning: 'strncpy' output truncated before terminating nul \
> copying 14 bytes from a string of the same length [-Wstringop-truncation] \
> strncpy(tmp.s, ";transport=tcp", 14); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> subscribe.c:95:5: warning: 'strncpy' output truncated before terminating nul \
> copying 14 bytes from a string of the same length [-Wstringop-truncation] \
> strncpy(tmp.s, ";transport=tls", 14); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> subscribe.c:100:5: warning: 'strncpy' output truncated before terminating nul \
> copying 15 bytes from a string of the same length [-Wstringop-truncation] \
> strncpy(tmp.s, ";transport=sctp", 15); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> subscribe.c:105:5: warning: 'strncpy' output truncated before terminating nul \
> copying 13 bytes from a string of the same length [-Wstringop-truncation] \
> strncpy(tmp.s, ";transport=ws", 13); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> subscribe.c:116:2: warning: 'strncpy' output truncated before terminating nul \
> copying 2 bytes from a string of the same length [-Wstringop-truncation] \
> strncpy(tmp.s+1, CRLF, CRLF_LEN); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> In file included from subscribe.c:39:
> utils_func.h: In function 'ps_fill_local_contact':
> utils_func.h:142:3: warning: 'strncpy' output truncated before terminating nul \
> copying 4 bytes from a string of the same length [-Wstringop-truncation] strncpy(p, \
> "sip:", 4); ^~~~~~~~~~~~~~~~~~~~~

---

Modified: src/modules/presence/subscribe.c
Modified: src/modules/presence/utils_func.h

---

Diff:  https://github.com/kamailio/kamailio/commit/1062d636fe3a5b79b0ee789e36fd205ea4b87fb3.diff
                
Patch: https://github.com/kamailio/kamailio/commit/1062d636fe3a5b79b0ee789e36fd205ea4b87fb3.patch


---

diff --git a/src/modules/presence/subscribe.c b/src/modules/presence/subscribe.c
index e3352b1615..e5d8c62d30 100644
--- a/src/modules/presence/subscribe.c
+++ b/src/modules/presence/subscribe.c
@@ -71,14 +71,14 @@ static int send_2XX_reply(sip_msg_t *msg, int reply_code,
 	{
 		ERR_MEM(PKG_MEM_STR);
 	}
-	strncpy(hdr_append.s, "Expires: ", 9);
-	strncpy(hdr_append.s+9, tmp.s, tmp.len);
+	memcpy(hdr_append.s, "Expires: ", 9);
+	memcpy(hdr_append.s+9, tmp.s, tmp.len);
 	tmp.s = hdr_append.s+9+tmp.len;
-	strncpy(tmp.s, CRLF, CRLF_LEN);
+	memcpy(tmp.s, CRLF, CRLF_LEN);
 	tmp.s += CRLF_LEN;
-	strncpy(tmp.s, "Contact: <", 10);
+	memcpy(tmp.s, "Contact: <", 10);
 	tmp.s += 10;
-	strncpy(tmp.s, local_contact->s, local_contact->len);
+	memcpy(tmp.s, local_contact->s, local_contact->len);
 	tmp.s[local_contact->len] = '\0';
 	t = strstr(tmp.s, ";transport=");
 	tmp.s += local_contact->len;
@@ -87,22 +87,22 @@ static int send_2XX_reply(sip_msg_t *msg, int reply_code,
 		switch (msg->rcv.proto)
 		{
 			case PROTO_TCP:
-				strncpy(tmp.s, ";transport=tcp", 14);
+				memcpy(tmp.s, ";transport=tcp", 14);
 				tmp.s += 14;
 				hdr_append.len -= 1;
 				break;
 			case PROTO_TLS:
-				strncpy(tmp.s, ";transport=tls", 14);
+				memcpy(tmp.s, ";transport=tls", 14);
 				tmp.s += 14;
 				hdr_append.len -= 1;
 				break;
 			case PROTO_SCTP:
-				strncpy(tmp.s, ";transport=sctp", 15);
+				memcpy(tmp.s, ";transport=sctp", 15);
 				tmp.s += 15;
 				break;
 			case PROTO_WS:
 			case PROTO_WSS:
-				strncpy(tmp.s, ";transport=ws", 13);
+				memcpy(tmp.s, ";transport=ws", 13);
 				tmp.s += 13;
 				hdr_append.len -= 2;
 				break;
@@ -113,7 +113,7 @@ static int send_2XX_reply(sip_msg_t *msg, int reply_code,
 		hdr_append.len -= 15;
 	}
 	*tmp.s = '>';
-	strncpy(tmp.s+1, CRLF, CRLF_LEN);
+	memcpy(tmp.s+1, CRLF, CRLF_LEN);
 
 	hdr_append.s[hdr_append.len]= '\0';
 
diff --git a/src/modules/presence/utils_func.h b/src/modules/presence/utils_func.h
index b68890f21c..bfc8c5654f 100644
--- a/src/modules/presence/utils_func.h
+++ b/src/modules/presence/utils_func.h
@@ -139,7 +139,7 @@ static inline int ps_fill_local_contact(struct sip_msg* msg, str \
*contact)  
 	p = contact->s;
 	if(strncmp(ip.s, "sip:", 4)!=0) {
-		strncpy(p, "sip:", 4);
+		memcpy(p, "sip:", 4);
 		contact->len += 4;
 		p += 4;
 	}


_______________________________________________
Kamailio (SER) - Development Mailing List
sr-dev@lists.kamailio.org
https://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-dev


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic