diff options
author | mattf <mattf@5390a7c7-147a-4af0-8ec9-7488f05a26cb> | 2006-11-22 23:23:55 +0000 |
---|---|---|
committer | mattf <mattf@5390a7c7-147a-4af0-8ec9-7488f05a26cb> | 2006-11-22 23:23:55 +0000 |
commit | 1099effc63d5ce93b253e5f2b39d6db69f133cac (patch) | |
tree | 9863ee48c8aac00172fc99a9f7b2ef7d90dcbfa1 /zaptel.c | |
parent | 45f9aead487913d00fe69b0cae27e2ef57c23cc6 (diff) |
Fix for #8403. No extra characters in /proc/zaptel/* when reading
git-svn-id: http://svn.digium.com/svn/zaptel/trunk@1636 5390a7c7-147a-4af0-8ec9-7488f05a26cb
Diffstat (limited to 'zaptel.c')
-rw-r--r-- | zaptel.c | 10 |
1 files changed, 6 insertions, 4 deletions
@@ -620,19 +620,21 @@ static int zaptel_proc_read(char *page, char **start, off_t off, int count, int } len += sprintf(page + len, "\n"); } - if ( len <= off ) /* If everything printed so far is before beginning of request */ - { + if (len <= off) { /* If everything printed so far is before beginning of request */ off -= len; len = 0; } + if (len > off+count) /* stop if we've already generated enough */ + break; } } - if ( len <= off ) /* If everything printed so far is before beginning of request */ - { + if (len <= off) { /* If everything printed so far is before beginning of request */ off -= len; len = 0; } *start = page + off; + len -= off; /* un-count any remaining offset */ + if (len > count) len = count; /* don't return bytes not asked for */ return len; } #endif |