aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorrussell <russell@f38db490-d61c-443f-a65b-d21fe96a405b>2005-11-21 02:03:23 +0000
committerrussell <russell@f38db490-d61c-443f-a65b-d21fe96a405b>2005-11-21 02:03:23 +0000
commitf59208b3547f73e655d5d5b6262aaf099a79a54b (patch)
treebbb1faa372cacf2175059cac6609ee8521de9056
parentdf2a37ab18a6275f742260324b6c8dbc512be514 (diff)
issue #5787
git-svn-id: http://svn.digium.com/svn/asterisk/branches/v1-2@7163 f38db490-d61c-443f-a65b-d21fe96a405b
-rwxr-xr-xChangeLog4
-rwxr-xr-xMakefile1
-rwxr-xr-xapps/app_record.c8
3 files changed, 9 insertions, 4 deletions
diff --git a/ChangeLog b/ChangeLog
index d5c00725a..43ac0fedf 100755
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,9 @@
2005-11-20 Russell Bryant <russell@digium.com>
+ * apps/app_record.c: Don't leak a frame if writing it to the file fails. (issue #5787)
+
+ * Makefile: Create the monitor spool directory when the other spool directories are created.
+
* channels/chan_sip.c channels/chan_iax2.c: Change warning messages about the number of scheduled events happening all at once to debug messages. (issue #5794)
* pbx/pbx_spool.c: Fix crash when a value is not specified with a variable on a Set: line in a call file. (issue #5806)
diff --git a/Makefile b/Makefile
index a2ce5c4bd..815644f81 100755
--- a/Makefile
+++ b/Makefile
@@ -636,6 +636,7 @@ bininstall: all
mkdir -p $(DESTDIR)$(ASTSPOOLDIR)/system
mkdir -p $(DESTDIR)$(ASTSPOOLDIR)/tmp
mkdir -p $(DESTDIR)$(ASTSPOOLDIR)/meetme
+ mkdir -p $(DESTDIR)$(ASTSPOOLDIR)/monitor
if [ -f asterisk ]; then $(INSTALL) -m 755 asterisk $(DESTDIR)$(ASTSBINDIR)/; fi
if [ -f cygwin/asterisk.exe ]; then $(INSTALL) -m 755 cygwin/asterisk.exe $(DESTDIR)$(ASTSBINDIR)/; fi
if [ -f asterisk.dll ]; then $(INSTALL) -m 755 asterisk.dll $(DESTDIR)$(ASTSBINDIR)/; fi
diff --git a/apps/app_record.c b/apps/app_record.c
index 7c50a1d73..85310ea70 100755
--- a/apps/app_record.c
+++ b/apps/app_record.c
@@ -277,6 +277,7 @@ static int record_exec(struct ast_channel *chan, void *data)
if (res) {
ast_log(LOG_WARNING, "Problem writing frame\n");
+ ast_frfree(f);
break;
}
@@ -295,16 +296,15 @@ static int record_exec(struct ast_channel *chan, void *data)
break;
}
}
- }
- if (f->frametype == AST_FRAME_VIDEO) {
+ } else if (f->frametype == AST_FRAME_VIDEO) {
res = ast_writestream(s, f);
if (res) {
ast_log(LOG_WARNING, "Problem writing frame\n");
+ ast_frfree(f);
break;
}
- }
- if ((f->frametype == AST_FRAME_DTMF) &&
+ } else if ((f->frametype == AST_FRAME_DTMF) &&
(f->subclass == terminator)) {
ast_frfree(f);
break;