summaryrefslogtreecommitdiff
path: root/ext/sysvshm
diff options
context:
space:
mode:
authorMark A. Hershberger <mah@debian.(none)>2009-03-25 00:37:27 -0400
committerMark A. Hershberger <mah@debian.(none)>2009-03-25 00:37:27 -0400
commit2d4e5b09576bb4f0ba716cc82cdf29ea04d9184b (patch)
tree41ccc042009cba53e4ce43e727fcba4c1cfbf7f3 /ext/sysvshm
parentd29a4fd2dd3b5d4cf6e80b602544d7b71d794e76 (diff)
downloadphp-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.xml2
-rw-r--r--ext/sysvshm/php_sysvshm.h4
-rw-r--r--ext/sysvshm/sysvshm.c17
-rw-r--r--ext/sysvshm/tests/002.phpt22
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