diff options
author | Mark Spencer <markster@digium.com> | 2004-10-16 16:00:04 +0000 |
---|---|---|
committer | Mark Spencer <markster@digium.com> | 2004-10-16 16:00:04 +0000 |
commit | eadd6c5509c47594b82b13db1da15b56560cd7d8 (patch) | |
tree | 7c01934d1cd3c76fe25956e66922073c1c24b8c6 /apps | |
parent | 787822b4c821d862634e2bb2b15b777cbff34b52 (diff) |
Oops it didn't make it in
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@4018 65c4cc65-6c06-0410-ace0-fbb531ad65f3
Diffstat (limited to 'apps')
-rwxr-xr-x | apps/app_festival.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/apps/app_festival.c b/apps/app_festival.c index e7e0bd426..7b6f68634 100755 --- a/apps/app_festival.c +++ b/apps/app_festival.c @@ -305,9 +305,9 @@ static int festival_exec(struct ast_channel *chan, void *vdata) if (!(festivalcommand = ast_variable_retrieve(cfg, "general", "festivalcommand"))) { festivalcommand = "(tts_textasterisk \"%s\" 'file)(quit)\n"; } - ast_destroy(cfg); if (!vdata || ast_strlen_zero(vdata)) { ast_log(LOG_WARNING, "festival requires an argument (text)\n"); + ast_destroy(cfg); return -1; } strncpy(data, vdata, sizeof(data) - 1); @@ -325,6 +325,7 @@ static int festival_exec(struct ast_channel *chan, void *vdata) if (fd < 0) { ast_log(LOG_WARNING,"festival_client: can't get socket\n"); + ast_destroy(cfg); return -1; } memset(&serv_addr, 0, sizeof(serv_addr)); @@ -333,6 +334,7 @@ static int festival_exec(struct ast_channel *chan, void *vdata) serverhost = ast_gethostbyname(host, &ahp); if (serverhost == (struct hostent *)0) { ast_log(LOG_WARNING,"festival_client: gethostbyname failed\n"); + ast_destroy(cfg); return -1; } memmove(&serv_addr.sin_addr,serverhost->h_addr, serverhost->h_length); @@ -342,6 +344,7 @@ static int festival_exec(struct ast_channel *chan, void *vdata) if (connect(fd, (struct sockaddr *)&serv_addr, sizeof(serv_addr)) != 0) { ast_log(LOG_WARNING,"festival_client: connect to server failed\n"); + ast_destroy(cfg); return -1; } @@ -444,6 +447,7 @@ static int festival_exec(struct ast_channel *chan, void *vdata) } } while (strcmp(ack,"OK\n") != 0); close(fd); + ast_destroy(cfg); LOCAL_USER_REMOVE(u); return res; |