taka-tuos / nanotodon

CLI mastodon client
MIT License
37 stars 6 forks source link

Plug more malloc() and strdup() leaks. #19

Closed tsutsui closed 4 years ago

tsutsui commented 4 years ago

17 以外にも free() が足りてないような気がしたので適当に足してみました。

変数のスコープをちゃんとわかっていないので場所がダメかも。

あと、これは別 issue で書くべきかもしれませんが streaming_recieved()

char **json_recieved = NULL;
int json_recieved_len = 0;

// ストリーミングで受信したJSON(接続維持用データを取り除き一体化したもの)
void streaming_recieved(void)
{
        json_recieved = realloc(json_recieved, (json_recieved_len + 1) * sizeof(
char *));
        json_recieved[json_recieved_len] = strdup(streaming_json);

にある json_recievedjson_recieved_len って使われているんでしょうか?

(あと、ますます関係ないですが recieved じゃなくて received ですね……)

taka-tuos commented 4 years ago

結構痛いメモリリークですね… 発見ありがとうございます

それとそのjson_recievedですが、届いたJSON全保存してるやつで、一時期json.logというファイルに全部投げ込んでた頃の名残です(明日消します