Bug #75525 [Opn->Csd]: Access Violation in vcruntime140.dll
| From: | ab@php.net | Date: | Wed, 15 Nov 2017 19:36:41 +0000 |
| Subject: | Bug #75525 [Opn->Csd]: Access Violation in vcruntime140.dll | ||
| References: | 1 | Groups: | php.bugs |
| Request: | Send a blank email to php-bugs+get-212606@lists.php.net to get a copy of this message | ||
Edit report at https://bugs.php.net/bug.php?id=75525&edit=1
ID: 75525
Updated by: ab@php.net
Reported by: john-stevenson at blueyonder dot co dot uk
Summary: Access Violation in vcruntime140.dll
-Status: Open
+Status: Closed
Type: Bug
Package: Reproducible crash
Operating System: Windows 10
PHP Version: 7.2.0RC6
-Assigned To:
+Assigned To: ab
Block user comment: N
Private report: N
New Comment:
Oh, thanks for that catch, fixed the JIT issue right now.
The rev you mentioned 9acbab30ccb4d7a55a6b2685db0f251e8c997d6d is master only, for 7.2 unfortunately
the padding quirk is needed because of the binary compatibility. Of course if you build all the
needed stuff yourself, you can apply this one to 7.2, too. It saves perhaps 8 bytes per struct on
64-bit at least. But not critical anyway.
Btw. some ready to check snapshots are also available under http://windows.php.net/snapshots/ , they should have
synced already.
I'm closing this one then.
Thanks!
Previous Comments:
------------------------------------------------------------------------
[2017-11-15 18:59:40] john-stevenson at blueyonder dot co dot uk
Thanks. I can confirm that the data is no longer corrupted (using https://github.com/php/php-src/commit/9acbab30ccb4d7a55a6b2685db0f251e8c997d6d)
Incidentally, I had to add an ifdef in ext/pcre/php_pcre.c to get it to compile:
static PHP_GINIT_FUNCTION(pcre) /* {{{ */
{
zend_hash_init(&pcre_globals->pcre_cache, 0, NULL, php_free_pcre_cache, 1);
pcre_globals->backtrack_limit = 0;
pcre_globals->recursion_limit = 0;
pcre_globals->error_code = PHP_PCRE_NO_ERROR;
#ifdef HAVE_PCRE_JIT_SUPPORT
pcre_globals->jit = 1;
#endif
php_pcre_init_pcre2(1);
}
/* }}} */
------------------------------------------------------------------------
[2017-11-15 09:26:18] ab@php.net
Please check the current dev with the patch above.
Thanks.
------------------------------------------------------------------------
[2017-11-15 09:20:04] ab@php.net
Related To: Bug #75159
------------------------------------------------------------------------
[2017-11-15 09:15:47] ab@php.net
Automatic comment on behalf of ab
Revision: http://git.php.net/?p=php-src.git;a=commit;h=020fdfd55dc534eecab12a53bb3ef50d7a71e5cb
Log: Fixed bug #75525 Access Violation in vcruntime140.dll
------------------------------------------------------------------------
[2017-11-14 18:37:53] john-stevenson at blueyonder dot co dot uk
I added a printf to show the dirent data written in php_scandir:
php_scandir.c, line 104
printf("%d: %p, ino=%d, off=%d, reclen=%d, %s\n", nfiles, newdp, dp->d_ino,
dp->d_off, dp->d_reclen, dp->d_name);
and another to show the received data in php_init_config:
php_ini.c, line 685:
printf("%d: %p, ino=%d, off=%d, reclen=%d, %s\n", i, namelist[i], namelist[i]->d_ino,
namelist[i]->d_off, namelist[i]->d_reclen,
namelist[i]->d_name);
Here is the output with PHP_INI_SCAN_DIR set to a directory containing one file.
0: 00000218870E2D50, ino=1, off=1, reclen=1, name=.
1: 00000218870E28D0, ino=1, off=2, reclen=2, name=..
2: 00000218870E51E0, ino=1, off=3, reclen=12, name=scan-dir.ini
0: 00000218870E2D50, ino=1, off=1, reclen=1, name=¦¦¦¦¦¦
1: 00000218870E28D0, ino=1, off=2, reclen=2, name=¦¦¦¦¦¦¦¦¿nÃd
2: 00000218870E51E0, ino=1, off=3, reclen=12,
name=¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
On a 7.1.11 build (VC14) the received data is the same.
------------------------------------------------------------------------
The remainder of the comments for this report are too long. To view
the rest of the comments, please view the bug report online at
https://bugs.php.net/bug.php?id=75525
--
Edit this bug report at https://bugs.php.net/bug.php?id=75525&edit=1