summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormattf <mattf@5390a7c7-147a-4af0-8ec9-7488f05a26cb>2006-11-22 23:30:19 +0000
committermattf <mattf@5390a7c7-147a-4af0-8ec9-7488f05a26cb>2006-11-22 23:30:19 +0000
commit8722078923e9d7f03b9e96e47d7cd0ab5b1dfc7d (patch)
treee3109063a168a62766c5ae281494423c1b7ffc5a
parentd07295c5796269084db79a589c8a9f111943de01 (diff)
Update for #8403
git-svn-id: http://svn.digium.com/svn/zaptel/branches/1.4@1637 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 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