atexit: Unlock after executing exit functions

Submitted by wangjianjian (C) on April 2, 2020, 3:56 a.m.

Details

Message ID e45b2f4e2706483f94012f5a69e540b8@huawei.com
State New
Series "atexit: Unlock after executing exit functions"
Headers show

Commit Message

wangjianjian (C) April 2, 2020, 3:56 a.m.
From 0bf59dbec10f1267419696ee5b3aa9ace1379ee2 Mon Sep 17 00:00:00 2001
From: Wang Jianjian <wangjianjian3@huawei.com>
Date: Thu, 2 Apr 2020 11:51:13 +0800
Subject: [PATCH] atexit: Unlock after executing exit functions

Signed-off-by: Wang Jianjian <wangjianjian3@huawei.com>
---
 src/exit/atexit.c | 1 +
 1 file changed, 1 insertion(+)

Patch hide | download patch | download mbox

diff --git a/src/exit/atexit.c b/src/exit/atexit.c
index 160d277a..d30db5df 100644
--- a/src/exit/atexit.c
+++ b/src/exit/atexit.c
@@ -27,6 +27,7 @@  void __funcs_on_exit()
 		func(arg);
 		LOCK(lock);
 	}
+	UNLOCK(lock);
 }
 
 void __cxa_finalize(void *dso)

Comments

Rich Felker April 2, 2020, 3:08 p.m.
On Thu, Apr 02, 2020 at 03:56:58AM +0000, wangjianjian (C) wrote:
> >From 0bf59dbec10f1267419696ee5b3aa9ace1379ee2 Mon Sep 17 00:00:00 2001
> From: Wang Jianjian <wangjianjian3@huawei.com>
> Date: Thu, 2 Apr 2020 11:51:13 +0800
> Subject: [PATCH] atexit: Unlock after executing exit functions
> 
> Signed-off-by: Wang Jianjian <wangjianjian3@huawei.com>
> ---
>  src/exit/atexit.c | 1 +
>  1 file changed, 1 insertion(+)
> 
> diff --git a/src/exit/atexit.c b/src/exit/atexit.c
> index 160d277a..d30db5df 100644
> --- a/src/exit/atexit.c
> +++ b/src/exit/atexit.c
> @@ -27,6 +27,7 @@ void __funcs_on_exit()
>  		func(arg);
>  		LOCK(lock);
>  	}
> +	UNLOCK(lock);
>  }
>  
>  void __cxa_finalize(void *dso)
> -- 
> 2.17.1

This patch is not correct and not fixing any bug; rather it introduces
a race condition whereby it's possible for atexit() to return success
adding a new handler, but the handler never runs.

On a higher level, a patch like this needs a commit message (or email
body text intended to be reworded into one) explaining what behavior
you believe is being fixed by the patch. As submitted the title
doesn't give any hint at a reason why it should be done.

Rich