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 */