46 lines
1.2 KiB
Diff
46 lines
1.2 KiB
Diff
|
|
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
|
||
|
|
|