[Rd] longint

Brian Ripley
Wed, 15 Aug 2018 14:05:29 -0000

> On 15 Aug 2018, at 12:48, Duncan Murdoch <murdoch.duncan at
gmail.com> wrote:
>
>> On 15/08/2018 7:08 AM, Benjamin Tyner wrote:
>> Hi
>> In my R package, imagine I have a C function defined:
>>     void myfunc(int *x) {
>>        // some code
>>     }
>> but when I call it, I pass it a pointer to a longint instead of a
>> pointer to an int. Could this practice potentially result in a
segfault?
>
> I don't think the passing would cause a segfault, but "some
code" might be expecting a positive number, and due to the type error you
could pass in a positive longint and have it interpreted as a negative int.

Are you thinking only of a little-endian system?  A 32-bit lookup of a pointer
to a 64-bit area could read the wrong half and get a completely different value.

>
> Duncan Murdoch
>
> ______________________________________________
> R-devel at r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-devel