diff options
author | Stefan Tauner <stefan.tauner@alumni.tuwien.ac.at> | 2016-01-16 18:50:27 +0000 |
---|---|---|
committer | Stefan Tauner <stefan.tauner@alumni.tuwien.ac.at> | 2016-01-16 18:50:27 +0000 |
commit | 07db3ca3c3893208b62018b43302f2c6bdab6935 (patch) | |
tree | 441663e56658209660de4d0e128ba1600e0a03e8 | |
parent | 580390db677167e8512a918d88a6464ef3ade4f5 (diff) | |
download | flashrom-07db3ca3c3893208b62018b43302f2c6bdab6935.zip flashrom-07db3ca3c3893208b62018b43302f2c6bdab6935.tar.gz |
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 <stefan.tauner@alumni.tuwien.ac.at>
Acked-by: Stefan Tauner <stefan.tauner@alumni.tuwien.ac.at>
-rw-r--r-- | serial.c | 10 |
1 files changed, 6 insertions, 4 deletions
@@ -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 } |