From e1d2681818033bd7475408fc4e3847fcaaf8e275 Mon Sep 17 00:00:00 2001 From: midipix Date: Sun, 10 Mar 2019 06:38:12 +0000 Subject: structured exception handling: added a pointer to the framework's __seh_vtbl. --- src/arch/nt32/crt_glue.c | 3 +++ src/arch/nt32/vtbl.c | 2 ++ src/arch/nt64/crt_glue.c | 3 +++ src/arch/nt64/vtbl.c | 2 ++ 4 files changed, 10 insertions(+) (limited to 'src') diff --git a/src/arch/nt32/crt_glue.c b/src/arch/nt32/crt_glue.c index f65fa9b..7a33981 100644 --- a/src/arch/nt32/crt_glue.c +++ b/src/arch/nt32/crt_glue.c @@ -8,6 +8,7 @@ extern const struct __ldso_vtbl * __ldso_vtbl; extern const struct __psx_vtbl * __psx_vtbl; +extern const struct __seh_vtbl * __seh_vtbl; static int __pthread_surrogate_init(struct pthread * self); @@ -84,6 +85,8 @@ void __libc_entry_routine( __syscall_vtbl = (unsigned long **)ctx.sys_vtbl; __ldso_vtbl = ctx.ldso_vtbl; __psx_vtbl = ctx.psx_vtbl; + __seh_vtbl = ctx.seh_vtbl; + __teb_sys_idx = ctx.teb_sys_idx; __teb_libc_idx = ctx.teb_libc_idx; diff --git a/src/arch/nt32/vtbl.c b/src/arch/nt32/vtbl.c index f21ce17..7691977 100644 --- a/src/arch/nt32/vtbl.c +++ b/src/arch/nt32/vtbl.c @@ -5,6 +5,8 @@ const struct __ldso_vtbl * __ldso_vtbl = 0; const struct __psx_vtbl * __psx_vtbl = 0; +const struct __seh_vtbl * __seh_vtbl = 0; + unsigned long ** __syscall_vtbl = 0; unsigned long __teb_sys_idx = 0; unsigned long __teb_libc_idx = 0; diff --git a/src/arch/nt64/crt_glue.c b/src/arch/nt64/crt_glue.c index f65fa9b..7a33981 100644 --- a/src/arch/nt64/crt_glue.c +++ b/src/arch/nt64/crt_glue.c @@ -8,6 +8,7 @@ extern const struct __ldso_vtbl * __ldso_vtbl; extern const struct __psx_vtbl * __psx_vtbl; +extern const struct __seh_vtbl * __seh_vtbl; static int __pthread_surrogate_init(struct pthread * self); @@ -84,6 +85,8 @@ void __libc_entry_routine( __syscall_vtbl = (unsigned long **)ctx.sys_vtbl; __ldso_vtbl = ctx.ldso_vtbl; __psx_vtbl = ctx.psx_vtbl; + __seh_vtbl = ctx.seh_vtbl; + __teb_sys_idx = ctx.teb_sys_idx; __teb_libc_idx = ctx.teb_libc_idx; diff --git a/src/arch/nt64/vtbl.c b/src/arch/nt64/vtbl.c index f21ce17..7691977 100644 --- a/src/arch/nt64/vtbl.c +++ b/src/arch/nt64/vtbl.c @@ -5,6 +5,8 @@ const struct __ldso_vtbl * __ldso_vtbl = 0; const struct __psx_vtbl * __psx_vtbl = 0; +const struct __seh_vtbl * __seh_vtbl = 0; + unsigned long ** __syscall_vtbl = 0; unsigned long __teb_sys_idx = 0; unsigned long __teb_libc_idx = 0; -- cgit v1.2.3