* miscfuncs.cc (__import_address): Avoid treating random instructions as import
jump. * malloc_wrapper.cc (malloc_init): Remove comment about 64-bit.
This commit is contained in:
parent
6c3f590cd9
commit
9c4478df47
@ -1,3 +1,9 @@
|
|||||||
|
2013-01-22 Christopher Faylor <me.cygwin2013@cgf.cx>
|
||||||
|
|
||||||
|
* miscfuncs.cc (__import_address): Avoid treating random instructions
|
||||||
|
as import jump.
|
||||||
|
* malloc_wrapper.cc (malloc_init): Remove comment about 64-bit.
|
||||||
|
|
||||||
2013-01-21 Christopher Faylor <me.cygwin2013@cgf.cx>
|
2013-01-21 Christopher Faylor <me.cygwin2013@cgf.cx>
|
||||||
|
|
||||||
* dcrt0.cc (dll_crt0_1): Comment assumption.
|
* dcrt0.cc (dll_crt0_1): Comment assumption.
|
||||||
|
@ -285,8 +285,7 @@ malloc_init ()
|
|||||||
{
|
{
|
||||||
extern void *_sigfe_malloc;
|
extern void *_sigfe_malloc;
|
||||||
/* Decide if we are using our own version of malloc by testing the import
|
/* Decide if we are using our own version of malloc by testing the import
|
||||||
address from user_data. This will likely need to be updated
|
address from user_data. */
|
||||||
for 64-bit. */
|
|
||||||
use_internal = import_address (user_data->malloc) == &_sigfe_malloc;
|
use_internal = import_address (user_data->malloc) == &_sigfe_malloc;
|
||||||
malloc_printf ("using %s malloc", use_internal ? "internal" : "external");
|
malloc_printf ("using %s malloc", use_internal ? "internal" : "external");
|
||||||
internal_malloc_determined = true;
|
internal_malloc_determined = true;
|
||||||
|
@ -437,6 +437,11 @@ slashify (const char *src, char *dst, bool trailing_slash_p)
|
|||||||
void * __reg1
|
void * __reg1
|
||||||
__import_address (void *imp)
|
__import_address (void *imp)
|
||||||
{
|
{
|
||||||
|
if (*((uint16_t *) imp) != 0x25ff)
|
||||||
|
return NULL;
|
||||||
|
myfault efault;
|
||||||
|
if (efault.faulted ())
|
||||||
|
return NULL;
|
||||||
const char *ptr = (const char *) imp;
|
const char *ptr = (const char *) imp;
|
||||||
const uintptr_t *jmpto = (uintptr_t *) *((uintptr_t *) (ptr + 2));
|
const uintptr_t *jmpto = (uintptr_t *) *((uintptr_t *) (ptr + 2));
|
||||||
return (void *) *jmpto;
|
return (void *) *jmpto;
|
||||||
|
Loading…
Reference in New Issue
Block a user