mirror of
https://gitlab.torproject.org/tpo/core/tor.git
synced 2025-02-23 14:40:51 +01:00
r11580@Kushana: nickm | 2006-12-15 00:09:46 -0500
Resolve bug 369: Check for integer underflow when printing "bytes left" accounting numbers. Also fix a copyright date that I noticed while reading the bug. Also make a buffer big enough that strings will not get truncated. All are backport candidates. svn:r9115
This commit is contained in:
parent
c44dd3870e
commit
fdb10ff0b5
3 changed files with 12 additions and 5 deletions
|
@ -51,6 +51,9 @@ Changes in version 0.1.2.5-xxxx - 200?-??-??
|
||||||
o Controller bugfixes:
|
o Controller bugfixes:
|
||||||
- Report the circuit number correctly in STREAM CLOSED events. (Bug
|
- Report the circuit number correctly in STREAM CLOSED events. (Bug
|
||||||
reported by Mike Perry.)
|
reported by Mike Perry.)
|
||||||
|
- Do not report bizarre values for results of accounting GETINFOs
|
||||||
|
when the last second's write or read exceeds the alloted bandwidth.
|
||||||
|
(Bug 329.)
|
||||||
|
|
||||||
|
|
||||||
Changes in version 0.1.2.4-alpha - 2006-12-03
|
Changes in version 0.1.2.4-alpha - 2006-12-03
|
||||||
|
|
|
@ -1585,7 +1585,7 @@ static void
|
||||||
print_usage(void)
|
print_usage(void)
|
||||||
{
|
{
|
||||||
printf(
|
printf(
|
||||||
"Copyright 2001-2005 Roger Dingledine, Nick Mathewson.\n\n"
|
"Copyright 2001-2006 Roger Dingledine, Nick Mathewson.\n\n"
|
||||||
"tor -f <torrc> [args]\n"
|
"tor -f <torrc> [args]\n"
|
||||||
"See man page for options, or http://tor.eff.org/ for documentation.\n");
|
"See man page for options, or http://tor.eff.org/ for documentation.\n");
|
||||||
}
|
}
|
||||||
|
|
|
@ -949,10 +949,14 @@ getinfo_helper_accounting(control_connection_t *conn,
|
||||||
U64_PRINTF_ARG(n_bytes_written_in_interval));
|
U64_PRINTF_ARG(n_bytes_written_in_interval));
|
||||||
} else if (!strcmp(question, "accounting/bytes-left")) {
|
} else if (!strcmp(question, "accounting/bytes-left")) {
|
||||||
uint64_t limit = get_options()->AccountingMax;
|
uint64_t limit = get_options()->AccountingMax;
|
||||||
*answer = tor_malloc(32);
|
uint64_t read_left = 0, write_left = 0;
|
||||||
tor_snprintf(*answer, 32, U64_FORMAT" "U64_FORMAT,
|
if (n_bytes_read_in_interval < limit)
|
||||||
U64_PRINTF_ARG(limit - n_bytes_read_in_interval),
|
read_left = limit - n_bytes_read_in_interval;
|
||||||
U64_PRINTF_ARG(limit - n_bytes_written_in_interval));
|
if (n_bytes_written_in_interval < limit)
|
||||||
|
write_left = limit - n_bytes_written_in_interval;
|
||||||
|
*answer = tor_malloc(64);
|
||||||
|
tor_snprintf(*answer, 64, U64_FORMAT" "U64_FORMAT,
|
||||||
|
U64_PRINTF_ARG(read_left), U64_PRINTF_ARG(write_left));
|
||||||
} else if (!strcmp(question, "accounting/interval-start")) {
|
} else if (!strcmp(question, "accounting/interval-start")) {
|
||||||
*answer = tor_malloc(ISO_TIME_LEN+1);
|
*answer = tor_malloc(ISO_TIME_LEN+1);
|
||||||
format_iso_time(*answer, interval_start_time);
|
format_iso_time(*answer, interval_start_time);
|
||||||
|
|
Loading…
Add table
Reference in a new issue