diff options
author | 2011-03-02 18:34:05 +0000 | |
---|---|---|
committer | 2011-03-02 18:34:05 +0000 | |
commit | af9c4574f412d225b121ef08e6a9520273c5fabc (patch) | |
tree | a0946c6c04fc2ec9927da8a8b40938b4e29d4f43 /lib/libc | |
parent | Change va_arg and va_end definitions from object-like macros to (diff) | |
download | wireguard-openbsd-af9c4574f412d225b121ef08e6a9520273c5fabc.tar.xz wireguard-openbsd-af9c4574f412d225b121ef08e6a9520273c5fabc.zip |
Fix __cxa_finalize() so that calling __cxa_finalize(NULL) properly
invokes handlers registered with __cxa_atexit().
"seems right" deraadt@
Diffstat (limited to 'lib/libc')
-rw-r--r-- | lib/libc/stdlib/atexit.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/lib/libc/stdlib/atexit.c b/lib/libc/stdlib/atexit.c index 4d28fb5ef69..e28ccf29d0d 100644 --- a/lib/libc/stdlib/atexit.c +++ b/lib/libc/stdlib/atexit.c @@ -1,4 +1,4 @@ -/* $OpenBSD: atexit.c,v 1.14 2007/09/05 20:47:47 chl Exp $ */ +/* $OpenBSD: atexit.c,v 1.15 2011/03/02 18:34:05 matthew Exp $ */ /* * Copyright (c) 2002 Daniel Hartmeier * All rights reserved. @@ -147,7 +147,7 @@ __cxa_finalize(void *dso) p->fns[n].fn_ptr.cxa_func = NULL; mprotect(p, pgsize, PROT_READ); } - if (dso != NULL) + if (fn.fn_dso != NULL) (*fn.fn_ptr.cxa_func)(fn.fn_arg); else (*fn.fn_ptr.std_func)(); |