|  support |  documentation |  report a bug |  advanced search |  search howto |  statistics |  random bug |  login
Request #14208 shm_put_var problem and new shm functions
Submitted: 2001-11-24 08:57 UTC Modified: 2010-12-01 16:09 UTC
Avg. Score:2.9 ± 1.4
Reproduced:10 of 15 (66.7%)
Same Version:6 (60.0%)
Same OS:8 (80.0%)
From: duncan at emarketeers dot com Assigned:
Status: Analyzed Package: Semaphore related
PHP Version: 4.0.6 OS: All
Private report: No CVE-ID: None
Have you experienced this issue?
Rate the importance of this bug to you:

 [2001-11-24 08:57 UTC] duncan at emarketeers dot com
Apologies for posting this here, but I don't know where else to go.

shm_put_var has a problem in that when you try to write a variable which already exists, the function will fail if there is not enough free space for the variable and its old value. I have a patch which will simply overwrite the old value if the lengths are the same, and will do more intelligent space checking if they are not. I will submit this when I get back to the office.

I also have developed a set of additional shm functions which implement an LRU cache. These functions are handy for eg caching serialized objects which would otherwise have to be fetched from a database. And of course they are shared across the system.

My question is: how do I submit these new functions for inclusion in the source?


mulOMpUR (last revision 2020-08-28 15:34 UTC by sample at email dot tst)

Add a Patch

Pull Requests

Add a Pull Request


AllCommentsChangesGit/SVN commitsRelated reports
 [2003-01-18 12:53 UTC]
 Where is the patch?
 [2003-01-20 10:18 UTC]
The mail from Duncan :
It makes updates twice as fast.

My LRU code is knocking around somewhere, but I'll have to do some rummaging if you want it.

<               php_remove_shm_data(ptr, shm_varpos);
>               shm_var = (sysvshm_chunk*)((char*)ptr +  shm_varpos);
>               /* Check the new length against the old length */
>               if(shm_var->length != len ) {
>                       /* If not equal, remove the old entry and prepare to create a new one */
>                       php_remove_shm_data(ptr, shm_varpos);
>               } else {
>                       /* If equal, just copy the new data across and return */
>                       memcpy(&(shm_var->mem),data,len);
>                       return 0;
>               }
 [2003-01-20 11:49 UTC]
Please send further patches in unified format, it makes it much easier to read :)
 [2003-05-31 10:32 UTC]
Assigning to Wez since he implemented sysvmsg. Hopefully he will review the patch ;)
 [2010-12-01 16:09 UTC]
-Package: Feature/Change Request +Package: Semaphore related -Assigned To: wez +Assigned To:
 [2020-08-28 15:34 UTC] sample at email dot tst
The following patch has been added/updated:

Patch Name: mulOMpUR
Revision:   1598628864
PHP Copyright © 2001-2021 The PHP Group
All rights reserved.
Last updated: Thu Feb 25 03:01:24 2021 UTC