com php-src: backport relevant part from bug #72858 patch in 7.0: TSRM/tsrm_win32.c
| From: | Anatol Belski | Date: | Thu, 25 Aug 2016 10:46:28 +0000 |
| Subject: | com php-src: backport relevant part from bug #72858 patch in 7.0: TSRM/tsrm_win32.c | ||
| Groups: | php.cvs | ||
| Request: | Send a blank email to php-cvs+get-94060@lists.php.net to get a copy of this message | ||
Commit: a1ff39ffe5cc3e83bd51b2511163e2e620e935d2
Author: Anatol Belski <ab@php.net> Thu, 25 Aug 2016 12:46:28 +0200
Parents: 6a232c3604f6c00f6c09cc3782dd1b36b30d23d4
Branches: PHP-5.6 PHP-7.0 PHP-7.1 master
Link: http://git.php.net/?p=php-src.git;a=commitdiff;h=a1ff39ffe5cc3e83bd51b2511163e2e620e935d2
Log:
backport relevant part from bug #72858 patch in 7.0
Bugs:
https://bugs.php.net/72858
Changed paths:
M TSRM/tsrm_win32.c
Diff:
diff --git a/TSRM/tsrm_win32.c b/TSRM/tsrm_win32.c
index 06e4561..f81f93c 100644
--- a/TSRM/tsrm_win32.c
+++ b/TSRM/tsrm_win32.c
@@ -654,17 +654,27 @@ TSRM_API int shmget(int key, int size, int flags)
TSRM_API void *shmat(int key, const void *shmaddr, int flags)
{
shm_pair *shm = shm_get(key, NULL);
+ int err;
if (!shm->segment) {
return (void*)-1;
}
+ shm->addr = MapViewOfFileEx(shm->segment, FILE_MAP_ALL_ACCESS, 0, 0, 0, NULL);
+
+ err = GetLastError();
+ if (err) {
+ /* Catch more errors */
+ if (ERROR_NOT_ENOUGH_MEMORY == err) {
+ _set_errno(ENOMEM);
+ }
+ return (void*)-1;
+ }
+
shm->descriptor->shm_atime = time(NULL);
shm->descriptor->shm_lpid = getpid();
shm->descriptor->shm_nattch++;
- shm->addr = MapViewOfFileEx(shm->segment, FILE_MAP_ALL_ACCESS, 0, 0, 0, NULL);
-
return shm->addr;
}