[flashrom] [PATCH 1/3] Fix error message in sp_openserport().

Stefan Tauner stefan.tauner at student.tuwien.ac.at
Mon Nov 26 16:52:15 CET 2012


free seems to touch errno on windows...?

Signed-off-by: Stefan Tauner <stefan.tauner at student.tuwien.ac.at>
---
 serial.c |    4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/serial.c b/serial.c
index 7e47dcc..11a749c 100644
--- a/serial.c
+++ b/serial.c
@@ -109,6 +109,7 @@ fdtype sp_openserport(char *dev, unsigned int baud)
 #ifdef _WIN32
 	HANDLE fd;
 	char *dev2 = dev;
+	int err;
 	if ((strlen(dev) > 3) && (tolower((unsigned char)dev[0]) == 'c') &&
 	    (tolower((unsigned char)dev[1]) == 'o') &&
 	    (tolower((unsigned char)dev[2]) == 'm')) {
@@ -122,10 +123,11 @@ fdtype sp_openserport(char *dev, unsigned int baud)
 	}
 	fd = CreateFile(dev2, GENERIC_READ | GENERIC_WRITE, 0, NULL,
 			OPEN_EXISTING, 0, NULL);
+	err = errno; // free may change errno
 	if (dev2 != dev)
 		free(dev2);
 	if (fd == INVALID_HANDLE_VALUE) {
-		msg_perr("Error: cannot open serial port: %s\n", strerror(errno));
+		msg_perr("Error: cannot open serial port: %s\n", strerror(err));
 		return SER_INV_FD;
 	}
 	DCB dcb;
-- 
Kind regards, Stefan Tauner





More information about the flashrom mailing list