diff --git a/main/pbx.c b/main/pbx.c index 8e20f8686abf3766788a413d46ecc569837f5601..546cc8fca458ac97ee99be662dbfd95f3114223b 100644 --- a/main/pbx.c +++ b/main/pbx.c @@ -4225,12 +4225,10 @@ static int handle_statechange(void *datap) AST_RWLIST_TRAVERSE(&hints, hint, list) { struct ast_state_cb *cblist; - char buf[AST_MAX_EXTENSION]; - char *parse = buf; + char *parse = ast_strdupa(ast_get_extension_app(hint->exten)); char *cur; int state; - ast_copy_string(buf, ast_get_extension_app(hint->exten), sizeof(buf)); while ( (cur = strsep(&parse, "&")) ) { if (!strcasecmp(cur, sc->dev)) { break;