aboutsummaryrefslogtreecommitdiffstats
path: root/channels
diff options
context:
space:
mode:
authortilghman <tilghman@f38db490-d61c-443f-a65b-d21fe96a405b>2008-03-07 06:54:47 +0000
committertilghman <tilghman@f38db490-d61c-443f-a65b-d21fe96a405b>2008-03-07 06:54:47 +0000
commit84aa522629f32c10b81a082f2ee91adff67c90f1 (patch)
tree3f8307275224caab3a5ba9fae26b4eebf54ab4cf /channels
parentb1028d3f65e208e36f7426b7f9b1f98d2c22b889 (diff)
Merged revisions 106552 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4 ........ r106552 | tilghman | 2008-03-07 00:36:33 -0600 (Fri, 07 Mar 2008) | 6 lines Safely use the strncat() function. (closes issue #11958) Reported by: norman Patches: 20080209__bug11958.diff.txt uploaded by Corydon76 (license 14) ........ git-svn-id: http://svn.digium.com/svn/asterisk/trunk@106553 f38db490-d61c-443f-a65b-d21fe96a405b
Diffstat (limited to 'channels')
-rw-r--r--channels/chan_misdn.c8
-rw-r--r--channels/chan_sip.c4
2 files changed, 6 insertions, 6 deletions
diff --git a/channels/chan_misdn.c b/channels/chan_misdn.c
index 252b00438..f94f2527b 100644
--- a/channels/chan_misdn.c
+++ b/channels/chan_misdn.c
@@ -2384,12 +2384,12 @@ static int misdn_digit_end(struct ast_channel *ast, char digit, unsigned int dur
switch (p->state ) {
case MISDN_CALLING:
if (strlen(bc->infos_pending) < sizeof(bc->infos_pending) - 1)
- strncat(bc->infos_pending, buf, sizeof(bc->infos_pending) - 1);
+ strncat(bc->infos_pending, buf, sizeof(bc->infos_pending) - strlen(bc->infos_pending) - 1);
break;
case MISDN_CALLING_ACKNOWLEDGE:
ast_copy_string(bc->info_dad, buf, sizeof(bc->info_dad));
if (strlen(bc->dad) < sizeof(bc->dad) - 1)
- strncat(bc->dad, buf, sizeof(bc->dad) - 1);
+ strncat(bc->dad, buf, sizeof(bc->dad) - strlen(bc->dad) - 1);
ast_copy_string(p->ast->exten, bc->dad, sizeof(p->ast->exten));
misdn_lib_send_event( bc, EVENT_INFORMATION);
break;
@@ -4112,7 +4112,7 @@ cb_events(enum event_e event, struct misdn_bchannel *bc, void *user_data)
ast_copy_string(bc->info_dad, bc->keypad, sizeof(bc->info_dad));
}
- strncat(bc->dad,bc->info_dad, sizeof(bc->dad) - 1);
+ strncat(bc->dad,bc->info_dad, sizeof(bc->dad) - strlen(bc->dad) - 1);
ast_copy_string(ch->ast->exten, bc->dad, sizeof(ch->ast->exten));
/* Check for Pickup Request first */
@@ -4186,7 +4186,7 @@ cb_events(enum event_e event, struct misdn_bchannel *bc, void *user_data)
misdn_cfg_get(0, MISDN_GEN_APPEND_DIGITS2EXTEN, &digits, sizeof(digits));
if (ch->state != MISDN_CONNECTED ) {
if (digits) {
- strncat(bc->dad, bc->info_dad, sizeof(bc->dad) - 1);
+ strncat(bc->dad, bc->info_dad, sizeof(bc->dad) - strlen(bc->dad) - 1);
ast_copy_string(ch->ast->exten, bc->dad, sizeof(ch->ast->exten));
ast_cdr_update(ch->ast);
}
diff --git a/channels/chan_sip.c b/channels/chan_sip.c
index fa9052dfa..40645214a 100644
--- a/channels/chan_sip.c
+++ b/channels/chan_sip.c
@@ -2208,7 +2208,7 @@ static void *_sip_tcp_helper_thread(struct sip_pvt *pvt, struct ast_tcptls_serve
ast_mutex_unlock(req.socket.lock);
if (me->stop)
goto cleanup;
- strncat(req.data, buf, sizeof(req.data) - req.len);
+ strncat(req.data, buf, sizeof(req.data) - req.len - 1);
req.len = strlen(req.data);
}
parse_copy(&reqcpy, &req);
@@ -2223,7 +2223,7 @@ static void *_sip_tcp_helper_thread(struct sip_pvt *pvt, struct ast_tcptls_serve
if (me->stop)
goto cleanup;
cl -= strlen(buf);
- strncat(req.data, buf, sizeof(req.data) - req.len);
+ strncat(req.data, buf, sizeof(req.data) - req.len - 1);
req.len = strlen(req.data);
}
}