Takuro Ashie
ashie****@homa*****
2003年 10月 26日 (日) 22:29:02 JST
At Sun, 26 Oct 2003 20:13:54 +0900, Hiroyuki Ikezoe wrote: > やっと自分の環境でvalgrindを動かすことができたのでチェックしてみました。 > 結果、3箇所でエラーが出てました。 ご苦労さまです. > 1. > Invalid read of size 1 snip > 一応これで直るには直ったんですが、なんかいかん気がしてます。 > しっかり追えてません…。 kz_profile_enum_key()で取得したkeyをそのままkz_profile_delete_keyに渡 しているので,引数のkeyと,p->keyが同じメモリ領域を指しているため,一 度pを解放すると,keyも解放されてしまうようです. 万が一同一のkeyが複数あるとこの修正ではまずいので,最初にkeyの方をコピー して使うように修正してコミットしておきました. > これはこれで直ってると思います(コード的にはともかく)。 とりあえずこれで良いのではないかと思います. コード的には,そもそも元の私のコードがアレですね(わら > 3. > 40 bytes in 2 blocks are definitely lost in loss record 37 of 131 > at 0x4002AF09: calloc (in /usr/lib/valgrind/vgskin_memcheck.so) > by 0x407994E0: g_malloc0 (in /usr/lib/libglib-2.0.so.0.200.3) > by 0x8080ACB: kz_xml_node_new (kz-xml.c:340) > by 0x8080B32: kz_xml_node_new(kz-xml.c:356) kz_xml_node_unref()で,nodeそのものを解放していませんでした. 修正してコミットしておきました. 他のツールで確認すると,まだメモリリークがありそうなので,後でまた報告 します.