From 33ed7bb5bc2cb41259df064229968933d9c898ca Mon Sep 17 00:00:00 2001 From: Corinna Vinschen Date: Thu, 21 Aug 2014 09:04:09 +0000 Subject: * miscfuncs.cc (__import_address): Cover the first dereference to imp under the fault handler. --- winsup/cygwin/ChangeLog | 5 +++++ winsup/cygwin/miscfuncs.cc | 4 ++-- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/winsup/cygwin/ChangeLog b/winsup/cygwin/ChangeLog index fe21ee26c..51ebe5489 100644 --- a/winsup/cygwin/ChangeLog +++ b/winsup/cygwin/ChangeLog @@ -1,3 +1,8 @@ +2014-08-21 Corinna Vinschen + + * miscfuncs.cc (__import_address): Cover the first dereference to imp + under the fault handler. + 2014-08-21 Corinna Vinschen * net.cc (if_freenameindex): Don't catch a SEGV from free to fail diff --git a/winsup/cygwin/miscfuncs.cc b/winsup/cygwin/miscfuncs.cc index 1ec92d9dc..741e6726b 100644 --- a/winsup/cygwin/miscfuncs.cc +++ b/winsup/cygwin/miscfuncs.cc @@ -512,11 +512,11 @@ slashify (const char *src, char *dst, bool trailing_slash_p) void * __reg1 __import_address (void *imp) { - if (*((uint16_t *) imp) != 0x25ff) - return NULL; myfault efault; if (efault.faulted ()) return NULL; + if (*((uint16_t *) imp) != 0x25ff) + return NULL; const char *ptr = (const char *) imp; #ifdef __x86_64__ const uintptr_t *jmpto = (uintptr_t *) (ptr + 6 + *(int32_t *)(ptr + 2)); -- cgit v1.2.3