note 92772 added to function.shm-put-var

From: 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

« previous php.notes (#159211) next »