mirror of
https://gitlab.gnome.org/GNOME/glib.git
synced 2024-11-10 11:26:16 +01:00
Plug some huge mem leaks in converter-stream test
==8564== 24,000,000 bytes in 6 blocks are possibly lost in loss record 592 of 594 ==8564== at 0x4005BDC: malloc (vg_replace_malloc.c:195) ==8564== by 0x4057094: g_malloc (gmem.c:134) ==8564== by 0x804AA37: test_corruption (converter-stream.c:589) ==8564== by 0x804B05B: test_roundtrip (converter-stream.c:652) ==9459== 25,165,824 bytes in 6 blocks are possibly lost in loss record 593 of 594 ==9459== at 0x4005CD2: realloc (vg_replace_malloc.c:476) ==9459== by 0x40571A5: g_realloc (gmem.c:181) ==9459== by 0x41B08A3: array_resize (gmemoryoutputstream.c:501) ==9459== by 0x41B0A5D: g_memory_output_stream_write (gmemoryoutputstream.c:578) ==9459== by 0x41B57EF: g_output_stream_write (goutputstream.c:216) ==9459== by 0x41B591B: g_output_stream_write_all (goutputstream.c:268) ==9459== by 0x417D617: flush_buffer (gconverteroutputstream.c:359) ==9459== by 0x417D958: g_converter_output_stream_write (gconverteroutputstream.c:502) ==9459== by 0x41B5D7F: g_output_stream_real_splice (goutputstream.c:428) ==9459== by 0x41B5C6C: g_output_stream_splice (goutputstream.c:380) ==9459== by 0x804AB10: test_corruption (converter-stream.c:600) ==9785== 25,165,824 bytes in 6 blocks are possibly lost in loss record 592 of 592 ==9785== at 0x4005CD2: realloc (vg_replace_malloc.c:476) ==9785== by 0x40571A5: g_realloc (gmem.c:181) ==9785== by 0x41B08A3: array_resize (gmemoryoutputstream.c:501) ==9785== by 0x41B0A5D: g_memory_output_stream_write (gmemoryoutputstream.c:578) ==9785== by 0x41B5D7F: g_output_stream_real_splice (goutputstream.c:428) ==9785== by 0x41B5C6C: g_output_stream_splice (goutputstream.c:380) ==9785== by 0x804ADF1: test_corruption (converter-stream.c:622) ==9785== by 0x804B06C: test_roundtrip (converter-stream.c:652) Bug #628331.
This commit is contained in:
parent
24bee1a130
commit
94102a40f7
@ -592,7 +592,7 @@ test_corruption (GZlibCompressorFormat format, gint level)
|
||||
istream0 = g_memory_input_stream_new_from_data (data0,
|
||||
DATA_LENGTH * sizeof (guint32), NULL);
|
||||
|
||||
ostream1 = g_memory_output_stream_new (NULL, 0, g_realloc, NULL);
|
||||
ostream1 = g_memory_output_stream_new (NULL, 0, g_realloc, g_free);
|
||||
compressor = G_CONVERTER (g_zlib_compressor_new (format, level));
|
||||
costream1 = g_converter_output_stream_new (ostream1, compressor);
|
||||
g_assert (g_converter_output_stream_get_converter (G_CONVERTER_OUTPUT_STREAM (costream1)) == compressor);
|
||||
@ -607,17 +607,17 @@ test_corruption (GZlibCompressorFormat format, gint level)
|
||||
g_assert_cmpint (fmt, ==, format);
|
||||
g_assert_cmpint (lvl, ==, level);
|
||||
g_object_unref (compressor);
|
||||
data1 = g_memory_output_stream_get_data (G_MEMORY_OUTPUT_STREAM (ostream1));
|
||||
data1 = g_memory_output_stream_steal_data (G_MEMORY_OUTPUT_STREAM (ostream1));
|
||||
data1_size = g_memory_output_stream_get_data_size (
|
||||
G_MEMORY_OUTPUT_STREAM (ostream1));
|
||||
g_object_unref (ostream1);
|
||||
g_object_unref (istream0);
|
||||
|
||||
istream1 = g_memory_input_stream_new_from_data (data1, data1_size, NULL);
|
||||
istream1 = g_memory_input_stream_new_from_data (data1, data1_size, g_free);
|
||||
decompressor = G_CONVERTER (g_zlib_decompressor_new (format));
|
||||
cistream1 = g_converter_input_stream_new (istream1, decompressor);
|
||||
|
||||
ostream2 = g_memory_output_stream_new (NULL, 0, g_realloc, NULL);
|
||||
ostream2 = g_memory_output_stream_new (NULL, 0, g_realloc, g_free);
|
||||
|
||||
g_output_stream_splice (ostream2, cistream1, 0, NULL, &error);
|
||||
g_assert_no_error (error);
|
||||
@ -633,6 +633,7 @@ test_corruption (GZlibCompressorFormat format, gint level)
|
||||
g_object_unref (decompressor);
|
||||
g_object_unref (cistream1);
|
||||
g_object_unref (ostream2);
|
||||
g_free (data0);
|
||||
}
|
||||
|
||||
typedef struct {
|
||||
|
Loading…
Reference in New Issue
Block a user