itfix buffer overflows on very big inputs (more than 4096 bytes) - vote - simple cgi voting system for web and gopher Err mx1.adamsgaard.dk 70 hgit clone git://src.adamsgaard.dk/vote URL:git://src.adamsgaard.dk/vote mx1.adamsgaard.dk 70 1Log /src/vote/log.gph mx1.adamsgaard.dk 70 1Files /src/vote/files.gph mx1.adamsgaard.dk 70 1Refs /src/vote/refs.gph mx1.adamsgaard.dk 70 1README /src/vote/file/README.gph mx1.adamsgaard.dk 70 1LICENSE /src/vote/file/LICENSE.gph mx1.adamsgaard.dk 70 i--- Err mx1.adamsgaard.dk 70 1commit bdffc606de2cab60a78349fe387c97a0a0220e38 /src/vote/commit/bdffc606de2cab60a78349fe387c97a0a0220e38.gph mx1.adamsgaard.dk 70 1parent 542105db6abb6ea8f555fe1c60343aebb85dd91b /src/vote/commit/542105db6abb6ea8f555fe1c60343aebb85dd91b.gph mx1.adamsgaard.dk 70 hAuthor: Hiltjo Posthuma URL:mailto:hiltjo@codemadness.org mx1.adamsgaard.dk 70 iDate: Sun, 4 Oct 2020 15:47:23 +0200 Err mx1.adamsgaard.dk 70 i Err mx1.adamsgaard.dk 70 ifix buffer overflows on very big inputs (more than 4096 bytes) Err mx1.adamsgaard.dk 70 i Err mx1.adamsgaard.dk 70 iSigned-off-by: Anders Damsgaard Err mx1.adamsgaard.dk 70 i Err mx1.adamsgaard.dk 70 iDiffstat: Err mx1.adamsgaard.dk 70 i M vote.c | 4 ++-- Err mx1.adamsgaard.dk 70 i Err mx1.adamsgaard.dk 70 i1 file changed, 2 insertions(+), 2 deletions(-) Err mx1.adamsgaard.dk 70 i--- Err mx1.adamsgaard.dk 70 1diff --git a/vote.c b/vote.c /src/vote/file/vote.c.gph mx1.adamsgaard.dk 70 it@@ -109,7 +109,7 @@ print_poll_line(char *line, size_t *i, int intable, int vote) Err mx1.adamsgaard.dk 70 i { Err mx1.adamsgaard.dk 70 i size_t c; Err mx1.adamsgaard.dk 70 i Err mx1.adamsgaard.dk 70 i- if (sscanf(line, "%ld\t%s", &c, options) == 2) { Err mx1.adamsgaard.dk 70 i+ if (sscanf(line, "%ld\t%4095s", &c, options) == 2) { Err mx1.adamsgaard.dk 70 i if (!intable) { Err mx1.adamsgaard.dk 70 i puts("

\n"); Err mx1.adamsgaard.dk 70 i if (vote) { Err mx1.adamsgaard.dk 70 it@@ -316,7 +316,7 @@ increment_option(char *poll, size_t n) Err mx1.adamsgaard.dk 70 i } Err mx1.adamsgaard.dk 70 i Err mx1.adamsgaard.dk 70 i while ((linelen = getline(&line, &linesize, fp)) != -1) { Err mx1.adamsgaard.dk 70 i- if (sscanf(line, "%ld\t%s", &v, options) != 2) Err mx1.adamsgaard.dk 70 i+ if (sscanf(line, "%ld\t%4095s", &v, options) != 2) Err mx1.adamsgaard.dk 70 i fputs(line, fp_tmp); Err mx1.adamsgaard.dk 70 i else { Err mx1.adamsgaard.dk 70 i if (++lineno == n) Err mx1.adamsgaard.dk 70 .