From f111999900d3967b002451c4c99e074403f291a8 Mon Sep 17 00:00:00 2001 From: stefanct Date: Sat, 16 Jan 2016 18:50:27 +0000 Subject: Fix file descriptor leak in serial.c. Found by Coverity as "CID 1348465: Resource leaks". Signed-off-by: Stefan Tauner Acked-by: Stefan Tauner git-svn-id: https://code.coreboot.org/svn/flashrom/trunk@1915 2b7e53f0-3cfb-0310-b3e9-8179ed1497e1 --- serial.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/serial.c b/serial.c index 257578a..a64a51d 100644 --- a/serial.c +++ b/serial.c @@ -282,18 +282,20 @@ fdtype sp_openserport(char *dev, int baud) const int flags = fcntl(fd, F_GETFL); if (flags == -1) { msg_perr_strerror("Could not get serial port mode: "); - return SER_INV_FD; + goto err; } if (fcntl(fd, F_SETFL, flags & ~O_NONBLOCK) != 0) { msg_perr_strerror("Could not set serial port mode to blocking: "); - return SER_INV_FD; + goto err; } if (serialport_config(fd, baud) != 0) { - close(fd); - return SER_INV_FD; + goto err; } return fd; +err: + close(fd); + return SER_INV_FD; #endif } -- cgit v1.2.1