[PHP-CVS] cvs: php-src /ext/sysvshm sysvshm.c

2009-03-17 Thread Ilia Alshanetsky
iliaa   Tue Mar 17 23:22:05 2009 UTC

  Modified files:  
/php-src/ext/sysvshmsysvshm.c 
  Log:
  
  MFB: Fixed compiler warning
  
http://cvs.php.net/viewvc.cgi/php-src/ext/sysvshm/sysvshm.c?r1=1.86&r2=1.87&diff_format=u
Index: php-src/ext/sysvshm/sysvshm.c
diff -u php-src/ext/sysvshm/sysvshm.c:1.86 php-src/ext/sysvshm/sysvshm.c:1.87
--- php-src/ext/sysvshm/sysvshm.c:1.86  Tue Mar 10 23:39:51 2009
+++ php-src/ext/sysvshm/sysvshm.c   Tue Mar 17 23:22:05 2009
@@ -16,7 +16,7 @@
+--+
  */
  
-/* $Id: sysvshm.c,v 1.86 2009/03/10 23:39:51 helly Exp $ */
+/* $Id: sysvshm.c,v 1.87 2009/03/17 23:22:05 iliaa Exp $ */
 
 /* This has been built and tested on Linux 2.2.14 
  *
@@ -166,19 +166,19 @@
/* get the id from a specified key or create new shared memory */
if ((shm_id = shmget(shm_key, 0, 0)) < 0) {
if (shm_size < sizeof(sysvshm_chunk_head)) {
-   php_error_docref(NULL TSRMLS_CC, E_WARNING, "failed for 
key 0x%x: memorysize too small", shm_key);
+   php_error_docref(NULL TSRMLS_CC, E_WARNING, "failed for 
key 0x%lx: memorysize too small", shm_key);
efree(shm_list_ptr);
RETURN_FALSE;
}
if ((shm_id = shmget(shm_key, shm_size, shm_flag | IPC_CREAT | 
IPC_EXCL)) < 0) {
-   php_error_docref(NULL TSRMLS_CC, E_WARNING, "failed for 
key 0x%x: %s", shm_key, strerror(errno));
+   php_error_docref(NULL TSRMLS_CC, E_WARNING, "failed for 
key 0x%lx: %s", shm_key, strerror(errno));
efree(shm_list_ptr);
RETURN_FALSE;
}
}
 
if ((shm_ptr = shmat(shm_id, NULL, 0)) == (void *) -1) {
-   php_error_docref(NULL TSRMLS_CC, E_WARNING, "failed for key 
0x%x: %s", shm_key, strerror(errno));
+   php_error_docref(NULL TSRMLS_CC, E_WARNING, "failed for key 
0x%lx: %s", shm_key, strerror(errno));
efree(shm_list_ptr);
RETURN_FALSE;
}



-- 
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



[PHP-CVS] cvs: php-src /ext/sysvshm sysvshm.c /ext/sysvshm/tests 002.phpt 003.phpt 004.phpt 005.phpt 006.phpt 007.phpt

2008-12-23 Thread Felipe Pena
felipe  Wed Dec 24 00:04:40 2008 UTC

  Modified files:  
/php-src/ext/sysvshmsysvshm.c 
/php-src/ext/sysvshm/tests  002.phpt 003.phpt 004.phpt 005.phpt 
006.phpt 007.phpt 
  Log:
  - Standard
  
http://cvs.php.net/viewvc.cgi/php-src/ext/sysvshm/sysvshm.c?r1=1.83&r2=1.84&diff_format=u
Index: php-src/ext/sysvshm/sysvshm.c
diff -u php-src/ext/sysvshm/sysvshm.c:1.83 php-src/ext/sysvshm/sysvshm.c:1.84
--- php-src/ext/sysvshm/sysvshm.c:1.83  Mon Nov 17 11:26:24 2008
+++ php-src/ext/sysvshm/sysvshm.c   Wed Dec 24 00:04:40 2008
@@ -16,7 +16,7 @@
+--+
  */
  
-/* $Id: sysvshm.c,v 1.83 2008/11/17 11:26:24 felipe Exp $ */
+/* $Id: sysvshm.c,v 1.84 2008/12/24 00:04:40 felipe Exp $ */
 
 /* This has been built and tested on Linux 2.2.14 
  *
@@ -153,7 +153,7 @@
long shm_key, shm_id, shm_size = php_sysvshm.init_mem, shm_flag = 0666;
 
if (SUCCESS != zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "l|ll", 
&shm_key, &shm_size, &shm_flag)) {
-   RETURN_FALSE;
+   return;
}
 
if (shm_size < 1) {
@@ -209,7 +209,7 @@
sysvshm_shm *shm_list_ptr;
 
if (SUCCESS != zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "r", 
&shm_id)) {
-   RETURN_FALSE;
+   return;
}
SHM_FETCH_RESOURCE(shm_list_ptr, shm_id);
RETURN_BOOL(SUCCESS == zend_list_delete(Z_LVAL_P(shm_id)));
@@ -224,7 +224,7 @@
sysvshm_shm *shm_list_ptr;
 
if (SUCCESS != zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "r", 
&shm_id)) {
-   RETURN_FALSE;
+   return;
}
SHM_FETCH_RESOURCE(shm_list_ptr, shm_id);

@@ -249,7 +249,7 @@
php_serialize_data_t var_hash;
 
if (SUCCESS != zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "rlz", 
&shm_id, &shm_key, &arg_var)) {
-   RETURN_FALSE;
+   return;
}
SHM_FETCH_RESOURCE(shm_list_ptr, shm_id);

@@ -285,7 +285,7 @@
php_unserialize_data_t var_hash;

if (SUCCESS != zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "rl", 
&shm_id, &shm_key)) {
-   RETURN_FALSE;
+   return;
}
SHM_FETCH_RESOURCE(shm_list_ptr, shm_id);
 
@@ -318,7 +318,7 @@
sysvshm_shm *shm_list_ptr;

if (SUCCESS != zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "rl", 
&shm_id, &shm_key)) {
-   RETURN_FALSE;
+   return;
}
SHM_FETCH_RESOURCE(shm_list_ptr, shm_id);
RETURN_BOOL(php_check_shm_data(shm_list_ptr->ptr, shm_key) >= 0);
@@ -334,7 +334,7 @@
sysvshm_shm *shm_list_ptr;

if (SUCCESS != zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "rl", 
&shm_id, &shm_key)) {
-   RETURN_FALSE;
+   return;
}
SHM_FETCH_RESOURCE(shm_list_ptr, shm_id);
 
http://cvs.php.net/viewvc.cgi/php-src/ext/sysvshm/tests/002.phpt?r1=1.3&r2=1.4&diff_format=u
Index: php-src/ext/sysvshm/tests/002.phpt
diff -u php-src/ext/sysvshm/tests/002.phpt:1.3 
php-src/ext/sysvshm/tests/002.phpt:1.4
--- php-src/ext/sysvshm/tests/002.phpt:1.3  Wed Jul 18 13:51:50 2007
+++ php-src/ext/sysvshm/tests/002.phpt  Wed Dec 24 00:04:40 2008
@@ -34,10 +34,10 @@
 ?>
 --EXPECTF--
 Warning: shm_attach() expects at least 1 parameter, 0 given in %s on line %d
-bool(false)
+NULL
 
 Warning: shm_attach() expects at most 3 parameters, 4 given in %s on line %d
-bool(false)
+NULL
 
 Warning: shm_attach(): Segment size must be greater then zero. in %s on line %d
 bool(false)
http://cvs.php.net/viewvc.cgi/php-src/ext/sysvshm/tests/003.phpt?r1=1.3&r2=1.4&diff_format=u
Index: php-src/ext/sysvshm/tests/003.phpt
diff -u php-src/ext/sysvshm/tests/003.phpt:1.3 
php-src/ext/sysvshm/tests/003.phpt:1.4
--- php-src/ext/sysvshm/tests/003.phpt:1.3  Mon Jun 25 17:37:48 2007
+++ php-src/ext/sysvshm/tests/003.phpt  Wed Dec 24 00:04:40 2008
@@ -32,10 +32,10 @@
 ?>
 --EXPECTF--
 Warning: shm_detach() expects exactly 1 parameter, 0 given in %s003.php on 
line %d
-bool(false)
+NULL
 
 Warning: shm_detach() expects exactly 1 parameter, 2 given in %s003.php on 
line %d
-bool(false)
+NULL
 bool(true)
 
 Warning: shm_detach(): %d is not a valid sysvshm resource in %s003.php on line 
%d
@@ -44,11 +44,11 @@
 Warning: shm_remove(): %d is not a valid sysvshm resource in %s003.php on line 
%d
 
 Warning: shm_detach() expects parameter 1 to be resource, integer given in 
%s003.php on line %d
-bool(false)
+NULL
 
 Warning: shm_detach() expects parameter 1 to be resource, integer given in 
%s003.php on line %d
-bool(false)
+NULL
 
 Warning: shm_detach() expects parameter 1 to be resource, integer given in 
%s003.php on line %d
-bool(false)
+NULL
 Done
http://cvs.php.net/viewvc.cgi/php-src/ext/sysvshm/tests/004.phpt?r1=1.2&r2=1.3&diff_format=u
Index: php-src/ext/sysvshm/tests/

[PHP-CVS] cvs: php-src /ext/sysvshm sysvshm.c

2008-07-01 Thread Felipe Pena
felipe  Tue Jul  1 15:50:09 2008 UTC

  Modified files:  
/php-src/ext/sysvshmsysvshm.c 
  Log:
  - MFB: Added arginfo
  
  
http://cvs.php.net/viewvc.cgi/php-src/ext/sysvshm/sysvshm.c?r1=1.79&r2=1.80&diff_format=u
Index: php-src/ext/sysvshm/sysvshm.c
diff -u php-src/ext/sysvshm/sysvshm.c:1.79 php-src/ext/sysvshm/sysvshm.c:1.80
--- php-src/ext/sysvshm/sysvshm.c:1.79  Mon Dec 31 07:12:17 2007
+++ php-src/ext/sysvshm/sysvshm.c   Tue Jul  1 15:50:09 2008
@@ -16,7 +16,7 @@
+--+
  */
  
-/* $Id: sysvshm.c,v 1.79 2007/12/31 07:12:17 sebastian Exp $ */
+/* $Id: sysvshm.c,v 1.80 2008/07/01 15:50:09 felipe Exp $ */
 
 /* This has been built and tested on Linux 2.2.14 
  *
@@ -39,16 +39,60 @@
 #include "ext/standard/php_smart_str.h"
 #include "php_ini.h"
 
+/* {{{ arginfo */
+static
+ZEND_BEGIN_ARG_INFO_EX(arginfo_shm_attach, 0, 0, 1)
+   ZEND_ARG_INFO(0, key)
+   ZEND_ARG_INFO(0, memsize)
+   ZEND_ARG_INFO(0, perm)
+ZEND_END_ARG_INFO()
+
+static
+ZEND_BEGIN_ARG_INFO_EX(arginfo_shm_detach, 0, 0, 1)
+   ZEND_ARG_INFO(0, shm_identifier)
+ZEND_END_ARG_INFO()
+
+static
+ZEND_BEGIN_ARG_INFO_EX(arginfo_shm_remove, 0, 0, 1)
+   ZEND_ARG_INFO(0, shm_identifier)
+ZEND_END_ARG_INFO()
+
+static
+ZEND_BEGIN_ARG_INFO_EX(arginfo_shm_put_var, 0, 0, 3)
+   ZEND_ARG_INFO(0, shm_identifier)
+   ZEND_ARG_INFO(0, variable_key)
+   ZEND_ARG_INFO(0, variable)
+ZEND_END_ARG_INFO()
+
+static
+ZEND_BEGIN_ARG_INFO_EX(arginfo_shm_get_var, 0, 0, 2)
+   ZEND_ARG_INFO(0, id)
+   ZEND_ARG_INFO(0, variable_key)
+ZEND_END_ARG_INFO()
+
+static
+ZEND_BEGIN_ARG_INFO_EX(arginfo_shm_has_var, 0, 0, 2)
+   ZEND_ARG_INFO(0, id)
+   ZEND_ARG_INFO(0, variable_key)
+ZEND_END_ARG_INFO()
+
+static
+ZEND_BEGIN_ARG_INFO_EX(arginfo_shm_remove_var, 0, 0, 2)
+   ZEND_ARG_INFO(0, id)
+   ZEND_ARG_INFO(0, variable_key)
+ZEND_END_ARG_INFO()
+/* }}} */
+
 /* {{{ sysvshm_functions[]
  */
 const zend_function_entry sysvshm_functions[] = {
-   PHP_FE(shm_attach, NULL)
-   PHP_FE(shm_remove, NULL)
-   PHP_FE(shm_detach, NULL)
-   PHP_FE(shm_put_var, NULL)
-   PHP_FE(shm_has_var, NULL)
-   PHP_FE(shm_get_var, NULL)
-   PHP_FE(shm_remove_var, NULL)
+   PHP_FE(shm_attach,  arginfo_shm_attach)
+   PHP_FE(shm_remove,  arginfo_shm_detach)
+   PHP_FE(shm_detach,  arginfo_shm_remove)
+   PHP_FE(shm_put_var, arginfo_shm_put_var)
+   PHP_FE(shm_has_var, arginfo_shm_has_var)
+   PHP_FE(shm_get_var, arginfo_shm_get_var)
+   PHP_FE(shm_remove_var,  arginfo_shm_remove_var)
{NULL, NULL, NULL}  
 };
 /* }}} */



-- 
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



[PHP-CVS] cvs: php-src /ext/sysvshm sysvshm.c

2006-06-29 Thread Antony Dovgal
tony2001Thu Jun 29 09:03:00 2006 UTC

  Modified files:  
/php-src/ext/sysvshmsysvshm.c 
  Log:
  make sure we won't get into endless loop if value shm_var->next is corrupted
  
  
http://cvs.php.net/viewvc.cgi/php-src/ext/sysvshm/sysvshm.c?r1=1.72&r2=1.73&diff_format=u
Index: php-src/ext/sysvshm/sysvshm.c
diff -u php-src/ext/sysvshm/sysvshm.c:1.72 php-src/ext/sysvshm/sysvshm.c:1.73
--- php-src/ext/sysvshm/sysvshm.c:1.72  Sun Jan  1 13:09:56 2006
+++ php-src/ext/sysvshm/sysvshm.c   Thu Jun 29 09:03:00 2006
@@ -16,7 +16,7 @@
+--+
  */
  
-/* $Id: sysvshm.c,v 1.72 2006/01/01 13:09:56 sniper Exp $ */
+/* $Id: sysvshm.c,v 1.73 2006/06/29 09:03:00 tony2001 Exp $ */
 
 /* This has been built and tested on Linux 2.2.14 
  *
@@ -408,6 +408,10 @@
return pos;
}   
pos += shm_var->next;
+
+   if (shm_var->next <= 0 || pos < ptr->start) {
+   return -1;
+   }
}
return -1;
 }

-- 
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



[PHP-CVS] cvs: php-src /ext/sysvshm sysvshm.c

2005-01-20 Thread Antony Dovgal
tony2001Thu Jan 20 04:59:23 2005 EDT

  Modified files:  
/php-src/ext/sysvshmsysvshm.c 
  Log:
  fix typos in error messages
  
  
http://cvs.php.net/diff.php/php-src/ext/sysvshm/sysvshm.c?r1=1.68&r2=1.69&ty=u
Index: php-src/ext/sysvshm/sysvshm.c
diff -u php-src/ext/sysvshm/sysvshm.c:1.68 php-src/ext/sysvshm/sysvshm.c:1.69
--- php-src/ext/sysvshm/sysvshm.c:1.68  Mon Nov 22 18:29:59 2004
+++ php-src/ext/sysvshm/sysvshm.c   Thu Jan 20 04:59:23 2005
@@ -16,7 +16,7 @@
+--+
  */
  
-/* $Id: sysvshm.c,v 1.68 2004/11/22 23:29:59 iliaa Exp $ */
+/* $Id: sysvshm.c,v 1.69 2005/01/20 09:59:23 tony2001 Exp $ */
 
 /* This has been built and tested on Linux 2.2.14 
  *
@@ -189,7 +189,7 @@
convert_to_long_ex(arg_id);
shm_list_ptr = (sysvshm_shm *) zend_list_find(Z_LVAL_PP(arg_id), &type);
if (!shm_list_ptr || type != php_sysvshm.le_shm) {
-   php_error_docref(NULL TSRMLS_CC, E_WARNING, "The parameter is 
not a valid shm_indentifier");
+   php_error_docref(NULL TSRMLS_CC, E_WARNING, "The parameter is 
not a valid shm_identifier");
RETURN_FALSE;
}
 
@@ -217,7 +217,7 @@
shm_list_ptr = (sysvshm_shm *) zend_list_find(id, &type);
 
if (!shm_list_ptr) {
-   php_error_docref(NULL TSRMLS_CC, E_WARNING, "The parameter is 
not a valid shm_indentifier");
+   php_error_docref(NULL TSRMLS_CC, E_WARNING, "The parameter is 
not a valid shm_identifier");
RETURN_FALSE;
}
 
@@ -318,7 +318,7 @@
PHP_VAR_UNSERIALIZE_INIT(var_hash);
if (php_var_unserialize(&return_value, (const unsigned char **) 
&shm_data, shm_data + shm_var->length, &var_hash TSRMLS_CC) != 1) {
PHP_VAR_UNSERIALIZE_DESTROY(var_hash);
-   php_error_docref(NULL TSRMLS_CC, E_WARNING, "variable data in 
shared memory is corruped");
+   php_error_docref(NULL TSRMLS_CC, E_WARNING, "variable data in 
shared memory is corrupted");
RETURN_FALSE;
}
PHP_VAR_UNSERIALIZE_DESTROY(var_hash);

-- 
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



[PHP-CVS] cvs: php-src /ext/sysvshm sysvshm.c

2004-11-22 Thread Ilia Alshanetsky
iliaa   Mon Nov 22 18:29:59 2004 EDT

  Modified files:  
/php-src/ext/sysvshmsysvshm.c 
  Log:
  Fixed compile warning.
  
  
http://cvs.php.net/diff.php/php-src/ext/sysvshm/sysvshm.c?r1=1.67&r2=1.68&ty=u
Index: php-src/ext/sysvshm/sysvshm.c
diff -u php-src/ext/sysvshm/sysvshm.c:1.67 php-src/ext/sysvshm/sysvshm.c:1.68
--- php-src/ext/sysvshm/sysvshm.c:1.67  Tue Apr 20 20:11:28 2004
+++ php-src/ext/sysvshm/sysvshm.c   Mon Nov 22 18:29:59 2004
@@ -16,7 +16,7 @@
+--+
  */
  
-/* $Id: sysvshm.c,v 1.67 2004/04/21 00:11:28 iliaa Exp $ */
+/* $Id: sysvshm.c,v 1.68 2004/11/22 23:29:59 iliaa Exp $ */
 
 /* This has been built and tested on Linux 2.2.14 
  *
@@ -316,7 +316,7 @@
shm_data = &shm_var->mem;

PHP_VAR_UNSERIALIZE_INIT(var_hash);
-   if (php_var_unserialize(&return_value, (const char **) &shm_data, 
shm_data + shm_var->length, &var_hash TSRMLS_CC) != 1) {
+   if (php_var_unserialize(&return_value, (const unsigned char **) 
&shm_data, shm_data + shm_var->length, &var_hash TSRMLS_CC) != 1) {
PHP_VAR_UNSERIALIZE_DESTROY(var_hash);
php_error_docref(NULL TSRMLS_CC, E_WARNING, "variable data in 
shared memory is corruped");
RETURN_FALSE;

-- 
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



[PHP-CVS] cvs: php-src /ext/sysvshm sysvshm.c

2004-04-20 Thread Ilia Alshanetsky
iliaa   Tue Apr 20 20:11:28 2004 EDT

  Modified files:  
/php-src/ext/sysvshmsysvshm.c 
  Log:
  Fixed possible memory leaks.
  Prevent shm_attach() from destroying non-shm resources.
  
  
http://cvs.php.net/diff.php/php-src/ext/sysvshm/sysvshm.c?r1=1.66&r2=1.67&ty=u
Index: php-src/ext/sysvshm/sysvshm.c
diff -u php-src/ext/sysvshm/sysvshm.c:1.66 php-src/ext/sysvshm/sysvshm.c:1.67
--- php-src/ext/sysvshm/sysvshm.c:1.66  Thu Jan  8 03:17:40 2004
+++ php-src/ext/sysvshm/sysvshm.c   Tue Apr 20 20:11:28 2004
@@ -16,7 +16,7 @@
+--+
  */
  
-/* $Id: sysvshm.c,v 1.66 2004/01/08 08:17:40 andi Exp $ */
+/* $Id: sysvshm.c,v 1.67 2004/04/21 00:11:28 iliaa Exp $ */
 
 /* This has been built and tested on Linux 2.2.14 
  *
@@ -134,25 +134,25 @@
shm_key = Z_LVAL_PP(arg_key);
}
 
-   if ((shm_list_ptr = (sysvshm_shm *) emalloc(sizeof(sysvshm_shm))) == NULL) {
-   php_error_docref(NULL TSRMLS_CC, E_WARNING, "failed for key 0x%x: 
cannot allocate internal listelement", shm_key);
-   RETURN_FALSE;
-   }
+   shm_list_ptr = (sysvshm_shm *) emalloc(sizeof(sysvshm_shm));
 
/* get the id from a specified key or create new shared memory */
if ((shm_id = shmget(shm_key, 0, 0)) < 0) {
if (shm_size < sizeof(sysvshm_chunk_head)) {
php_error_docref(NULL TSRMLS_CC, E_WARNING, "failed for key 
0x%x: memorysize too small", shm_key);
+   efree(shm_list_ptr);
RETURN_FALSE;
}
if ((shm_id = shmget(shm_key, shm_size, shm_flag | IPC_CREAT | 
IPC_EXCL)) < 0) {
php_error_docref(NULL TSRMLS_CC, E_WARNING, "failed for key 
0x%x: %s", shm_key, strerror(errno));
+   efree(shm_list_ptr);
RETURN_FALSE;
}
}
 
if ((shm_ptr = shmat(shm_id, NULL, 0)) == (void *) - 1) {
php_error_docref(NULL TSRMLS_CC, E_WARNING, "failed for key 0x%x: %s", 
shm_key, strerror(errno));
+   efree(shm_list_ptr);
RETURN_FALSE;
}
 
@@ -179,15 +179,22 @@
 PHP_FUNCTION(shm_detach)
 {
zval **arg_id;
-   long id;
+   int type;
+   sysvshm_shm *shm_list_ptr;
 
if (ZEND_NUM_ARGS() != 1 || zend_get_parameters_ex(1, &arg_id) == FAILURE) {
WRONG_PARAM_COUNT;
}
 
convert_to_long_ex(arg_id);
-   id = Z_LVAL_PP(arg_id);
-   zend_list_delete(id);
+   shm_list_ptr = (sysvshm_shm *) zend_list_find(Z_LVAL_PP(arg_id), &type);
+   if (!shm_list_ptr || type != php_sysvshm.le_shm) {
+   php_error_docref(NULL TSRMLS_CC, E_WARNING, "The parameter is not a 
valid shm_indentifier");
+   RETURN_FALSE;
+   }
+
+   zend_list_delete(Z_LVAL_PP(arg_id));
+
RETURN_TRUE;
 }
 /* }}} */

-- 
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php