summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormattf <mattf@5390a7c7-147a-4af0-8ec9-7488f05a26cb>2006-11-22 23:32:01 +0000
committermattf <mattf@5390a7c7-147a-4af0-8ec9-7488f05a26cb>2006-11-22 23:32:01 +0000
commit15ebd62a25520e1d5b07c395bb3aec49f233e492 (patch)
tree8c14697e6d38b451539ab265dca6fcb47585336f
parent76867d9548c89797b0c6b8d1ea7e6fe167c1ece1 (diff)
Update for #8403
git-svn-id: http://svn.digium.com/svn/zaptel/branches/1.2@1638 5390a7c7-147a-4af0-8ec9-7488f05a26cb
-rw-r--r--zaptel.c10
1 files changed, 6 insertions, 4 deletions
diff --git a/zaptel.c b/zaptel.c
index 4340631..468c8dc 100644
--- a/zaptel.c
+++ b/zaptel.c
@@ -576,19 +576,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