[PATCH] Fixed an open function not judging the return value and closed the open function

liujing posted 1 patch 2 years ago
tools/testing/selftests/proc/proc-pid-vm.c | 5 +++++
1 file changed, 5 insertions(+)
[PATCH] Fixed an open function not judging the return value and closed the open function
Posted by liujing 2 years ago
Signed-off-by: liujing <liujing@cmss.chinamobile.com>
---
 tools/testing/selftests/proc/proc-pid-vm.c | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/tools/testing/selftests/proc/proc-pid-vm.c b/tools/testing/selftests/proc/proc-pid-vm.c
index cacbd2a4aec9..5fc9b46f236f 100644
--- a/tools/testing/selftests/proc/proc-pid-vm.c
+++ b/tools/testing/selftests/proc/proc-pid-vm.c
@@ -205,7 +205,12 @@ static int make_exe(const uint8_t *payload, size_t len)
 	/* Avoid ETXTBSY on exec. */
 	snprintf(buf, sizeof(buf), "/proc/self/fd/%u", fd);
 	fd1 = open(buf, O_RDONLY|O_CLOEXEC);
+	if (fd == -1) {
+		exit(1);
+	}
+
 	close(fd);
+	close(fd1);
 
 	return fd1;
 }
-- 
2.18.2
Re: [PATCH] Fixed an open function not judging the return value and closed the open function
Posted by Andrew Morton 2 years ago
On Mon,  4 Dec 2023 03:05:54 -0500 liujing <liujing@cmss.chinamobile.com> wrote:

> Signed-off-by: liujing <liujing@cmss.chinamobile.com>
> ---
>  tools/testing/selftests/proc/proc-pid-vm.c | 5 +++++
>  1 file changed, 5 insertions(+)
> 
> diff --git a/tools/testing/selftests/proc/proc-pid-vm.c b/tools/testing/selftests/proc/proc-pid-vm.c
> index cacbd2a4aec9..5fc9b46f236f 100644
> --- a/tools/testing/selftests/proc/proc-pid-vm.c
> +++ b/tools/testing/selftests/proc/proc-pid-vm.c
> @@ -205,7 +205,12 @@ static int make_exe(const uint8_t *payload, size_t len)
>  	/* Avoid ETXTBSY on exec. */
>  	snprintf(buf, sizeof(buf), "/proc/self/fd/%u", fd);
>  	fd1 = open(buf, O_RDONLY|O_CLOEXEC);
> +	if (fd == -1) {

fd1

> +		exit(1);
> +	}

unneeded braces

>  	close(fd);
> +	close(fd1);
>  
>  	return fd1;

Returning an fd which we just closed is clearly wrong.