diff options
author | Anatol Belski <ab@php.net> | 2013-07-22 14:50:18 +0200 |
---|---|---|
committer | Anatol Belski <ab@php.net> | 2013-07-22 14:50:18 +0200 |
commit | 25f924abf62e70f3474b5885c12a521c68c2066d (patch) | |
tree | aa492ea45da770d6e6db85dba336945a02765739 /TSRM | |
parent | 1b4103c09d552c48275564c459122b67d34a9d1a (diff) | |
download | php-git-25f924abf62e70f3474b5885c12a521c68c2066d.tar.gz |
fixed possible null deref
Diffstat (limited to 'TSRM')
-rw-r--r-- | TSRM/tsrm_win32.c | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/TSRM/tsrm_win32.c b/TSRM/tsrm_win32.c index 0ced6db451..2ec97be011 100644 --- a/TSRM/tsrm_win32.c +++ b/TSRM/tsrm_win32.c @@ -625,7 +625,7 @@ TSRM_API int shmget(int key, int size, int flags) shm->info = info_handle; shm->descriptor = MapViewOfFileEx(shm->info, FILE_MAP_ALL_ACCESS, 0, 0, 0, NULL); - if (created) { + if (NULL != shm->descriptor && created) { shm->descriptor->shm_perm.key = key; shm->descriptor->shm_segsz = size; shm->descriptor->shm_ctime = time(NULL); @@ -639,8 +639,10 @@ TSRM_API int shmget(int key, int size, int flags) shm->descriptor->shm_perm.mode = shm->descriptor->shm_perm.seq = 0; } - if (shm->descriptor->shm_perm.key != key || size > shm->descriptor->shm_segsz ) { - CloseHandle(shm->segment); + if (NULL != shm->descriptor && (shm->descriptor->shm_perm.key != key || size > shm->descriptor->shm_segsz)) { + if (NULL != shm->segment) { + CloseHandle(shm->segment); + } UnmapViewOfFile(shm->descriptor); CloseHandle(shm->info); return -1; |