diff options
Diffstat (limited to 'formats/format_g723.c')
-rw-r--r-- | formats/format_g723.c | 15 |
1 files changed, 12 insertions, 3 deletions
diff --git a/formats/format_g723.c b/formats/format_g723.c index 7eba74147..b3e87367e 100644 --- a/formats/format_g723.c +++ b/formats/format_g723.c @@ -118,10 +118,19 @@ static int g723_seek(struct ast_filestream *fs, off_t sample_offset, int whence) static int g723_trunc(struct ast_filestream *fs) { - /* Truncate file to current length */ - if (ftruncate(fileno(fs->f), ftello(fs->f)) < 0) + int fd; + off_t cur; + + if ((fd = fileno(fs->f)) < 0) { + ast_log(AST_LOG_WARNING, "Unable to determine file descriptor for g723 filestream %p: %s\n", fs, strerror(errno)); return -1; - return 0; + } + if ((cur = ftello(fs->f) < 0)) { + ast_log(AST_LOG_WARNING, "Unable to determine current position in g723 filestream %p: %s\n", fs, strerror(errno)); + return -1; + } + /* Truncate file to current length */ + return ftruncate(fd, cur); } static off_t g723_tell(struct ast_filestream *fs) |