diff options
author | tilghman <tilghman@f38db490-d61c-443f-a65b-d21fe96a405b> | 2006-02-19 17:11:02 +0000 |
---|---|---|
committer | tilghman <tilghman@f38db490-d61c-443f-a65b-d21fe96a405b> | 2006-02-19 17:11:02 +0000 |
commit | ddea126b43ee118eec4d745c634168273e3605a7 (patch) | |
tree | d31a88bc140d8c9e856f40e80c441da43be23295 /formats | |
parent | e99f4c8d99ed0927fc4902cd3634f817090194cd (diff) |
Bug 6539 - Division by two negates error flag
git-svn-id: http://svn.digium.com/svn/asterisk/branches/1.2@10462 f38db490-d61c-443f-a65b-d21fe96a405b
Diffstat (limited to 'formats')
-rw-r--r-- | formats/format_sln.c | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/formats/format_sln.c b/formats/format_sln.c index 008a715bc..c1a16618d 100644 --- a/formats/format_sln.c +++ b/formats/format_sln.c @@ -172,6 +172,7 @@ static int slinear_write(struct ast_filestream *fs, struct ast_frame *f) static int slinear_seek(struct ast_filestream *fs, long sample_offset, int whence) { off_t offset=0,min,cur,max; + int res; min = 0; sample_offset <<= 1; @@ -189,7 +190,12 @@ static int slinear_seek(struct ast_filestream *fs, long sample_offset, int whenc } /* always protect against seeking past begining. */ offset = (offset < min)?min:offset; - return fseek(fs->f, offset, SEEK_SET) / 2; + res = fseek(fs->f, offset, SEEK_SET); + /* Negative values indicate error */ + if (res > -1) + return res / 2; + else + return res; } static int slinear_trunc(struct ast_filestream *fs) |