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

People
Owner: Nobody in particular
Requestors: cbrown [...] akamai.com
Cc:
AdminCc:

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 [...] rt.cpan.org" <bug-IPC-SysV [...] rt.cpan.org>
From: "Brown, Chris" <cbrown [...] akamai.com>
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 Perl.org infrastructure.

Please report any issues with rt.cpan.org to rt-cpan-admin@bestpractical.com.