[bootlin/training-materials updates] master: serial-{get, reset}-counter: Close the fd before exiting (5ff6f1b1)

Miquel Raynal miquel.raynal at bootlin.com
Tue Jun 22 12:08:43 CEST 2021


Repository : https://github.com/bootlin/training-materials
On branch  : master
Link       : https://github.com/bootlin/training-materials/commit/5ff6f1b100207538dfdc30baa7dbb6d36b0c2b85

>---------------------------------------------------------------

commit 5ff6f1b100207538dfdc30baa7dbb6d36b0c2b85
Author: Miquel Raynal <miquel.raynal at bootlin.com>
Date:   Tue Jun 22 11:58:28 2021 +0200

    serial-{get,reset}-counter: Close the fd before exiting
    
    Signed-off-by: Miquel Raynal <miquel.raynal at bootlin.com>


>---------------------------------------------------------------

5ff6f1b100207538dfdc30baa7dbb6d36b0c2b85
 .../modules/nfsroot/root/serial/serial-get-counter.c             | 9 +++++++++
 .../modules/nfsroot/root/serial/serial-reset-counter.c           | 8 ++++++++
 2 files changed, 17 insertions(+)

diff --git a/lab-data/linux-kernel/modules/nfsroot/root/serial/serial-get-counter.c b/lab-data/linux-kernel/modules/nfsroot/root/serial/serial-get-counter.c
index 36b4a73f..11a00212 100644
--- a/lab-data/linux-kernel/modules/nfsroot/root/serial/serial-get-counter.c
+++ b/lab-data/linux-kernel/modules/nfsroot/root/serial/serial-get-counter.c
@@ -6,6 +6,7 @@
 #include <stdlib.h>
 #include <string.h>
 #include <errno.h>
+#include <unistd.h>
 
 #define SERIAL_RESET_COUNTER 0
 #define SERIAL_GET_COUNTER 1
@@ -31,6 +32,14 @@ int main(int argc, char *argv[])
 	if (ret < 0) {
 		fprintf(stderr, "Unable to get counter: %s\n",
 			strerror(errno));
+		close(fd);
+		exit(1);
+	}
+
+	ret = close(fd);
+	if (ret < 0) {
+		fprintf(stderr, "Unable to close %s: %s\n", argv[1],
+			strerror(errno));
 		exit(1);
 	}
 
diff --git a/lab-data/linux-kernel/modules/nfsroot/root/serial/serial-reset-counter.c b/lab-data/linux-kernel/modules/nfsroot/root/serial/serial-reset-counter.c
index aff144e0..8e53febc 100644
--- a/lab-data/linux-kernel/modules/nfsroot/root/serial/serial-reset-counter.c
+++ b/lab-data/linux-kernel/modules/nfsroot/root/serial/serial-reset-counter.c
@@ -6,6 +6,7 @@
 #include <stdlib.h>
 #include <string.h>
 #include <errno.h>
+#include <unistd.h>
 
 #define SERIAL_RESET_COUNTER 0
 #define SERIAL_GET_COUNTER 1
@@ -30,9 +31,16 @@ int main(int argc, char *argv[])
 	if (ret < 0) {
 		fprintf(stderr, "Unable to reset counter: %s\n",
 			strerror(errno));
+		close(fd);
 		exit(1);
 	}
 
+	ret = close(fd);
+	if (ret < 0) {
+		fprintf(stderr, "Unable to close %s: %s\n", argv[1],
+			strerror(errno));
+		exit(1);
+	}
 
 	printf("Counter reset\n");
 	return 0;




More information about the training-materials-updates mailing list