]> granicus.if.org Git - php/commitdiff
fix stack overflow
authorAnatol Belski <ab@php.net>
Tue, 22 Sep 2015 19:12:05 +0000 (21:12 +0200)
committerAnatol Belski <ab@php.net>
Sat, 10 Oct 2015 15:31:05 +0000 (17:31 +0200)
TSRM/tsrm_win32.c

index 9f900f2ae6e9796618e436c31530ea3b60a65ba2..e8ec18650ac3340755f25b752dfc0404dea0a5da 100644 (file)
@@ -599,8 +599,10 @@ TSRM_API int shmget(int key, int size, int flags)
                return -1;
        }
 
-       sprintf(shm_segment, "TSRM_SHM_SEGMENT:%d", key);
-       sprintf(shm_info, "TSRM_SHM_DESCRIPTOR:%d", key);
+       snprintf(shm_segment, sizeof(shm_segment)-1, "TSRM_SHM_SEGMENT:%d", key);
+       snprintf(shm_info, sizeof(shm_info)-1, "TSRM_SHM_DESCRIPTOR:%d", key);
+       shm_segment[sizeof(shm_segment)-1] = '\0';
+       shm_info[sizeof(shm_info)-1] = '\0';
 
        shm_handle  = OpenFileMapping(FILE_MAP_ALL_ACCESS, FALSE, shm_segment);
        info_handle = OpenFileMapping(FILE_MAP_ALL_ACCESS, FALSE, shm_info);