Buffer Overflow Causes. ©2002, Jedidiah R. Crandall, Susan L. Gerhart, Jan G. Hogle.  http://sfsecurity.pr.erau.edu
Old code used for new purposes - Consequences.
“HELLO” in ASCII is 0x48-0x45-0x4C-0x4C-0x4F
“HELLO” in UNICODE (supports international character sets) is 0x00-0x48- 0x00-0x45-0x00-0x4C-0x00-0x4C-0x00-0x4F

The old code might tell the new code to give it no more than 5 characters because it uses a 5-byte buffer.  The new code gives it 5 characters, but in UNICODE instead of ASCII, so they fill 10 bytes. (The assumption that 5 characters = 5 bytes is a dangerous one.)
This is more common and more easily exploitable than you might think.  The Venetian exploit can hijack a program with a reasonably sized buffer overflow even if UNICODE format forces the attacker to have half of his attack code bytes be zeros.