msi: Fix a crash when freeing memory.
diff --git a/dlls/msi/streams.c b/dlls/msi/streams.c
index 2d869cc..12f707e 100644
--- a/dlls/msi/streams.c
+++ b/dlls/msi/streams.c
@@ -60,7 +60,7 @@
if (size >= sv->max_streams)
{
sv->max_streams *= 2;
- sv->streams = msi_realloc(sv->streams, sv->max_streams * sizeof(STREAM *));
+ sv->streams = msi_realloc_zero(sv->streams, sv->max_streams * sizeof(STREAM *));
if (!sv->streams)
return FALSE;
}
@@ -387,7 +387,7 @@
for (i = 0; i < sv->num_rows; i++)
{
- if (sv->streams[i]->stream)
+ if (sv->streams[i] && sv->streams[i]->stream)
IStream_Release(sv->streams[i]->stream);
msi_free(sv->streams[i]);
}
@@ -462,7 +462,7 @@
return -1;
sv->max_streams = 1;
- sv->streams = msi_alloc(sizeof(STREAM *));
+ sv->streams = msi_alloc_zero(sizeof(STREAM *));
if (!sv->streams)
return -1;