From a86644214cca39ebff12696c96785266d152b252 Mon Sep 17 00:00:00 2001 From: matthew <> Date: Wed, 2 Mar 2011 18:34:05 +0000 Subject: [PATCH] Fix __cxa_finalize() so that calling __cxa_finalize(NULL) properly invokes handlers registered with __cxa_atexit(). "seems right" deraadt@ --- src/lib/libc/stdlib/atexit.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/lib/libc/stdlib/atexit.c b/src/lib/libc/stdlib/atexit.c index 4d28fb5e..e28ccf29 100644 --- a/src/lib/libc/stdlib/atexit.c +++ b/src/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)();