diff options
| author | Rich Felker <dalias@aerifal.cx> | 2012-08-19 20:48:16 -0400 | 
|---|---|---|
| committer | Rich Felker <dalias@aerifal.cx> | 2012-08-19 20:48:16 -0400 | 
| commit | a749ba3adc2f3b4abfc68b21d4c3741b20c8f657 (patch) | |
| tree | d81b6af48d6b09dc132890901f30a512e83ba492 /src | |
| parent | 04109502c0355878d238bdba06a09b2593b2996f (diff) | |
| download | musl-a749ba3adc2f3b4abfc68b21d4c3741b20c8f657.tar.gz | |
fix bug whereby most atexit-registered functions got skipped
Diffstat (limited to 'src')
| -rw-r--r-- | src/exit/atexit.c | 5 | 
1 files changed, 2 insertions, 3 deletions
| diff --git a/src/exit/atexit.c b/src/exit/atexit.c index 1b40cb9b..c31f3dc3 100644 --- a/src/exit/atexit.c +++ b/src/exit/atexit.c @@ -21,9 +21,8 @@ void __funcs_on_exit()  	int i;  	void (*func)(void *), *arg;  	LOCK(lock); -	for (; head; head=head->next) { -		for (i=COUNT-1; i>=0 && !head->f[i]; i--); -		if (i<0) continue; +	for (; head; head=head->next) for (i=COUNT-1; i>=0; i--) { +		if (!head->f[i]) continue;  		func = head->f[i];  		arg = head->a[i];  		head->f[i] = 0; | 
