From your backtrace, it is possible that you have a stack corruption that rewrites your return address (mainly because only two calls are available and no information about the memcpy code call). Is it possible that you are memcpyusing the address on the stack?
One way to check for this kind of failure is to use the watchgdb command :
- - , . memcpy .
- , .
- .
- :
watch 0xXXXXXX - , .
, db .