From a3712817a2eff0173e664162fc441ee7846f6ea0 Mon Sep 17 00:00:00 2001 From: Stefan Tauner 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". Corresponding to flashrom svn r1915. Signed-off-by: Stefan Tauner Acked-by: Stefan Tauner --- serial.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) (limited to 'serial.c') 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.1