in gdal_wrap.cpp, both _wrap_Dataset_WriteRaster and _wrap_Band_WriteRaster contain code like this:
PyString?_AsStringAndSize(obj5, &arg7, ( Py_ssize_t*)&arg6 );
Where arg6 is an integer. On a 64 bit machine, int is 32 bits while a pointer is 64. So, this cast is not valid because they are different sizes. This may well work on a little endian machine, but on a big endian machine, the 'wrong' part of the pointer gets written to the int (which is zero) and the bindings fail to write anything.
A proposed workaround patch (against 1.4.2) is supplied.
This makes me wonder if using 'int' as a size is a good idea - what happens if I want to write a raster > 4GB?
Thanks,
Sam.