diff options
author | markster <markster@f38db490-d61c-443f-a65b-d21fe96a405b> | 2004-04-15 16:02:42 +0000 |
---|---|---|
committer | markster <markster@f38db490-d61c-443f-a65b-d21fe96a405b> | 2004-04-15 16:02:42 +0000 |
commit | 29823f285598a9170b1d2a706e6b83d4751acaba (patch) | |
tree | 27bcfd3420d505259e7988a591eae49bcf1df627 /formats/format_gsm.c | |
parent | 1e5762ae0a44ba6ae2b0f3b500e36c49634026d0 (diff) |
Do proper bounds checking in formats (bug #1356)
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@2694 f38db490-d61c-443f-a65b-d21fe96a405b
Diffstat (limited to 'formats/format_gsm.c')
-rwxr-xr-x | formats/format_gsm.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/formats/format_gsm.c b/formats/format_gsm.c index 4ac2b5a5d..d58039e6d 100755 --- a/formats/format_gsm.c +++ b/formats/format_gsm.c @@ -197,9 +197,10 @@ static int gsm_seek(struct ast_filestream *fs, long sample_offset, int whence) offset = distance + cur; else if(whence == SEEK_END) offset = max - distance; + // Always protect against seeking past the begining. + offset = (offset < min)?min:offset; if (whence != SEEK_FORCECUR) { offset = (offset > max)?max:offset; - offset = (offset < min)?min:offset; } else if (offset > max) { int i; lseek(fs->fd, 0, SEEK_END); |