mirror of
				https://github.com/asterisk/asterisk.git
				synced 2025-10-31 02:37:10 +00:00 
			
		
		
		
	chan_dahdi: Address gcc9 issues
Fixed format-truncation issues in chan_dahdi.c and sig_analog.c. Since they're related to fields provided by dahdi-tools we can't change the buffer sizes so we're just checking the return from snprintf and printing an errior if we overflow. Change-Id: Idc1f3c1565b88a7d145332a0196074b5832864e5
This commit is contained in:
		| @@ -2968,11 +2968,16 @@ static struct ast_frame *__analog_handle_event(struct analog_pvt *p, struct ast_ | ||||
| 			} else { | ||||
| 				c = p->dialdest; | ||||
| 			} | ||||
|  | ||||
| 			if (*c) { | ||||
| 				snprintf(p->dop.dialstr, sizeof(p->dop.dialstr), "M*0%s#", c); | ||||
| 				int numchars = snprintf(p->dop.dialstr, sizeof(p->dop.dialstr), "M*0%s#", c); | ||||
| 				if (numchars >= sizeof(p->dop.dialstr)) { | ||||
| 					ast_log(LOG_WARNING, "Dial string '%s' truncated\n", c); | ||||
| 				} | ||||
| 			} else { | ||||
| 				ast_copy_string(p->dop.dialstr,"M*2#", sizeof(p->dop.dialstr)); | ||||
| 			} | ||||
|  | ||||
| 			if (strlen(p->dop.dialstr) > 4) { | ||||
| 				memset(p->echorest, 'w', sizeof(p->echorest) - 1); | ||||
| 				strcpy(p->echorest + (p->echotraining / 401) + 1, p->dop.dialstr + strlen(p->dop.dialstr) - 2); | ||||
|   | ||||
		Reference in New Issue
	
	Block a user