]> granicus.if.org Git - php/commitdiff
Fix shm api detection test for opcache module on FreeBSD
authorDavid Carlier <devnexen@gmail.com>
Fri, 1 Mar 2019 11:33:29 +0000 (11:33 +0000)
committerNikita Popov <nikita.ppv@gmail.com>
Mon, 11 Mar 2019 09:19:35 +0000 (10:19 +0100)
Per man page the shm_open path should start with / and contain no
further slashes.

ext/opcache/config.m4
ext/opcache/shared_alloc_shm.c

index a137c616303ca3a123e48505aa9f09c014f25e06..314a4fed3988625f6b64fd3b3454be08460ac151 100644 (file)
@@ -225,7 +225,7 @@ int main() {
   char *shm;
   char tmpname[4096];
 
-  sprintf(tmpname,"test.shm.%dXXXXXX", getpid());
+  sprintf(tmpname,"/opcache.test.shm.%dXXXXXX", getpid());
   if (mktemp(tmpname) == NULL) {
     return 1;
   }
@@ -294,7 +294,7 @@ int main() {
   char *shm;
   char tmpname[4096];
 
-  sprintf(tmpname,"test.shm.%dXXXXXX", getpid());
+  sprintf(tmpname,"/opcache.test.shm.%dXXXXXX", getpid());
   if (mktemp(tmpname) == NULL) {
     return 1;
   }
index 4d93b3f3f831c882ae2cb970ac663aa5848061a5..29225bef21df41db47f7ef9af1095869ad99f95e 100644 (file)
@@ -60,13 +60,13 @@ static int create_segments(size_t requested_size, zend_shared_segment_shm ***sha
        int shmget_flags;
        zend_shared_segment_shm *shared_segments;
 
-    seg_allocate_size = SEG_ALLOC_SIZE_MAX;
-    /* determine segment size we _really_ need:
-     * no more than to include requested_size
-     */
-    while (requested_size * 2 <= seg_allocate_size && seg_allocate_size > SEG_ALLOC_SIZE_MIN) {
-        seg_allocate_size >>= 1;
-    }
+       seg_allocate_size = SEG_ALLOC_SIZE_MAX;
+       /* determine segment size we _really_ need:
+        * no more than to include requested_size
+        */
+       while (requested_size * 2 <= seg_allocate_size && seg_allocate_size > SEG_ALLOC_SIZE_MIN) {
+               seg_allocate_size >>= 1;
+       }
 
        shmget_flags = IPC_CREAT|SHM_R|SHM_W|IPC_EXCL;