From 4096a73412cdc195cbdf605d216aa7ba2186ccb1 Mon Sep 17 00:00:00 2001 From: Mark Pizzolato Date: Thu, 30 Jan 2020 11:29:44 -0800 Subject: [PATCH] SCP: Fix Coverity identified error path problem --- scp.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/scp.c b/scp.c index 7040d61c..39e82af7 100644 --- a/scp.c +++ b/scp.c @@ -7680,8 +7680,13 @@ for (i = 0; i < (device_count + sim_internal_device_count); i++) {/* loop thru d fputc ('\n', sfile); /* end registers */ } fputc ('\n', sfile); /* end devices */ -if (!ferror (sfile)) - sim_set_fsize (sfile, (t_addr)sim_ftell (sfile)); /* truncate the save file */ +if (!ferror (sfile)) { + t_offset pos = sim_ftell (sfile); /* get current position */ + + if (pos < 0) /* error? */ + return SCPE_IOERR; /* done! */ + sim_set_fsize (sfile, (t_addr)pos); /* truncate the save file */ + } return (ferror (sfile))? SCPE_IOERR: SCPE_OK; /* error during save? */ }