]> git.ipfire.org Git - thirdparty/asterisk.git/commitdiff
FILE: fix retrieval of file contents when offset is specified
authorMatthew Jordan <mjordan@digium.com>
Sat, 14 Mar 2015 01:22:01 +0000 (01:22 +0000)
committerMatthew Jordan <mjordan@digium.com>
Sat, 14 Mar 2015 01:22:01 +0000 (01:22 +0000)
The loop that reads in a file was not correctly using the offset when
determining what bytes to append to the output. This patch corrects
the logic such that the correct portion of the file is extracted when an
offset is specified.

ASTERISK-21765
Reported by: John Zhong
Tested by: Matt Jordan, Di-Shi Sun
patches:
  file_read_390821.patch uploaded by Di-Shi Sun (License 5076)
........

Merged revisions 432935 from http://svn.asterisk.org/svn/asterisk/branches/11
........

Merged revisions 432938 from http://svn.asterisk.org/svn/asterisk/branches/13

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@432940 65c4cc65-6c06-0410-ace0-fbb531ad65f3

funcs/func_env.c

index 1d3e95c0ef1bafe6eb63ee93a176499285db2328..0daa7f48d12f882639adfc2c619ce666d4870172 100644 (file)
@@ -561,7 +561,7 @@ static int file_read(struct ast_channel *chan, const char *cmd, char *data, stru
 
                        /* Don't go past the length requested */
                        if (off_i + toappend > offset + length) {
-                               toappend = length - off_i;
+                               toappend = offset + length - off_i;
                        }
 
                        ast_str_append_substr(buf, len, fbuf, toappend);