]> git.ipfire.org Git - thirdparty/openssh-portable.git/commitdiff
upstream: make the progress-meter code safe against being called
authordjm@openbsd.org <djm@openbsd.org>
Fri, 9 May 2025 02:42:03 +0000 (02:42 +0000)
committerDarren Tucker <dtucker@dtucker.net>
Tue, 20 May 2025 08:03:16 +0000 (18:03 +1000)
when not initialised; spotted by tb@ feedback/ok tb@ deraadt@

OpenBSD-Commit-ID: a9fda1ee08a24c62e0981ff6d15ca93b63467038

progressmeter.c

index f1712da30df48869c15f889937228e7633cbb527..0d1faba398c102ba693686bfb235c2c128a568e1 100644 (file)
@@ -1,4 +1,4 @@
-/* $OpenBSD: progressmeter.c,v 1.54 2024/09/22 12:56:21 jsg Exp $ */
+/* $OpenBSD: progressmeter.c,v 1.55 2025/05/09 02:42:03 djm Exp $ */
 /*
  * Copyright (c) 2003 Nils Nordman.  All rights reserved.
  *
@@ -132,7 +132,8 @@ refresh_progress_meter(int force_update)
        int hours, minutes, seconds;
        int file_len, cols;
 
-       if ((!force_update && !alarm_fired && !win_resized) || !can_output())
+       if (file == NULL || (!force_update && !alarm_fired && !win_resized) ||
+           !can_output())
                return;
        alarm_fired = 0;
 
@@ -276,6 +277,7 @@ stop_progress_meter(void)
                refresh_progress_meter(1);
 
        atomicio(vwrite, STDOUT_FILENO, "\n", 1);
+       file = NULL;
 }
 
 static void