mirror of
https://github.com/php/php-src.git
synced 2025-08-15 21:48:51 +02:00
Fix fuzzer after opcache became mandatory (#19292)
This commit is contained in:
parent
c1b129bd18
commit
bc2d02e3a9
3 changed files with 2 additions and 44 deletions
|
@ -139,33 +139,3 @@ ZEND_ATTRIBUTE_UNUSED static void opcache_invalidate(void) {
|
|||
zval_ptr_dtor(&retval);
|
||||
zend_exception_restore();
|
||||
}
|
||||
|
||||
ZEND_ATTRIBUTE_UNUSED char *get_opcache_path(void) {
|
||||
/* Try relative to cwd. */
|
||||
char *p = realpath("modules/opcache.so", NULL);
|
||||
if (p) {
|
||||
return p;
|
||||
}
|
||||
|
||||
/* Try relative to binary location. */
|
||||
char path[MAXPATHLEN];
|
||||
#if defined(__FreeBSD__)
|
||||
size_t pathlen = sizeof(path);
|
||||
int mib[4] = {CTL_KERN, KERN_PROC, KERN_PROC_PATHNAME, -1};
|
||||
if (sysctl(mib, 4, path, &pathlen, NULL, 0) < 0) {
|
||||
#else
|
||||
if (readlink("/proc/self/exe", path, sizeof(path)) < 0) {
|
||||
#endif
|
||||
ZEND_ASSERT(0 && "Failed to get binary path");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
/* Get basename. */
|
||||
char *last_sep = strrchr(path, '/');
|
||||
if (last_sep) {
|
||||
*last_sep = '\0';
|
||||
}
|
||||
|
||||
strlcat(path, "/modules/opcache.so", sizeof(path));
|
||||
return realpath(path, NULL);
|
||||
}
|
||||
|
|
|
@ -50,18 +50,12 @@ int LLVMFuzzerTestOneInput(const uint8_t *Data, size_t Size) {
|
|||
}
|
||||
|
||||
int LLVMFuzzerInitialize(int *argc, char ***argv) {
|
||||
char *opcache_path = get_opcache_path();
|
||||
assert(opcache_path && "Failed to determine opcache path");
|
||||
|
||||
char ini_buf[512];
|
||||
snprintf(ini_buf, sizeof(ini_buf),
|
||||
"zend_extension=%s\n"
|
||||
"opcache.validate_timestamps=0\n"
|
||||
"opcache.file_update_protection=0\n"
|
||||
"opcache.jit_buffer_size=128M\n"
|
||||
"opcache.protect_memory=1\n",
|
||||
opcache_path);
|
||||
free(opcache_path);
|
||||
"opcache.protect_memory=1\n");
|
||||
|
||||
create_file();
|
||||
fuzzer_init_php_for_execute(ini_buf);
|
||||
|
|
|
@ -54,12 +54,8 @@ int LLVMFuzzerTestOneInput(const uint8_t *Data, size_t Size) {
|
|||
}
|
||||
|
||||
int LLVMFuzzerInitialize(int *argc, char ***argv) {
|
||||
char *opcache_path = get_opcache_path();
|
||||
assert(opcache_path && "Failed to determine opcache path");
|
||||
|
||||
char ini_buf[512];
|
||||
snprintf(ini_buf, sizeof(ini_buf),
|
||||
"zend_extension=%s\n"
|
||||
"opcache.validate_timestamps=0\n"
|
||||
"opcache.file_update_protection=0\n"
|
||||
"opcache.memory_consumption=1024\n"
|
||||
|
@ -71,9 +67,7 @@ int LLVMFuzzerInitialize(int *argc, char ***argv) {
|
|||
"opcache.jit_max_root_traces=100000\n"
|
||||
"opcache.jit_max_side_traces=100000\n"
|
||||
"opcache.jit_max_exit_counters=100000\n"
|
||||
"opcache.protect_memory=1\n",
|
||||
opcache_path);
|
||||
free(opcache_path);
|
||||
"opcache.protect_memory=1\n");
|
||||
|
||||
create_file();
|
||||
fuzzer_init_php_for_execute(ini_buf);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue