From 1f9881734a3b28b1e9cc99d46deb51d30a84214a Mon Sep 17 00:00:00 2001 From: Mark Pizzolato Date: Sun, 10 Sep 2023 08:45:54 -1000 Subject: [PATCH] SCP: Exit if disk or tape initialization routines return a failure --- scp.c | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/scp.c b/scp.c index fea90ae0..c365a547 100644 --- a/scp.c +++ b/scp.c @@ -3059,8 +3059,20 @@ sim_on_inherit = sim_switches & SWMASK ('O'); /* -o means inherit on s sim_init_sock (); /* init socket capabilities */ AIO_INIT; /* init Asynch I/O */ sim_finit (); /* init fio package */ -sim_disk_init (); /* init disk package */ -sim_tape_init (); /* init tape package */ +if (sim_disk_init () != SCPE_OK) { /* init disk package */ + fprintf (stderr, "Fatal sim_disk initialization error\n"); + if (sim_ttisatty()) + read_line_p ("Hit Return to exit: ", cbuf, sizeof (cbuf) - 1, stdin); + free (targv); + return EXIT_FAILURE; + } +if (sim_tape_init () != SCPE_OK) { /* init tape package */ + fprintf (stderr, "Fatal sim_tape initialization error\n"); + if (sim_ttisatty()) + read_line_p ("Hit Return to exit: ", cbuf, sizeof (cbuf) - 1, stdin); + free (targv); + return EXIT_FAILURE; + } sim_exp_initialize (); /* init expect package regex support */ if ((argc > 2) && (sim_strcasecmp (argv[1], "CheckSourceCode") == 0)) {