diff options
| author | Mark A. Hershberger <mah@debian.(none)> | 2009-03-25 00:37:27 -0400 |
|---|---|---|
| committer | Mark A. Hershberger <mah@debian.(none)> | 2009-03-25 00:37:27 -0400 |
| commit | 2d4e5b09576bb4f0ba716cc82cdf29ea04d9184b (patch) | |
| tree | 41ccc042009cba53e4ce43e727fcba4c1cfbf7f3 /ext/sysvshm | |
| parent | d29a4fd2dd3b5d4cf6e80b602544d7b71d794e76 (diff) | |
| download | php-upstream/5.2.2.tar.gz | |
Imported Upstream version 5.2.2upstream/5.2.2
Diffstat (limited to 'ext/sysvshm')
| -rw-r--r-- | ext/sysvshm/package.xml | 2 | ||||
| -rw-r--r-- | ext/sysvshm/php_sysvshm.h | 4 | ||||
| -rw-r--r-- | ext/sysvshm/sysvshm.c | 17 | ||||
| -rw-r--r-- | ext/sysvshm/tests/002.phpt | 22 |
4 files changed, 25 insertions, 20 deletions
diff --git a/ext/sysvshm/package.xml b/ext/sysvshm/package.xml index 23e38c7ee..d26986bfa 100644 --- a/ext/sysvshm/package.xml +++ b/ext/sysvshm/package.xml @@ -20,7 +20,7 @@ Unix System V IPC Shared Memory <version>5.0.0rc1</version> <date>2004-03-19</date> <notes> -package.xml added to support intallation using pear installer +package.xml added to support installation using pear installer </notes> <filelist> <file role="doc" name="CREDITS"/> diff --git a/ext/sysvshm/php_sysvshm.h b/ext/sysvshm/php_sysvshm.h index 5e6757636..9a3d39f1a 100644 --- a/ext/sysvshm/php_sysvshm.h +++ b/ext/sysvshm/php_sysvshm.h @@ -2,7 +2,7 @@ +----------------------------------------------------------------------+ | PHP Version 5 | +----------------------------------------------------------------------+ - | Copyright (c) 1997-2006 The PHP Group | + | Copyright (c) 1997-2007 The PHP Group | +----------------------------------------------------------------------+ | This source file is subject to version 3.01 of the PHP license, | | that is bundled with this package in the file LICENSE, and is | @@ -16,7 +16,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: php_sysvshm.h,v 1.17.2.1 2006/01/01 12:50:16 sniper Exp $ */ +/* $Id: php_sysvshm.h,v 1.17.2.1.2.1 2007/01/01 09:36:09 sebastian Exp $ */ #ifndef PHP_SYSVSHM_H #define PHP_SYSVSHM_H diff --git a/ext/sysvshm/sysvshm.c b/ext/sysvshm/sysvshm.c index da1ad6857..c6e35e7f6 100644 --- a/ext/sysvshm/sysvshm.c +++ b/ext/sysvshm/sysvshm.c @@ -2,7 +2,7 @@ +----------------------------------------------------------------------+ | PHP Version 5 | +----------------------------------------------------------------------+ - | Copyright (c) 1997-2006 The PHP Group | + | Copyright (c) 1997-2007 The PHP Group | +----------------------------------------------------------------------+ | This source file is subject to version 3.01 of the PHP license, | | that is bundled with this package in the file LICENSE, and is | @@ -16,7 +16,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: sysvshm.c,v 1.70.2.2.2.1 2006/06/29 09:03:27 tony2001 Exp $ */ +/* $Id: sysvshm.c,v 1.70.2.2.2.4 2007/02/24 15:44:43 iliaa Exp $ */ /* This has been built and tested on Linux 2.2.14 * @@ -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 */ @@ -216,7 +221,7 @@ PHP_FUNCTION(shm_remove) id = Z_LVAL_PP(arg_id); shm_list_ptr = (sysvshm_shm *) zend_list_find(id, &type); - if (!shm_list_ptr) { + if (!shm_list_ptr || type != php_sysvshm.le_shm) { php_error_docref(NULL TSRMLS_CC, E_WARNING, "The parameter is not a valid shm_identifier"); RETURN_FALSE; } @@ -252,7 +257,7 @@ PHP_FUNCTION(shm_put_var) key = Z_LVAL_PP(arg_key); shm_list_ptr = (sysvshm_shm *) zend_list_find(id, &type); - if (type != php_sysvshm.le_shm) { + if (!shm_list_ptr || type != php_sysvshm.le_shm) { php_error_docref(NULL TSRMLS_CC, E_WARNING, "%ld is not a SysV shared memory index", id); RETURN_FALSE; } @@ -299,7 +304,7 @@ PHP_FUNCTION(shm_get_var) key = Z_LVAL_PP(arg_key); shm_list_ptr = (sysvshm_shm *) zend_list_find(id, &type); - if (type != php_sysvshm.le_shm) { + if (!shm_list_ptr || type != php_sysvshm.le_shm) { php_error_docref(NULL TSRMLS_CC, E_WARNING, "%ld is not a SysV shared memory index", id); RETURN_FALSE; } @@ -345,7 +350,7 @@ PHP_FUNCTION(shm_remove_var) key = Z_LVAL_PP(arg_key); shm_list_ptr = (sysvshm_shm *) zend_list_find(id, &type); - if (type != php_sysvshm.le_shm) { + if (!shm_list_ptr || type != php_sysvshm.le_shm) { php_error_docref(NULL TSRMLS_CC, E_WARNING, "%ld is not a SysV shared memory index", id); RETURN_FALSE; } diff --git a/ext/sysvshm/tests/002.phpt b/ext/sysvshm/tests/002.phpt index 81bb0cd49..21651dee5 100644 --- a/ext/sysvshm/tests/002.phpt +++ b/ext/sysvshm/tests/002.phpt @@ -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 |
