Branko Čibej <br...@xbc.nu> writes: > On 06.12.2010 08:48, Takács András wrote: >>> Here you are printing 64-bits, so some part of your system thinks that >>> apr_off_t is 64-bits. How are apr_off_t and APR_HAS_LARGE_FILES defined >>> in apr.h? >> #define APR_HAS_LARGE_FILES 0 >> typedef off_t apr_off_t; >> >> I think this is OK, isn't it? > > That depends on how off_t is defined ... but I expect it should be OK. I > suggest you find the definition of APR_OFF_T_FMT, could be that that one > is wrong, expectint 64- instead of 32-bit values.
Ah, yes. If off_t really is 32-bits but APR_OFF_T_FMT is 64-bits then every write would write an extra 32-bits, thus storing the wrong value, and every read would modify an extra 32-bits of memory, leading to corruption. -- Philip