note 92772 added to function.shm-put-var
| From: | ant_mailyou_know_symbolinboxdotru at osu1 dot php dot net | Date: | Sat, 08 Aug 2009 12:39:35 +0000 |
| Subject: | note 92772 added to function.shm-put-var | ||
| Groups: | php.notes | ||
| Request: | Send a blank email to php-notes+get-159211@lists.php.net to get a copy of this message | ||
shm_put_var will remove specified var if there is not enough memory.
To prevent this use this patch:
--- ext/sysvshm/sysvshm.c.orig Sat Aug 8 13:22:18 2009
+++ ext/sysvshm/sysvshm.c Sat Aug 8 13:36:45 2009
@@ -371,13 +371,17 @@
* inserts an ascii-string into shared memory */
static int php_put_shm_data(sysvshm_chunk_head *ptr, long key, char *data, long len)
{
- sysvshm_chunk *shm_var;
+ sysvshm_chunk *shm_var, *chunk_ptr;
long total_size;
long shm_varpos;
total_size = ((long) (len + sizeof(sysvshm_chunk) - 1) / 4) * 4 + 4; /* 4-byte alligment */
if ((shm_varpos = php_check_shm_data(ptr, key)) > 0) {
+
+ /* remove current data only if we can allocate new data */
+ chunk_ptr = (sysvshm_chunk *) ((char *) ptr + shm_varpos);
+ if (chunk_ptr->length + ptr->free > total_size)
php_remove_shm_data(ptr, shm_varpos);
}
----
Server IP: 195.54.192.44
Probable Submitter: 81.222.160.62
----
Manual Page -- http://www.php.net/manual/en/function.shm-put-var.php
Edit -- https://master.php.net/note/edit/92772
Del: integrated -- https://master.php.net/note/delete/92772/integrated
Del: useless -- https://master.php.net/note/delete/92772/useless
Del: bad code -- https://master.php.net/note/delete/92772/bad+code
Del: spam -- https://master.php.net/note/delete/92772/spam
Del: non-english -- https://master.php.net/note/delete/92772/non-english
Del: in docs -- https://master.php.net/note/delete/92772/in+docs
Del: other reasons-- https://master.php.net/note/delete/92772
Reject -- https://master.php.net/note/reject/92772
Search -- https://master.php.net/manage/user-notes.php