wget/dot-update-dot-finish-sanitize-input.patch

46 lines
1.2 KiB
Diff
Raw Normal View History

2020-05-21 15:15:15 +08:00
From 542524855a46d66f18439688ffe61177cc867266 Mon Sep 17 00:00:00 2001
From:Tim Rühsen <tim.ruehsen@gmx.de>
Date: Thu, 12 Dec 2019 13:47:30 +0100
Subject: [PATCH] * src/progress.c (dot_update, dot_finish): Sanitize input
---
src/progress.c | 15 +++++++++++++++
1 file changed, 15 insertions(+)
diff --git a/src/progress.c b/src/progress.c
index 574a035e..d2778d41 100644
--- a/src/progress.c
+++ b/src/progress.c
@@ -348,6 +348,15 @@ print_row_stats (struct dot_progress *dp, double dltime, bool last)
static void
dot_update (void *progress, wgint howmuch, double dltime)
{
+ // sanitize input
+ if (dltime >= INT_MAX)
+ dltime = INT_MAX - 1;
+ else if (dltime < 0)
+ dltime = 0;
+
+ if (howmuch < 0)
+ howmuch = 0;
+
struct dot_progress *dp = progress;
dp->accumulated += howmuch;
dp->dltime = dltime;
@@ -406,6 +415,12 @@ dot_finish (void *progress, double dltime)
logputs (LOG_PROGRESS, " ");
}
+ // sanitize input
+ if (dltime >= INT_MAX)
+ dltime = INT_MAX - 1;
+ else if (dltime < 0)
+ dltime = 0;
+
print_row_stats (dp, dltime, true);
logputs (LOG_VERBOSE, "\n\n");
log_set_flush (false);
--
2.19.1.windows.1