Fix bug in GetBlockValue() that can cause bogus random seeds

I ran into this while compiling for Mac. It doesn't seem to happen in the Linux or Windows builds.

The problem is that substr() returns a temporary, and sometimes the temporary can be deleted before cstr() is finished with it. Then cseed is corrupted and you get a bogus seed and block value, and the client rejects the block, leading to all kinds of synching problems.