serial.c: Fix fd leak in case of fcntl() error paths
Change-Id: I14f934957e1086b803f3a7b9b5e6d602380f0be2
Fixes: Coverity CID 158987
diff --git a/src/serial.c b/src/serial.c
index 1cbd3c0..6316e45 100644
--- a/src/serial.c
+++ b/src/serial.c
@@ -73,14 +73,16 @@
flags = fcntl(fd, F_GETFL, 0);
if (flags < 0) {
dbg_perror("fcntl get flags");
- return -1;
+ rc = -errno;
+ goto error;
}
flags &= ~O_NONBLOCK;
rc = fcntl(fd, F_SETFL, flags);
if (rc != 0) {
dbg_perror("fcntl set flags");
- return -1;
+ rc = -errno;
+ goto error;
}
/* Configure serial interface */