Skip Menu |

This queue is for tickets about the IPC-SysV CPAN distribution.

Report information
The Basics
Id: 129387
Status: new
Priority: 0/
Queue: IPC-SysV

Owner: Nobody in particular
Requestors: cbrown [...]

Bug Information
Severity: (no value)
Broken in: (no value)
Fixed in: (no value)

Subject: IPC::SysV memory operations limited to 31-bit offsets
Date: Wed, 1 May 2019 18:10:10 +0000
To: "bug-IPC-SysV [...]" <bug-IPC-SysV [...]>
From: "Brown, Chris" <cbrown [...]>
Download (untitled) / with headers
text/plain 827b
Looking at IPC::SysV 2.07, memread(). I'm running perl 5.18.2 on rh7 but it shouldn't matter. Offsets, (pos) are passed into the XS calls as "int". For example, a IPC::SharedMem::read(bignumber, littlenumber) boils down to void memread(addr, sv, pos, size) SV *addr SV *sv int pos int size ... Copy(caddr + pos, dst, size, char); ... This limits "bignumber" to a 2^31 offset from addr, the base of the shared memory segment. As you probably guessed I was working with a 2.5G shared memory segment and found that things break. memwrite() has the same issue. I would include a patch but since I have not done XS since about 1995, I would probably muck it up badly. I see a similar issue was resolved a decade ago with the creation of a large shared memory segment. Thanks for your attention.

This service is sponsored and maintained by Best Practical Solutions and runs on infrastructure.

Please report any issues with to