diff --git a/addons/chan_ooh323.c b/addons/chan_ooh323.c index c395d9084ccc6d1963c4da6ae087a3f28883fa7b..bf3991f683a77b2c844bb98d623f52c86a41b6c6 100644 --- a/addons/chan_ooh323.c +++ b/addons/chan_ooh323.c @@ -1800,7 +1800,7 @@ int ooh323_onReceivedSetup(ooCallData *call, Q931Message *pmsg) number[0] = '\0'; if(ooCallGetCalledPartyNumber(call, number, OO_MAX_NUMBER_LENGTH)== OO_OK) { - strncpy(p->exten, number, sizeof(p->exten)-1); + ast_copy_string(p->exten, number, sizeof(p->exten)); } else { update_our_aliases(call, p); if (!ast_strlen_zero(p->callee_dialedDigits)) { @@ -2296,8 +2296,7 @@ static struct ooh323_user *build_user(const char *name, struct ast_variable *v) if (user->incominglimit < 0) user->incominglimit = 0; } else if (!strcasecmp(v->name, "accountcode")) { - strncpy(user->accountcode, v->value, - sizeof(user->accountcode)-1); + ast_copy_string(user->accountcode, v->value, sizeof(user->accountcode)); } else if (!strcasecmp(v->name, "roundtrip")) { sscanf(v->value, "%d,%d", &user->rtdrcount, &user->rtdrinterval); } else if (!strcasecmp(v->name, "faststart")) { @@ -2832,12 +2831,12 @@ int reload_config(int reload) gRasGkMode = RasDiscoverGatekeeper; } else { gRasGkMode = RasUseSpecificGatekeeper; - strncpy(gGatekeeper, v->value, sizeof(gGatekeeper)-1); + ast_copy_string(gGatekeeper, v->value, sizeof(gGatekeeper)); } } else if (!strcasecmp(v->name, "logfile")) { - strncpy(gLogFile, v->value, sizeof(gLogFile)-1); + ast_copy_string(gLogFile, v->value, sizeof(gLogFile)); } else if (!strcasecmp(v->name, "context")) { - strncpy(gContext, v->value, sizeof(gContext)-1); + ast_copy_string(gContext, v->value, sizeof(gContext)); ast_verb(3, " == Setting default context to %s\n", gContext); } else if (!strcasecmp(v->name, "nat")) { gNat = ast_true(v->value); @@ -4307,7 +4306,7 @@ int configure_local_rtp(struct ooh323_pvt *p, ooCallData *call) } /* figure out our local RTP port and tell the H.323 stack about it*/ ast_rtp_instance_get_local_address(p->rtp, &tmp); - strncpy(lhost, ast_sockaddr_stringify_addr(&tmp), sizeof(lhost)); + ast_copy_string(lhost, ast_sockaddr_stringify_addr(&tmp), sizeof(lhost)); lport = ast_sockaddr_stringify_port(&tmp); if (p->rtptimeout) { @@ -4351,7 +4350,7 @@ int configure_local_rtp(struct ooh323_pvt *p, ooCallData *call) if (p->udptl) { ast_udptl_get_us(p->udptl, &tmp); - strncpy(lhost, ast_sockaddr_stringify_addr(&tmp), sizeof(lhost)); + ast_copy_string(lhost, ast_sockaddr_stringify_addr(&tmp), sizeof(lhost)); lport = ast_sockaddr_stringify_port(&tmp); ast_copy_string(mediaInfo.lMediaIP, lhost, sizeof(mediaInfo.lMediaIP)); mediaInfo.lMediaPort = atoi(lport); diff --git a/apps/app_alarmreceiver.c b/apps/app_alarmreceiver.c index 574a59d3549aed49426d6d5873e0cc1c52d29a20..53dac302e3b15e61d1ddfc722c3e897c4857e9ad 100644 --- a/apps/app_alarmreceiver.c +++ b/apps/app_alarmreceiver.c @@ -663,7 +663,6 @@ static int load_config(void) p = ast_variable_retrieve(cfg, "general", "eventcmd"); if (p) { ast_copy_string(event_app, p, sizeof(event_app)); - event_app[sizeof(event_app) - 1] = '\0'; } p = ast_variable_retrieve(cfg, "general", "loudness"); if (p) { @@ -698,19 +697,16 @@ static int load_config(void) p = ast_variable_retrieve(cfg, "general", "eventspooldir"); if (p) { ast_copy_string(event_spool_dir, p, sizeof(event_spool_dir)); - event_spool_dir[sizeof(event_spool_dir) - 1] = '\0'; } p = ast_variable_retrieve(cfg, "general", "timestampformat"); if (p) { ast_copy_string(time_stamp_format, p, sizeof(time_stamp_format)); - time_stamp_format[sizeof(time_stamp_format) - 1] = '\0'; } p = ast_variable_retrieve(cfg, "general", "db-family"); if (p) { ast_copy_string(db_family, p, sizeof(db_family)); - db_family[sizeof(db_family) - 1] = '\0'; } ast_config_destroy(cfg); } diff --git a/channels/iax2-provision.c b/channels/iax2-provision.c index 26c7a0b5d580f5bb60d01b91e7af8bea5d534c7b..03b042b10e7a0499bd75aaaedaf2ae306b8e434e 100644 --- a/channels/iax2-provision.c +++ b/channels/iax2-provision.c @@ -311,7 +311,7 @@ static int iax_template_parse(struct iax_template *cur, struct ast_config *cfg, ast_mutex_unlock(&provlock); } if (def) - strncpy(cur->src, def, sizeof(cur->src) - 1); + ast_copy_string(cur->src, def, sizeof(cur->src)); else cur->src[0] = '\0'; v = ast_variable_browse(cfg, s); @@ -347,15 +347,15 @@ static int iax_template_parse(struct iax_template *cur, struct ast_config *cfg, if (ast_str2tos(v->value, &cur->tos)) ast_log(LOG_WARNING, "Invalid tos value at line %d, refer to QoS documentation\n", v->lineno); } else if (!strcasecmp(v->name, "user")) { - strncpy(cur->user, v->value, sizeof(cur->user) - 1); + ast_copy_string(cur->user, v->value, sizeof(cur->user)); if (strcmp(cur->user, v->value)) ast_log(LOG_WARNING, "Truncating username from '%s' to '%s' for '%s' at line %d\n", v->value, cur->user, s, v->lineno); } else if (!strcasecmp(v->name, "pass")) { - strncpy(cur->pass, v->value, sizeof(cur->pass) - 1); + ast_copy_string(cur->pass, v->value, sizeof(cur->pass)); if (strcmp(cur->pass, v->value)) ast_log(LOG_WARNING, "Truncating password from '%s' to '%s' for '%s' at line %d\n", v->value, cur->pass, s, v->lineno); } else if (!strcasecmp(v->name, "language")) { - strncpy(cur->lang, v->value, sizeof(cur->lang) - 1); + ast_copy_string(cur->lang, v->value, sizeof(cur->lang)); if (strcmp(cur->lang, v->value)) ast_log(LOG_WARNING, "Truncating language from '%s' to '%s' for '%s' at line %d\n", v->value, cur->lang, s, v->lineno); } else if (!strcasecmp(v->name, "flags")) { @@ -391,7 +391,7 @@ static int iax_process_template(struct ast_config *cfg, char *s, char *def) return -1; } /* Initialize entry */ - strncpy(cur->name, s, sizeof(cur->name) - 1); + ast_copy_string(cur->name, s, sizeof(cur->name)); cur->dead = 1; } if (!iax_template_parse(cur, cfg, s, def)) diff --git a/res/snmp/agent.c b/res/snmp/agent.c index 3cc630471f46560f78ea634c92c4dad3cf94449f..f36cbf66d7600381ce63217825b7db3b6052f204 100644 --- a/res/snmp/agent.c +++ b/res/snmp/agent.c @@ -269,54 +269,47 @@ static u_char *ast_var_channels_table(struct variable *vp, oid *name, size_t *le break; case ASTCHANNAME: if (!ast_strlen_zero(ast_channel_name(chan))) { - strncpy(string_ret, ast_channel_name(chan), sizeof(string_ret)); - string_ret[sizeof(string_ret) - 1] = '\0'; + ast_copy_string(string_ret, ast_channel_name(chan), sizeof(string_ret)); *var_len = strlen(string_ret); ret = (u_char *)string_ret; } break; case ASTCHANLANGUAGE: if (!ast_strlen_zero(ast_channel_language(chan))) { - strncpy(string_ret, ast_channel_language(chan), sizeof(string_ret)); - string_ret[sizeof(string_ret) - 1] = '\0'; + ast_copy_string(string_ret, ast_channel_language(chan), sizeof(string_ret)); *var_len = strlen(string_ret); ret = (u_char *)string_ret; } break; case ASTCHANTYPE: - strncpy(string_ret, ast_channel_tech(chan)->type, sizeof(string_ret)); - string_ret[sizeof(string_ret) - 1] = '\0'; + ast_copy_string(string_ret, ast_channel_tech(chan)->type, sizeof(string_ret)); *var_len = strlen(string_ret); ret = (u_char *)string_ret; break; case ASTCHANMUSICCLASS: if (!ast_strlen_zero(ast_channel_musicclass(chan))) { - strncpy(string_ret, ast_channel_musicclass(chan), sizeof(string_ret)); - string_ret[sizeof(string_ret) - 1] = '\0'; + ast_copy_string(string_ret, ast_channel_musicclass(chan), sizeof(string_ret)); *var_len = strlen(string_ret); ret = (u_char *)string_ret; } break; case ASTCHANBRIDGE: if ((bridge = ast_bridged_channel(chan)) != NULL) { - strncpy(string_ret, ast_channel_name(bridge), sizeof(string_ret)); - string_ret[sizeof(string_ret) - 1] = '\0'; + ast_copy_string(string_ret, ast_channel_name(bridge), sizeof(string_ret)); *var_len = strlen(string_ret); ret = (u_char *)string_ret; } break; case ASTCHANMASQ: if (ast_channel_masq(chan) && !ast_strlen_zero(ast_channel_name(ast_channel_masq(chan)))) { - strncpy(string_ret, ast_channel_name(ast_channel_masq(chan)), sizeof(string_ret)); - string_ret[sizeof(string_ret) - 1] = '\0'; + ast_copy_string(string_ret, ast_channel_name(ast_channel_masq(chan)), sizeof(string_ret)); *var_len = strlen(string_ret); ret = (u_char *)string_ret; } break; case ASTCHANMASQR: if (ast_channel_masqr(chan) && !ast_strlen_zero(ast_channel_name(ast_channel_masqr(chan)))) { - strncpy(string_ret, ast_channel_name(ast_channel_masqr(chan)), sizeof(string_ret)); - string_ret[sizeof(string_ret) - 1] = '\0'; + ast_copy_string(string_ret, ast_channel_name(ast_channel_masqr(chan)), sizeof(string_ret)); *var_len = strlen(string_ret); ret = (u_char *)string_ret; } @@ -330,35 +323,30 @@ static u_char *ast_var_channels_table(struct variable *vp, oid *name, size_t *le break; case ASTCHANAPP: if (ast_channel_appl(chan)) { - strncpy(string_ret, ast_channel_appl(chan), sizeof(string_ret)); - string_ret[sizeof(string_ret) - 1] = '\0'; + ast_copy_string(string_ret, ast_channel_appl(chan), sizeof(string_ret)); *var_len = strlen(string_ret); ret = (u_char *)string_ret; } break; case ASTCHANDATA: if (ast_channel_data(chan)) { - strncpy(string_ret, ast_channel_data(chan), sizeof(string_ret)); - string_ret[sizeof(string_ret) - 1] = '\0'; + ast_copy_string(string_ret, ast_channel_data(chan), sizeof(string_ret)); *var_len = strlen(string_ret); ret = (u_char *)string_ret; } break; case ASTCHANCONTEXT: - strncpy(string_ret, ast_channel_context(chan), sizeof(string_ret)); - string_ret[sizeof(string_ret) - 1] = '\0'; + ast_copy_string(string_ret, ast_channel_context(chan), sizeof(string_ret)); *var_len = strlen(string_ret); ret = (u_char *)string_ret; break; case ASTCHANMACROCONTEXT: - strncpy(string_ret, ast_channel_macrocontext(chan), sizeof(string_ret)); - string_ret[sizeof(string_ret) - 1] = '\0'; + ast_copy_string(string_ret, ast_channel_macrocontext(chan), sizeof(string_ret)); *var_len = strlen(string_ret); ret = (u_char *)string_ret; break; case ASTCHANMACROEXTEN: - strncpy(string_ret, ast_channel_macroexten(chan), sizeof(string_ret)); - string_ret[sizeof(string_ret) - 1] = '\0'; + ast_copy_string(string_ret, ast_channel_macroexten(chan), sizeof(string_ret)); *var_len = strlen(string_ret); ret = (u_char *)string_ret; break; @@ -367,8 +355,7 @@ static u_char *ast_var_channels_table(struct variable *vp, oid *name, size_t *le ret = (u_char *)&long_ret; break; case ASTCHANEXTEN: - strncpy(string_ret, ast_channel_exten(chan), sizeof(string_ret)); - string_ret[sizeof(string_ret) - 1] = '\0'; + ast_copy_string(string_ret, ast_channel_exten(chan), sizeof(string_ret)); *var_len = strlen(string_ret); ret = (u_char *)string_ret; break; @@ -378,23 +365,20 @@ static u_char *ast_var_channels_table(struct variable *vp, oid *name, size_t *le break; case ASTCHANACCOUNTCODE: if (!ast_strlen_zero(ast_channel_accountcode(chan))) { - strncpy(string_ret, ast_channel_accountcode(chan), sizeof(string_ret)); - string_ret[sizeof(string_ret) - 1] = '\0'; + ast_copy_string(string_ret, ast_channel_accountcode(chan), sizeof(string_ret)); *var_len = strlen(string_ret); ret = (u_char *)string_ret; } break; case ASTCHANFORWARDTO: if (!ast_strlen_zero(ast_channel_call_forward(chan))) { - strncpy(string_ret, ast_channel_call_forward(chan), sizeof(string_ret)); - string_ret[sizeof(string_ret) - 1] = '\0'; + ast_copy_string(string_ret, ast_channel_call_forward(chan), sizeof(string_ret)); *var_len = strlen(string_ret); ret = (u_char *)string_ret; } break; case ASTCHANUNIQUEID: - strncpy(string_ret, ast_channel_uniqueid(chan), sizeof(string_ret)); - string_ret[sizeof(string_ret) - 1] = '\0'; + ast_copy_string(string_ret, ast_channel_uniqueid(chan), sizeof(string_ret)); *var_len = strlen(string_ret); ret = (u_char *)string_ret; break; @@ -420,40 +404,35 @@ static u_char *ast_var_channels_table(struct variable *vp, oid *name, size_t *le break; case ASTCHANCIDDNID: if (ast_channel_dialed(chan)->number.str) { - strncpy(string_ret, ast_channel_dialed(chan)->number.str, sizeof(string_ret)); - string_ret[sizeof(string_ret) - 1] = '\0'; + ast_copy_string(string_ret, ast_channel_dialed(chan)->number.str, sizeof(string_ret)); *var_len = strlen(string_ret); ret = (u_char *)string_ret; } break; case ASTCHANCIDNUM: if (ast_channel_caller(chan)->id.number.valid && ast_channel_caller(chan)->id.number.str) { - strncpy(string_ret, ast_channel_caller(chan)->id.number.str, sizeof(string_ret)); - string_ret[sizeof(string_ret) - 1] = '\0'; + ast_copy_string(string_ret, ast_channel_caller(chan)->id.number.str, sizeof(string_ret)); *var_len = strlen(string_ret); ret = (u_char *)string_ret; } break; case ASTCHANCIDNAME: if (ast_channel_caller(chan)->id.name.valid && ast_channel_caller(chan)->id.name.str) { - strncpy(string_ret, ast_channel_caller(chan)->id.name.str, sizeof(string_ret)); - string_ret[sizeof(string_ret) - 1] = '\0'; + ast_copy_string(string_ret, ast_channel_caller(chan)->id.name.str, sizeof(string_ret)); *var_len = strlen(string_ret); ret = (u_char *)string_ret; } break; case ASTCHANCIDANI: if (ast_channel_caller(chan)->ani.number.valid && ast_channel_caller(chan)->ani.number.str) { - strncpy(string_ret, ast_channel_caller(chan)->ani.number.str, sizeof(string_ret)); - string_ret[sizeof(string_ret) - 1] = '\0'; + ast_copy_string(string_ret, ast_channel_caller(chan)->ani.number.str, sizeof(string_ret)); *var_len = strlen(string_ret); ret = (u_char *)string_ret; } break; case ASTCHANCIDRDNIS: if (ast_channel_redirecting(chan)->from.number.valid && ast_channel_redirecting(chan)->from.number.str) { - strncpy(string_ret, ast_channel_redirecting(chan)->from.number.str, sizeof(string_ret)); - string_ret[sizeof(string_ret) - 1] = '\0'; + ast_copy_string(string_ret, ast_channel_redirecting(chan)->from.number.str, sizeof(string_ret)); *var_len = strlen(string_ret); ret = (u_char *)string_ret; } @@ -484,8 +463,7 @@ static u_char *ast_var_channels_table(struct variable *vp, oid *name, size_t *le break; case ASTCHANTONEZONE: if (ast_channel_zone(chan)) { - strncpy(string_ret, ast_channel_zone(chan)->country, sizeof(string_ret)); - string_ret[sizeof(string_ret) - 1] = '\0'; + ast_copy_string(string_ret, ast_channel_zone(chan)->country, sizeof(string_ret)); *var_len = strlen(string_ret); ret = (u_char *)string_ret; }