]> granicus.if.org Git - php/commitdiff
Unify validation of shm segment size inside shm_attach()
authorIlia Alshanetsky <iliaa@php.net>
Sat, 24 Feb 2007 15:44:43 +0000 (15:44 +0000)
committerIlia Alshanetsky <iliaa@php.net>
Sat, 24 Feb 2007 15:44:43 +0000 (15:44 +0000)
ext/sysvshm/sysvshm.c
ext/sysvshm/tests/002.phpt

index c2dfbab5bd57bc540f9df1fc3b76ec993dbd79f4..c8092ef2ccb85e98fd16a703bae0fc03e75a9c35 100644 (file)
@@ -134,6 +134,11 @@ PHP_FUNCTION(shm_attach)
                        shm_key = Z_LVAL_PP(arg_key);
        }
 
+       if (shm_size < 1) {
+               php_error_docref(NULL TSRMLS_CC, E_WARNING, "Segment size must be greater then zero.");
+               RETURN_FALSE;
+       }
+
        shm_list_ptr = (sysvshm_shm *) emalloc(sizeof(sysvshm_shm));
 
        /* get the id from a specified key or create new shared memory */
index 81bb0cd495a7b4bc5069d4d2eec9afb8b7165392..21651dee582789413837ce829e3b1473507bf781 100644 (file)
@@ -33,35 +33,35 @@ shm_remove($s);
 echo "Done\n";
 ?>
 --EXPECTF--    
-Warning: Wrong parameter count for shm_attach() in %s on line %d
+Warning: Wrong parameter count for shm_attach() in %s/sysvshm/tests/002.php on line %d
 NULL
 
-Warning: Wrong parameter count for shm_attach() in %s on line %d
+Warning: Wrong parameter count for shm_attach() in %s/sysvshm/tests/002.php on line %d
 NULL
 
-Warning: shm_attach(): failed for key 0xffffffff: memorysize too small in %s on line %d
+Warning: shm_attach(): Segment size must be greater then zero. in %s/sysvshm/tests/002.php on line %d
 bool(false)
 
-Warning: shm_attach(): failed for key 0x0: Invalid argument in %s on line %d
+Warning: shm_attach(): Segment size must be greater then zero. in %s/sysvshm/tests/002.php on line %d
 bool(false)
 
-Warning: shm_attach(): failed for key 0x7b: Invalid argument in %s on line %d
+Warning: shm_attach(): Segment size must be greater then zero. in %s/sysvshm/tests/002.php on line %d
 bool(false)
 
-Warning: shm_attach(): failed for key %s: Invalid argument in %s on line %d
+Warning: shm_attach(): Segment size must be greater then zero. in %s/sysvshm/tests/002.php on line %d
 bool(false)
 
-Warning: shm_remove(): The parameter is not a valid shm_identifier in %s on line %d
+Warning: shm_remove(): The parameter is not a valid shm_identifier in %s/sysvshm/tests/002.php on line %d
 
-Warning: shm_attach(): failed for key %s: memorysize too small in %s on line %d
+Warning: shm_attach(): Segment size must be greater then zero. in %s/sysvshm/tests/002.php on line %d
 bool(false)
 
-Warning: shm_remove(): The parameter is not a valid shm_identifier in %s on line %d
+Warning: shm_remove(): The parameter is not a valid shm_identifier in %s/sysvshm/tests/002.php on line %d
 int(%d)
 
-Warning: shm_remove(): The parameter is not a valid shm_identifier in %s on line %d
+Warning: shm_remove(): The parameter is not a valid shm_identifier in %s/sysvshm/tests/002.php on line %d
 int(%d)
 int(%d)
 int(%d)
 int(%d)
-Done
+Done
\ No newline at end of file