Module Name:    src
Committed By:   martin
Date:           Tue Aug  3 13:40:33 UTC 2021

Modified Files:
        src/usr.sbin/sysinst: util.c

Log Message:
Cleanup alarm(3) handling in the timezone selection menu for error
cases, pointed out by RVP.


To generate a diff of this commit:
cvs rdiff -u -r1.58 -r1.59 src/usr.sbin/sysinst/util.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/usr.sbin/sysinst/util.c
diff -u src/usr.sbin/sysinst/util.c:1.58 src/usr.sbin/sysinst/util.c:1.59
--- src/usr.sbin/sysinst/util.c:1.58	Tue Jul 20 16:40:12 2021
+++ src/usr.sbin/sysinst/util.c	Tue Aug  3 13:40:33 2021
@@ -1,4 +1,4 @@
-/*	$NetBSD: util.c,v 1.58 2021/07/20 16:40:12 martin Exp $	*/
+/*	$NetBSD: util.c,v 1.59 2021/08/03 13:40:33 martin Exp $	*/
 
 /*
  * Copyright 1997 Piermont Information Systems Inc.
@@ -1881,25 +1881,26 @@ set_timezone(void)
 			   tzm_set_names, NULL, NULL,
 			   "\nPlease consult the install documents.",
 			   MSG_exit_menu_generic);
-	if (menu_no < 0)
-		goto done;	/* error - skip timezone setting */
+	if (menu_no >= 0) {
+		time_menu = menu_no;
+		process_menu(menu_no, NULL);
+		time_menu = -1;
 
-	time_menu = menu_no;
-	process_menu(menu_no, NULL);
-	time_menu = -1;
-
-	free_menu(menu_no);
+		free_menu(menu_no);
+	}
 
+	alarm(0);
 	signal(SIGALRM, SIG_IGN);
 
-	snprintf(localtime_target, sizeof(localtime_target),
-		 "/usr/share/zoneinfo/%s", tz_selected);
-	strlcpy(localtime_link, target_expand("/etc/localtime"),
-	    sizeof localtime_link);
-	unlink(localtime_link);
-	symlink(localtime_target, localtime_link);
+	if (menu_no >= 0) {
+		snprintf(localtime_target, sizeof(localtime_target),
+			 "/usr/share/zoneinfo/%s", tz_selected);
+		strlcpy(localtime_link, target_expand("/etc/localtime"),
+		    sizeof localtime_link);
+		unlink(localtime_link);
+		symlink(localtime_target, localtime_link);
+	}
 
-done:
 	return 1;
 }
 

Reply via email to