I've seen the following error on Linnux online with several old altcoins now, the one below is UFO coin. It will sync exactly 500 blocks and then throw the following error, if I restart the client the error on that block does not reappear and it downloads a further 500 blocks and throws the exact same error.
I'v added a few extra lines to get some additional debugging info. Before I spent time crawling through code I was hoping that someone else may have come across this same error and found the reason. UFO is several years old and current Windows clients are running OpenSSL 1.0.1h, services running were probably compiled around the time of that SSL release. The server with this issue is running OpenSSL 1.0.2g.
CheckProofOfWork() bnTarget.getuint256=000000050e650000000000000000000000000000000000000000000000000000 SetBestChain: new best=f7c2f4f28e66399bc17e0e35498300c20bf384d210ce8c5d640b70d9a3dfe372 height=17000 work=68218691770398 date=01/23/14 03:00:50 tx=2 ProcessBlock: ACCEPTED received block 93f88d57ab19ae388e22 CheckProofOfWork() hash=bf82aa6e76ec014faf5bc9c347eb5ba8242545acdf09259ac753b8d264aec0f0 CheckProofOfWork() nBits=486629382 CheckProofOfWork() bnTarget.getuint256=0000000160060000000000000000000000000000000000000000000000000000 ERROR: CheckProofOfWork() : hash doesn't match nBits ERROR: CheckBlock() : proof of work failed ERROR: ProcessBlock() : CheckBlock FAILED
Edit: Compiled it with OpenSSL 1.0.1u and have the error.