Skip to content

Commit 4531fbf

Browse files
committed
Disable linking and preloading of classes those parent or one of interface or trait is an internal class.
1 parent a594a61 commit 4531fbf

File tree

1 file changed

+18
-0
lines changed

1 file changed

+18
-0
lines changed

ext/opcache/ZendAccelerator.c

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3238,6 +3238,10 @@ static void preload_link(void)
32383238
parent = zend_hash_find_ptr(EG(class_table), key);
32393239
zend_string_release(key);
32403240
if (!parent) continue;
3241+
#ifdef ZEND_WIN32
3242+
/* On Windows we can't link with internal class, because of ASLR */
3243+
if (parent->type == ZEND_INTERNAL_CLASS) continue;
3244+
#endif
32413245
}
32423246

32433247
if (ce->num_interfaces) {
@@ -3248,6 +3252,13 @@ static void preload_link(void)
32483252
found = 0;
32493253
break;
32503254
}
3255+
#ifdef ZEND_WIN32
3256+
/* On Windows we can't link with internal class, because of ASLR */
3257+
if (p->type == ZEND_INTERNAL_CLASS) {
3258+
found = 0;
3259+
break;
3260+
}
3261+
#endif
32513262
}
32523263
if (!found) continue;
32533264
}
@@ -3260,6 +3271,13 @@ static void preload_link(void)
32603271
found = 0;
32613272
break;
32623273
}
3274+
#ifdef ZEND_WIN32
3275+
/* On Windows we can't link with internal class, because of ASLR */
3276+
if (p->type == ZEND_INTERNAL_CLASS) {
3277+
found = 0;
3278+
break;
3279+
}
3280+
#endif
32633281
}
32643282
if (!found) continue;
32653283
}

0 commit comments

Comments
 (0)