Hi folks,

I've been cleaning up the code in the ToolTalk ISAM library
(cde/lib/tt/mini_isam), and writing some tests around it. However, I've
run into a nasty 64 bit pointer issue on LP64 systems that I'm unsure
how to fix.

The source file cde/lib/tt/mini_isam/iscntl.c defines an iscntl
function that looks like it was modelled on ioctl(2). It acts as a front
end to a number of other ISAM functions, and is exposed as an RPC
function elsewhere in the ToolTalk code. The problem is that it's
declared to return an int (4 bytes), but in one case it is returning a
pointer to a function (8 bytes) that will be truncated:

     case ISCNTL_FATAL:
         ret =  (int)_isfatal_error_set_func(va_arg(pvar,  intfunc));
         break;

This call is supposed to return the address of the old error callback
function.

Any suggestions as to how this could be fixed?

Cheers,

Chris

------------------------------------------------------------------------------
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and 
threat landscape has changed and how IT managers can respond. Discussions 
will include endpoint security, mobile security and the latest in malware 
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
_______________________________________________
cdesktopenv-devel mailing list
cdesktopenv-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/cdesktopenv-devel

Reply via email to