mirror of
https://github.com/php/php-src.git
synced 2025-08-15 21:48:51 +02:00
Disable linking and preloading of classes those parent or one of interface or trait is an internal class.
This commit is contained in:
parent
a594a618ce
commit
4531fbf931
1 changed files with 18 additions and 0 deletions
|
@ -3238,6 +3238,10 @@ static void preload_link(void)
|
||||||
parent = zend_hash_find_ptr(EG(class_table), key);
|
parent = zend_hash_find_ptr(EG(class_table), key);
|
||||||
zend_string_release(key);
|
zend_string_release(key);
|
||||||
if (!parent) continue;
|
if (!parent) continue;
|
||||||
|
#ifdef ZEND_WIN32
|
||||||
|
/* On Windows we can't link with internal class, because of ASLR */
|
||||||
|
if (parent->type == ZEND_INTERNAL_CLASS) continue;
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
if (ce->num_interfaces) {
|
if (ce->num_interfaces) {
|
||||||
|
@ -3248,6 +3252,13 @@ static void preload_link(void)
|
||||||
found = 0;
|
found = 0;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
#ifdef ZEND_WIN32
|
||||||
|
/* On Windows we can't link with internal class, because of ASLR */
|
||||||
|
if (p->type == ZEND_INTERNAL_CLASS) {
|
||||||
|
found = 0;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
if (!found) continue;
|
if (!found) continue;
|
||||||
}
|
}
|
||||||
|
@ -3260,6 +3271,13 @@ static void preload_link(void)
|
||||||
found = 0;
|
found = 0;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
#ifdef ZEND_WIN32
|
||||||
|
/* On Windows we can't link with internal class, because of ASLR */
|
||||||
|
if (p->type == ZEND_INTERNAL_CLASS) {
|
||||||
|
found = 0;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
if (!found) continue;
|
if (!found) continue;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue