gets(char *s, int size);
こうすればいいじゃん

それ以前の問題としてC言語は渡した配列のサイズを受け側で認識できないのが最大のセキュリティホール