summaryrefslogtreecommitdiff
path: root/zaptel.c
diff options
context:
space:
mode:
authormattf <mattf@5390a7c7-147a-4af0-8ec9-7488f05a26cb>2006-11-22 23:23:55 +0000
committermattf <mattf@5390a7c7-147a-4af0-8ec9-7488f05a26cb>2006-11-22 23:23:55 +0000
commit1099effc63d5ce93b253e5f2b39d6db69f133cac (patch)
tree9863ee48c8aac00172fc99a9f7b2ef7d90dcbfa1 /zaptel.c
parent45f9aead487913d00fe69b0cae27e2ef57c23cc6 (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.c10
1 files changed, 6 insertions, 4 deletions
diff --git a/zaptel.c b/zaptel.c
index a178195..5702510 100644
--- a/zaptel.c
+++ b/zaptel.c
@@ -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