[Asterisk-code-review] Fix GCC 8 build issues. (asterisk[13])

Corey Farrell asteriskteam at digium.com
Mon May 7 10:58:30 CDT 2018


Corey Farrell has uploaded this change for review. ( https://gerrit.asterisk.org/8936


Change subject: Fix GCC 8 build issues.
......................................................................

Fix GCC 8 build issues.

This fixes build warnings found by GCC 8.  In some cases format
truncation is intentional so the warning is just suppressed.

ASTERISK-27824 #close

Change-Id: I724f146cbddba8b86619d4c4a9931ee877995c84
---
M addons/Makefile
M apps/Makefile
M apps/app_minivm.c
M apps/app_queue.c
M apps/app_sms.c
M apps/app_test.c
M apps/app_voicemail.c
M channels/Makefile
M channels/chan_dahdi.c
M channels/chan_iax2.c
M channels/chan_sip.c
M channels/chan_skinny.c
M channels/iax2/parser.c
M configure
M configure.ac
M funcs/func_groupcount.c
M main/config.c
M main/manager.c
M main/pbx.c
M makeopts.in
M pbx/dundi-parser.c
M pbx/pbx_dundi.c
M res/Makefile
M res/res_config_ldap.c
M res/res_musiconhold.c
M tests/Makefile
M tests/test_voicemail_api.c
M utils/Makefile
M utils/ael_main.c
M utils/astman.c
M utils/db1-ast/hash/ndbm.c
M utils/extconf.c
32 files changed, 96 insertions(+), 55 deletions(-)



  git pull ssh://gerrit.asterisk.org:29418/asterisk refs/changes/36/8936/1

diff --git a/addons/Makefile b/addons/Makefile
index 3d4045d..0c11bfc 100644
--- a/addons/Makefile
+++ b/addons/Makefile
@@ -65,6 +65,7 @@
 format_mp3.so: mp3/common.o mp3/dct64_i386.o mp3/decode_ntom.o mp3/layer3.o mp3/tabinit.o mp3/interface.o
 endif
 
+chan_mobile.o: _ASTCFLAGS+=$(AST_NO_FORMAT_TRUNCATION)
 chan_ooh323.o: _ASTCFLAGS+=$(H323CFLAGS)
 chan_ooh323.so: _ASTCFLAGS+=$(H323CFLAGS)
 chan_ooh323.so: $(addprefix ooh323c/src/,$(H323OBJS)) chan_ooh323.o ooh323cDriver.o
diff --git a/apps/Makefile b/apps/Makefile
index 13c77ab..3e3dc00 100644
--- a/apps/Makefile
+++ b/apps/Makefile
@@ -30,7 +30,11 @@
 clean::
 	rm -f confbridge/*.o confbridge/*.i confbridge/*.gcda confbridge/*.gcno
 
+app_confbridge.o: _ASTCFLAGS+=$(AST_NO_FORMAT_TRUNCATION)
+app_meetme.o: _ASTCFLAGS+=$(AST_NO_FORMAT_TRUNCATION)
+app_minivm.o: _ASTCFLAGS+=$(AST_NO_FORMAT_TRUNCATION)
 app_voicemail.o: _ASTCFLAGS+=$(AST_NO_FORMAT_TRUNCATION)
+app_while.o: _ASTCFLAGS+=$(AST_NO_FORMAT_TRUNCATION)
 
 app_confbridge.so: $(subst .c,.o,$(wildcard confbridge/*.c))
 $(subst .c,.o,$(wildcard confbridge/*.c)): _ASTCFLAGS+=$(call MOD_ASTCFLAGS,app_confbridge)
diff --git a/apps/app_minivm.c b/apps/app_minivm.c
index a3dcef8..64ba7e0 100644
--- a/apps/app_minivm.c
+++ b/apps/app_minivm.c
@@ -2788,11 +2788,11 @@
 	       switch (tmpwrite[1]) {
 	       case 'n':
 		      memmove(tmpwrite + len, tmpwrite + 2, strlen(tmpwrite + 2) + 1);
-		      strncpy(tmpwrite, "\n", len);
+		      strcpy(tmpwrite, "\n"); /* SAFE */
 		      break;
 	       case 't':
 		      memmove(tmpwrite + len, tmpwrite + 2, strlen(tmpwrite + 2) + 1);
-		      strncpy(tmpwrite, "\t", len);
+		      strcpy(tmpwrite, "\t"); /* SAFE */
 		      break;
 	       default:
 		      ast_log(LOG_NOTICE, "Substitution routine does not support this character: %c\n", tmpwrite[1]);
diff --git a/apps/app_queue.c b/apps/app_queue.c
index b42eac2..390bdb0 100644
--- a/apps/app_queue.c
+++ b/apps/app_queue.c
@@ -6411,7 +6411,7 @@
 static void setup_mixmonitor(struct queue_ent *qe, const char *filename)
 {
 	char escaped_filename[256];
-	char file_with_ext[256];
+	char file_with_ext[264];
 	char mixmonargs[1512];
 	char escaped_monitor_exec[1024];
 	const char *monitor_options;
diff --git a/apps/app_sms.c b/apps/app_sms.c
index c3d8ccd..df84d2a 100644
--- a/apps/app_sms.c
+++ b/apps/app_sms.c
@@ -1207,7 +1207,7 @@
 {
 	struct ast_tm tm;
 	struct timeval now = h->scts;
-	char stm[9];
+	char stm[45];
 
 	h->omsg[0] = 0x00;                      /* set later... */
 	h->omsg[1] = 0;
diff --git a/apps/app_test.c b/apps/app_test.c
index a5494c5..ba5960d 100644
--- a/apps/app_test.c
+++ b/apps/app_test.c
@@ -332,7 +332,7 @@
 {
 	int res = 0;
 	char testid[80]="";
-	char fn[80];
+	char fn[104];
 	FILE *f;
 	if (ast_channel_state(chan) != AST_STATE_UP)
 		res = ast_answer(chan);
diff --git a/apps/app_voicemail.c b/apps/app_voicemail.c
index 86f2873..db65c12 100644
--- a/apps/app_voicemail.c
+++ b/apps/app_voicemail.c
@@ -1010,7 +1010,7 @@
 	int old_new;
 	int old_old;
 	char *uniqueid;
-	char mailbox[1];
+	char mailbox[0];
 };
 
 struct mwi_sub_task {
@@ -13167,7 +13167,7 @@
 	struct mwi_sub *mwi_sub;
 	struct mwi_sub_task *p = datap;
 
-	len = sizeof(*mwi_sub);
+	len = sizeof(*mwi_sub) + 1;
 	if (!ast_strlen_zero(p->mailbox))
 		len += strlen(p->mailbox);
 
diff --git a/channels/Makefile b/channels/Makefile
index 6314279..49adb34 100644
--- a/channels/Makefile
+++ b/channels/Makefile
@@ -50,6 +50,9 @@
 $(CHAN_DAHDI_OBJS): _ASTCFLAGS+=$(call MOD_ASTCFLAGS,chan_dahdi)
 
 chan_mgcp.o: _ASTCFLAGS+=$(AST_NO_FORMAT_TRUNCATION)
+chan_unistim.o: _ASTCFLAGS+=$(AST_NO_FORMAT_TRUNCATION)
+chan_phone.o: _ASTCFLAGS+=$(AST_NO_FORMAT_TRUNCATION)
+chan_sip.o: _ASTCFLAGS+=$(AST_NO_FORMAT_TRUNCATION)
 
 chan_misdn.o: _ASTCFLAGS+=-Imisdn
 
diff --git a/channels/chan_dahdi.c b/channels/chan_dahdi.c
index 8669267..6870e67 100644
--- a/channels/chan_dahdi.c
+++ b/channels/chan_dahdi.c
@@ -1864,7 +1864,7 @@
  */
 static void dahdi_ami_channel_event(struct dahdi_pvt *p, struct ast_channel *chan)
 {
-	char ch_name[20];
+	char ch_name[23];
 
 	if (p->channel < CHAN_PSEUDO) {
 		/* No B channel */
diff --git a/channels/chan_iax2.c b/channels/chan_iax2.c
index 97cbe73..00c0b56 100644
--- a/channels/chan_iax2.c
+++ b/channels/chan_iax2.c
@@ -14319,7 +14319,7 @@
 static int iax2_exec(struct ast_channel *chan, const char *context, const char *exten, int priority, const char *callerid, const char *data)
 {
 	char odata[256];
-	char req[256];
+	char req[263];
 	char *ncontext;
 	struct iax2_dpcache *dp = NULL;
 	struct ast_app *dial = NULL;
diff --git a/channels/chan_sip.c b/channels/chan_sip.c
index 4e65c7b..26a32e6 100644
--- a/channels/chan_sip.c
+++ b/channels/chan_sip.c
@@ -11841,7 +11841,7 @@
 	int start = 0;
 
 	for (;;) {
-		char new[512];
+		char new[535];
 		const char *oh = __get_header(orig, field, &start);
 
 		if (ast_strlen_zero(oh))
@@ -14527,7 +14527,7 @@
 	struct ast_party_id diverting_from;
 	const char *reason;
 	const char *quote_str;
-	char header_text[256];
+	char header_text[538];
 	char encoded_number[SIPBUFSIZE/2];
 
 	/* We skip this entirely if the configuration doesn't allow diversion headers */
@@ -17291,7 +17291,7 @@
 	{
 		char a2[256];
 		char a2_hash[256];
-		char resp[256];
+		char resp[513];
 
 		snprintf(a2, sizeof(a2), "%s:%s", sip_methods[sipmethod].text,
 				S_OR(keys[K_URI].s, uri));
@@ -22867,10 +22867,10 @@
 static int build_reply_digest(struct sip_pvt *p, int method, char* digest, int digest_len)
 {
 	char a1[256];
-	char a2[256];
+	char a2[257];
 	char a1_hash[256];
 	char a2_hash[256];
-	char resp[256];
+	char resp[607];
 	char resp_hash[256];
 	char uri[256];
 	char opaque[256] = "";
@@ -35001,21 +35001,22 @@
 	struct ast_str *overflow;
 	struct {
 		char **fragments;
+		size_t fragment_count;
 		char **expected;
 		int num_expected;
 		const char *description;
 	} tests[] = {
-		{ normal, normal, 1, "normal" },
-		{ fragmented, normal, 1, "fragmented" },
-		{ fragmented_body, normal, 1, "fragmented_body" },
-		{ multi_fragment, normal, 1, "multi_fragment" },
-		{ multi_message, multi_message_divided, 2, "multi_message" },
-		{ multi_message_body, multi_message_body_divided, 2, "multi_message_body" },
-		{ multi_message_in_fragments, multi_message_divided, 2, "multi_message_in_fragments" },
-		{ compact, compact, 1, "compact" },
-		{ faux, faux, 1, "faux" },
-		{ folded, folded, 1, "folded" },
-		{ cl_in_body, cl_in_body, 1, "cl_in_body" },
+		{ normal, ARRAY_LEN(normal), normal, 1, "normal" },
+		{ fragmented, ARRAY_LEN(fragmented), normal, 1, "fragmented" },
+		{ fragmented_body, ARRAY_LEN(fragmented_body), normal, 1, "fragmented_body" },
+		{ multi_fragment, ARRAY_LEN(multi_fragment), normal, 1, "multi_fragment" },
+		{ multi_message, ARRAY_LEN(multi_message), multi_message_divided, 2, "multi_message" },
+		{ multi_message_body, ARRAY_LEN(multi_message_body), multi_message_body_divided, 2, "multi_message_body" },
+		{ multi_message_in_fragments, ARRAY_LEN(multi_message_in_fragments), multi_message_divided, 2, "multi_message_in_fragments" },
+		{ compact, ARRAY_LEN(compact), compact, 1, "compact" },
+		{ faux, ARRAY_LEN(faux), faux, 1, "faux" },
+		{ folded, ARRAY_LEN(folded), folded, 1, "folded" },
+		{ cl_in_body, ARRAY_LEN(cl_in_body), cl_in_body, 1, "cl_in_body" },
 	};
 	int i;
 	enum ast_test_result_state res = AST_TEST_PASS;
@@ -35043,7 +35044,7 @@
 	}
 	for (i = 0; i < ARRAY_LEN(tests); ++i) {
 		int num_messages = 0;
-		if (mock_tcp_loop(tests[i].fragments, ARRAY_LEN(tests[i].fragments),
+		if (mock_tcp_loop(tests[i].fragments, tests[i].fragment_count,
 					&overflow, tests[i].expected, &num_messages, test)) {
 			ast_test_status_update(test, "Failed to parse message '%s'\n", tests[i].description);
 			res = AST_TEST_FAIL;
diff --git a/channels/chan_skinny.c b/channels/chan_skinny.c
index 97634bc..244cd7c 100644
--- a/channels/chan_skinny.c
+++ b/channels/chan_skinny.c
@@ -3709,49 +3709,49 @@
 	int posn = 0;
 
 	ptr = dbgcli_buf;
-	strncpy(ptr, "\0", 1);
+	ptr[0] = '\0';
 	if (skinnydebug & DEBUG_GENERAL) {
-		strncpy(ptr, "general ", 8);
+		strcpy(ptr, "general "); /* SAFE */
 		posn += 8;
 		ptr += 8;
 	}
 	if (skinnydebug & DEBUG_SUB) {
-		strncpy(ptr, "sub ", 4);
+		strcpy(ptr, "sub "); /* SAFE */
 		posn += 4;
 		ptr += 4;
 	}
 	if (skinnydebug & DEBUG_AUDIO) {
-		strncpy(ptr, "audio ", 6);
+		strcpy(ptr, "audio "); /* SAFE */
 		posn += 6;
 		ptr += 6;
 	}
 	if (skinnydebug & DEBUG_PACKET) {
-		strncpy(ptr, "packet ", 7);
+		strcpy(ptr, "packet "); /* SAFE */
 		posn += 7;
 		ptr += 7;
 	}
 	if (skinnydebug & DEBUG_LOCK) {
-		strncpy(ptr, "lock ", 5);
+		strcpy(ptr, "lock "); /* SAFE */
 		posn += 5;
 		ptr += 5;
 	}
 	if (skinnydebug & DEBUG_TEMPLATE) {
-		strncpy(ptr, "template ", 9);
+		strcpy(ptr, "template "); /* SAFE */
 		posn += 9;
 		ptr += 9;
 	}
 	if (skinnydebug & DEBUG_THREAD) {
-		strncpy(ptr, "thread ", 7);
+		strcpy(ptr, "thread "); /* SAFE */
 		posn += 7;
 		ptr += 7;
 	}
 	if (skinnydebug & DEBUG_HINT) {
-		strncpy(ptr, "hint ", 5);
+		strcpy(ptr, "hint "); /* SAFE */
 		posn += 5;
 		ptr += 5;
 	}
 	if (skinnydebug & DEBUG_KEEPALIVE) {
-		strncpy(ptr, "keepalive ", 10);
+		strcpy(ptr, "keepalive "); /* SAFE */
 		posn += 10;
 		ptr += 10;
 	}
@@ -6430,7 +6430,7 @@
 	case STIMULUS_CALLPARK:
 		{
 		char extout[AST_MAX_EXTENSION];
-		char message[32];
+		char message[96];
 		RAII_VAR(struct ast_bridge_channel *, bridge_channel, NULL, ao2_cleanup);
 		SKINNY_DEBUG(DEBUG_PACKET, 3, "Received STIMULUS_CALLPARK from %s, inst %d, callref %d\n",
 			d->name, instance, callreference);
@@ -7183,7 +7183,7 @@
 	case SOFTKEY_PARK:
 		{
 		char extout[AST_MAX_EXTENSION];
-		char message[32];
+		char message[96];
 		RAII_VAR(struct ast_bridge_channel *, bridge_channel, NULL, ao2_cleanup);
 		SKINNY_DEBUG(DEBUG_PACKET, 3, "Received SOFTKEY_PARK from %s, inst %d, callref %d\n",
 			d->name, instance, callreference);
diff --git a/channels/iax2/parser.c b/channels/iax2/parser.c
index c003a82..ec7226e 100644
--- a/channels/iax2/parser.c
+++ b/channels/iax2/parser.c
@@ -417,7 +417,7 @@
 	int x;
 	int found;
 	char interp[1024];
-	char tmp[1024];
+	char tmp[1046];
 
 	if (len < 2)
 		return;
diff --git a/configure b/configure
index ad6b9ab..0e6e871 100755
--- a/configure
+++ b/configure
@@ -686,6 +686,7 @@
 AST_RPATH
 AST_NATIVE_ARCH
 AST_SHADOW_WARNINGS
+AST_NO_STRINGOP_TRUNCATION
 AST_NO_FORMAT_TRUNCATION
 AST_NO_STRICT_OVERFLOW
 AST_FORTIFY_SOURCE
@@ -18611,6 +18612,19 @@
 fi
 
 
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for -Wno-stringop-truncation" >&5
+$as_echo_n "checking for -Wno-stringop-truncation... " >&6; }
+if $(${CC} -Wno-stringop-truncation -Werror -S -o /dev/null -xc /dev/null > /dev/null 2>&1); then
+	{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+	AST_NO_STRINGOP_TRUNCATION=-Wno-stringop-truncation
+else
+	{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+	AST_NO_STRINGOP_TRUNCATION=
+fi
+
+
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -Wshadow" >&5
 $as_echo_n "checking for -Wshadow... " >&6; }
 if $(${CC} -Wshadow -Werror -S -o /dev/null -xc /dev/null > /dev/null 2>&1); then
diff --git a/configure.ac b/configure.ac
index 8d798a7..f8f9ca1 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1277,6 +1277,16 @@
 fi
 AC_SUBST(AST_NO_FORMAT_TRUNCATION)
 
+AC_MSG_CHECKING(for -Wno-stringop-truncation)
+if $(${CC} -Wno-stringop-truncation -Werror -S -o /dev/null -xc /dev/null > /dev/null 2>&1); then
+	AC_MSG_RESULT(yes)
+	AST_NO_STRINGOP_TRUNCATION=-Wno-stringop-truncation
+else
+	AC_MSG_RESULT(no)
+	AST_NO_STRINGOP_TRUNCATION=
+fi
+AC_SUBST(AST_NO_STRINGOP_TRUNCATION)
+
 AC_MSG_CHECKING(for -Wshadow)
 if $(${CC} -Wshadow -Werror -S -o /dev/null -xc /dev/null > /dev/null 2>&1); then
 	AC_MSG_RESULT(yes)
diff --git a/funcs/func_groupcount.c b/funcs/func_groupcount.c
index 5c6439b..cc96490 100644
--- a/funcs/func_groupcount.c
+++ b/funcs/func_groupcount.c
@@ -243,7 +243,7 @@
 				    char *data, char *buf, size_t len)
 {
 	struct ast_group_info *gi = NULL;
-	char tmp1[1024] = "";
+	char tmp1[1026] = "";
 	char tmp2[1024] = "";
 
 	if (!chan)
diff --git a/main/config.c b/main/config.c
index 1cb5bbe..3f6fa9d 100644
--- a/main/config.c
+++ b/main/config.c
@@ -1738,7 +1738,8 @@
 	char *c;
 	char *cur = buf;
 	struct ast_variable *v;
-	char cmd[512], exec_file[512];
+	char cmd[520];
+	char exec_file[512];
 
 	/* Actually parse the entry */
 	if (cur[0] == '[') { /* A category header */
diff --git a/main/manager.c b/main/manager.c
index 1e60003..92162c6 100644
--- a/main/manager.c
+++ b/main/manager.c
@@ -7989,7 +7989,7 @@
 	/* compute the expected response to compare with what we received */
 	{
 		char a2[256];
-		char a2_hash[256];
+		char a2_hash[33];
 		char resp[256];
 
 		/* XXX Now request method are hardcoded in A2 */
diff --git a/main/pbx.c b/main/pbx.c
index b4599de..bcfd42d 100644
--- a/main/pbx.c
+++ b/main/pbx.c
@@ -6165,7 +6165,7 @@
 	char *last_presence_message;
 
 	AST_LIST_ENTRY(store_hint) list;
-	char data[1];
+	char data[0];
 };
 
 AST_LIST_HEAD_NOLOCK(store_hints, store_hint);
diff --git a/makeopts.in b/makeopts.in
index bedd2fa..6683d6e 100644
--- a/makeopts.in
+++ b/makeopts.in
@@ -119,6 +119,7 @@
 AST_TRAMPOLINES=@AST_TRAMPOLINES@
 AST_NO_STRICT_OVERFLOW=@AST_NO_STRICT_OVERFLOW@
 AST_NO_FORMAT_TRUNCATION=@AST_NO_FORMAT_TRUNCATION@
+AST_NO_STRINGOP_TRUNCATION=@AST_NO_STRINGOP_TRUNCATION@
 AST_SHADOW_WARNINGS=@AST_SHADOW_WARNINGS@
 AST_NESTED_FUNCTIONS=@AST_NESTED_FUNCTIONS@
 AST_CLANG_BLOCKS=@AST_CLANG_BLOCKS@
diff --git a/pbx/dundi-parser.c b/pbx/dundi-parser.c
index 9ca0dfb..daa7d71 100644
--- a/pbx/dundi-parser.c
+++ b/pbx/dundi-parser.c
@@ -388,7 +388,7 @@
 	int x;
 	int found;
 	char interp[1024];
-	char tmp[1024];
+	char tmp[1051];
 	if (len < 2)
 		return;
 	while(len >= 2) {
diff --git a/pbx/pbx_dundi.c b/pbx/pbx_dundi.c
index 7ec144d..2e3c393 100644
--- a/pbx/pbx_dundi.c
+++ b/pbx/pbx_dundi.c
@@ -1239,7 +1239,7 @@
 
 static int cache_lookup(struct dundi_request *req, dundi_eid *peer_eid, uint32_t crc, int *lowexpiration)
 {
-	char key[256];
+	char key[382];
 	char eid_str[20];
 	char eidroot_str[20];
 	time_t now;
diff --git a/res/Makefile b/res/Makefile
index 5a8f35a..4865883 100644
--- a/res/Makefile
+++ b/res/Makefile
@@ -29,7 +29,7 @@
 res_config_ldap.o: _ASTCFLAGS+=-DLDAP_DEPRECATED
 
 ael/ael_lex.o: ael/ael_lex.c ../include/asterisk/ael_structs.h ael/ael.tab.h
-ael/ael_lex.o: _ASTCFLAGS+=-I. -Iael -Wno-unused
+ael/ael_lex.o: _ASTCFLAGS+=-I. -Iael -Wno-unused $(AST_NO_FORMAT_TRUNCATION)
 
 ael/ael.tab.o: ael/ael.tab.c ael/ael.tab.h ../include/asterisk/ael_structs.h
 ael/ael.tab.o: _ASTCFLAGS+=-I. -Iael -DYYENABLE_NLS=0
@@ -95,5 +95,7 @@
 res_stasis_recording.so: stasis_recording/stored.o
 stasis_recording/stored.o:  _ASTCFLAGS+=$(call MOD_ASTCFLAGS,res_stasis_recording)
 
+res_parking.o: _ASTCFLAGS+=$(AST_NO_FORMAT_TRUNCATION)
+
 # Dependencies for res_ari_*.so are generated, so they're in this file
 include ari.make
diff --git a/res/res_config_ldap.c b/res/res_config_ldap.c
index e3935e0..8e12a3e 100644
--- a/res/res_config_ldap.c
+++ b/res/res_config_ldap.c
@@ -1961,7 +1961,8 @@
  */
 static char *realtime_ldap_status(struct ast_cli_entry *e, int cmd, struct ast_cli_args *a)
 {
-	char status[256], credentials[100] = "";
+	char status[1047];
+	char credentials[sizeof(user) + 15] = "";
 	int ctimesec = time(NULL) - connect_time;
 
 	switch (cmd) {
diff --git a/res/res_musiconhold.c b/res/res_musiconhold.c
index 17bcd90..d0b12e3 100644
--- a/res/res_musiconhold.c
+++ b/res/res_musiconhold.c
@@ -1105,7 +1105,7 @@
 
 	DIR *files_DIR;
 	struct dirent *files_dirent;
-	char dir_path[PATH_MAX];
+	char dir_path[PATH_MAX - 256];
 	char filepath[PATH_MAX];
 	char *ext;
 	struct stat statbuf;
diff --git a/tests/Makefile b/tests/Makefile
index a65b88b..8ce37ff 100644
--- a/tests/Makefile
+++ b/tests/Makefile
@@ -18,3 +18,5 @@
 all: _all
 
 include $(ASTTOPDIR)/Makefile.moddir_rules
+
+test_strings.o: _ASTCFLAGS+=$(AST_NO_FORMAT_TRUNCATION) $(AST_NO_STRINGOP_TRUNCATION)
diff --git a/tests/test_voicemail_api.c b/tests/test_voicemail_api.c
index 188db4a..5d5ff15 100644
--- a/tests/test_voicemail_api.c
+++ b/tests/test_voicemail_api.c
@@ -447,7 +447,7 @@
 static int test_vm_api_create_voicemail_files(const char *context, const char *mailbox, struct ast_vm_msg_snapshot *snapshot)
 {
 	FILE *msg_file;
-	char folder_path[PATH_MAX];
+	char folder_path[PATH_MAX - 12];
 	char msg_path[PATH_MAX];
 	char snd_path[PATH_MAX];
 	char beep_path[PATH_MAX];
@@ -540,7 +540,7 @@
 {
 	char msg_path[PATH_MAX];
 	char snd_path[PATH_MAX];
-	char folder_path[PATH_MAX];
+	char folder_path[PATH_MAX - 12];
 
 	if (!snapshot) {
 		return;
diff --git a/utils/Makefile b/utils/Makefile
index cabc268..0a3baec 100644
--- a/utils/Makefile
+++ b/utils/Makefile
@@ -157,7 +157,7 @@
 	$(CMD_PREFIX) sed 's/ast_debug([[:digit:]][[:digit:]]*/ast_log(LOG_DEBUG/' "$@" > "$@.new"
 	$(CMD_PREFIX) mv "$@.new" "$@"
 
-aelparse.o: _ASTCFLAGS+=-I$(ASTTOPDIR)/res -Wno-unused
+aelparse.o: _ASTCFLAGS+=-I$(ASTTOPDIR)/res -Wno-unused $(AST_NO_FORMAT_TRUNCATION)
 aelparse: LIBS+=-lm $(AST_CLANG_BLOCKS_LIBS)
 aelparse: aelparse.o aelbison.o pbx_ael.o hashtab.o lock.o ael_main.o ast_expr2f.o ast_expr2.o strcompat.o pval.o extconf.o
 
diff --git a/utils/ael_main.c b/utils/ael_main.c
index 0c6ec03..6c83746 100644
--- a/utils/ael_main.c
+++ b/utils/ael_main.c
@@ -381,7 +381,7 @@
 	if( dump_extensions ) {
 		struct namelist *x;
 		x = create_name((char*)value);
-		strncpy(x->name2,data,100);
+		strncpy(x->name2, data, 99);
 		if( eval ) {
 
 			ADD_LAST(con->switches,x);
diff --git a/utils/astman.c b/utils/astman.c
index 2ea68b9..d889999 100644
--- a/utils/astman.c
+++ b/utils/astman.c
@@ -544,7 +544,7 @@
 	char dest[256];
 	struct message *m;
 	char channame[256];
-	char tmp[80];
+	char tmp[280];
 	char *context;
 
 	chan = newtListboxGetCurrent(c);
diff --git a/utils/db1-ast/hash/ndbm.c b/utils/db1-ast/hash/ndbm.c
index d702f73..16202ed 100644
--- a/utils/db1-ast/hash/ndbm.c
+++ b/utils/db1-ast/hash/ndbm.c
@@ -79,7 +79,7 @@
 	info.cachesize = 0;
 	info.hash = NULL;
 	info.lorder = 0;
-	(void)strncpy(path, file, len - 1);
+	(void)strcpy(path, file); /* SAFE */
 	(void)strncat(path, DBM_SUFFIX, len - strlen(path) - 1);
 	db = (DBM *)__hash_open(path, flags, mode, &info, 0);
 #ifndef	__GNUC__
diff --git a/utils/extconf.c b/utils/extconf.c
index 97cfaa9..0007c01 100644
--- a/utils/extconf.c
+++ b/utils/extconf.c
@@ -3180,7 +3180,8 @@
 	char *c;
 	char *cur = buf;
 	struct ast_variable *v;
-	char cmd[512], exec_file[512];
+	char cmd[520];
+	char exec_file[512];
 	int object, do_exec, do_include;
 
 	/* Actually parse the entry */

-- 
To view, visit https://gerrit.asterisk.org/8936
To unsubscribe, visit https://gerrit.asterisk.org/settings

Gerrit-Project: asterisk
Gerrit-Branch: 13
Gerrit-MessageType: newchange
Gerrit-Change-Id: I724f146cbddba8b86619d4c4a9931ee877995c84
Gerrit-Change-Number: 8936
Gerrit-PatchSet: 1
Gerrit-Owner: Corey Farrell <git at cfware.com>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.digium.com/pipermail/asterisk-code-review/attachments/20180507/7caf7fda/attachment-0001.html>


More information about the asterisk-code-review mailing list