mirror of
https://github.com/php/php-src.git
synced 2026-03-24 00:02:20 +01:00
Prevent closing of unrelated handles
If our `shmget()` fails for certain reasons, the segment handle is closed. However, the handle might be reused by Windows, and as such we must not close it again when shutting down the TSRM. Closes GH-15984.
This commit is contained in:
3
NEWS
3
NEWS
@@ -30,6 +30,9 @@ PHP NEWS
|
||||
. Fixed bugs GH-15908 and GH-15026 (leak / assertion failure in streams.c).
|
||||
(nielsdos)
|
||||
|
||||
- TSRM:
|
||||
. Prevent closing of unrelated handles. (cmb)
|
||||
|
||||
- XML:
|
||||
. Fixed bug GH-15868 (Assertion failure in xml_parse_into_struct after
|
||||
exception). (nielsdos)
|
||||
|
||||
@@ -707,6 +707,7 @@ TSRM_API int shmget(key_t key, size_t size, int flags)
|
||||
if (NULL != shm->descriptor && (shm->descriptor->shm_perm.key != key || size > shm->descriptor->shm_segsz)) {
|
||||
if (NULL != shm->segment) {
|
||||
CloseHandle(shm->segment);
|
||||
shm->segment = INVALID_HANDLE_VALUE;
|
||||
}
|
||||
UnmapViewOfFile(shm->descriptor);
|
||||
shm->descriptor = NULL;
|
||||
|
||||
Reference in New Issue
Block a user