Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
W
wine-winehq
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Registry
Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
wine
wine-winehq
Commits
1cb43677
Commit
1cb43677
authored
Oct 01, 2018
by
Hans Leidekker
Committed by
Alexandre Julliard
Oct 01, 2018
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
msi: Fix a couple of memory leaks (Valgrind).
Signed-off-by:
Hans Leidekker
<
hans@codeweavers.com
>
Signed-off-by:
Alexandre Julliard
<
julliard@winehq.org
>
parent
5277aa8f
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
9 additions
and
4 deletions
+9
-4
install.c
dlls/msi/install.c
+4
-3
package.c
dlls/msi/package.c
+4
-0
streams.c
dlls/msi/streams.c
+1
-1
No files found.
dlls/msi/install.c
View file @
1cb43677
...
@@ -411,8 +411,7 @@ WCHAR *msi_resolve_source_folder( MSIPACKAGE *package, const WCHAR *name, MSIFOL
...
@@ -411,8 +411,7 @@ WCHAR *msi_resolve_source_folder( MSIPACKAGE *package, const WCHAR *name, MSIFOL
UINT
WINAPI
MsiGetSourcePathA
(
MSIHANDLE
hinst
,
const
char
*
folder
,
char
*
buf
,
DWORD
*
sz
)
UINT
WINAPI
MsiGetSourcePathA
(
MSIHANDLE
hinst
,
const
char
*
folder
,
char
*
buf
,
DWORD
*
sz
)
{
{
MSIPACKAGE
*
package
;
MSIPACKAGE
*
package
;
const
WCHAR
*
path
;
WCHAR
*
path
,
*
folderW
;
WCHAR
*
folderW
;
UINT
r
;
UINT
r
;
TRACE
(
"%s %p %p
\n
"
,
debugstr_a
(
folder
),
buf
,
sz
);
TRACE
(
"%s %p %p
\n
"
,
debugstr_a
(
folder
),
buf
,
sz
);
...
@@ -459,6 +458,7 @@ UINT WINAPI MsiGetSourcePathA(MSIHANDLE hinst, const char *folder, char *buf, DW
...
@@ -459,6 +458,7 @@ UINT WINAPI MsiGetSourcePathA(MSIHANDLE hinst, const char *folder, char *buf, DW
else
else
r
=
ERROR_DIRECTORY
;
r
=
ERROR_DIRECTORY
;
heap_free
(
path
);
heap_free
(
folderW
);
heap_free
(
folderW
);
msiobj_release
(
&
package
->
hdr
);
msiobj_release
(
&
package
->
hdr
);
return
r
;
return
r
;
...
@@ -470,7 +470,7 @@ UINT WINAPI MsiGetSourcePathA(MSIHANDLE hinst, const char *folder, char *buf, DW
...
@@ -470,7 +470,7 @@ UINT WINAPI MsiGetSourcePathA(MSIHANDLE hinst, const char *folder, char *buf, DW
UINT
WINAPI
MsiGetSourcePathW
(
MSIHANDLE
hinst
,
const
WCHAR
*
folder
,
WCHAR
*
buf
,
DWORD
*
sz
)
UINT
WINAPI
MsiGetSourcePathW
(
MSIHANDLE
hinst
,
const
WCHAR
*
folder
,
WCHAR
*
buf
,
DWORD
*
sz
)
{
{
MSIPACKAGE
*
package
;
MSIPACKAGE
*
package
;
const
WCHAR
*
path
;
WCHAR
*
path
;
UINT
r
;
UINT
r
;
TRACE
(
"%s %p %p
\n
"
,
debugstr_w
(
folder
),
buf
,
sz
);
TRACE
(
"%s %p %p
\n
"
,
debugstr_w
(
folder
),
buf
,
sz
);
...
@@ -510,6 +510,7 @@ UINT WINAPI MsiGetSourcePathW(MSIHANDLE hinst, const WCHAR *folder, WCHAR *buf,
...
@@ -510,6 +510,7 @@ UINT WINAPI MsiGetSourcePathW(MSIHANDLE hinst, const WCHAR *folder, WCHAR *buf,
else
else
r
=
ERROR_DIRECTORY
;
r
=
ERROR_DIRECTORY
;
heap_free
(
path
);
msiobj_release
(
&
package
->
hdr
);
msiobj_release
(
&
package
->
hdr
);
return
r
;
return
r
;
}
}
...
...
dlls/msi/package.c
View file @
1cb43677
...
@@ -2125,6 +2125,7 @@ INT WINAPI MsiProcessMessage( MSIHANDLE hInstall, INSTALLMESSAGE eMessageType,
...
@@ -2125,6 +2125,7 @@ INT WINAPI MsiProcessMessage( MSIHANDLE hInstall, INSTALLMESSAGE eMessageType,
ret
=
MSI_ProcessMessage
(
package
,
eMessageType
,
record
);
ret
=
MSI_ProcessMessage
(
package
,
eMessageType
,
record
);
msiobj_release
(
&
record
->
hdr
);
msiobj_release
(
&
package
->
hdr
);
msiobj_release
(
&
package
->
hdr
);
return
ret
;
return
ret
;
}
}
...
@@ -2689,7 +2690,10 @@ UINT __cdecl s_remote_FormatRecord(MSIHANDLE hinst, struct wire_record *remote_r
...
@@ -2689,7 +2690,10 @@ UINT __cdecl s_remote_FormatRecord(MSIHANDLE hinst, struct wire_record *remote_r
{
{
*
value
=
midl_user_allocate
(
++
size
*
sizeof
(
WCHAR
));
*
value
=
midl_user_allocate
(
++
size
*
sizeof
(
WCHAR
));
if
(
!*
value
)
if
(
!*
value
)
{
MsiCloseHandle
(
rec
);
return
ERROR_OUTOFMEMORY
;
return
ERROR_OUTOFMEMORY
;
}
r
=
MsiFormatRecordW
(
hinst
,
rec
,
*
value
,
&
size
);
r
=
MsiFormatRecordW
(
hinst
,
rec
,
*
value
,
&
size
);
}
}
...
...
dlls/msi/streams.c
View file @
1cb43677
...
@@ -141,9 +141,9 @@ static UINT STREAMS_set_row(struct tagMSIVIEW *view, UINT row, MSIRECORD *rec, U
...
@@ -141,9 +141,9 @@ static UINT STREAMS_set_row(struct tagMSIVIEW *view, UINT row, MSIRECORD *rec, U
old
=
sv
->
db
->
streams
[
row
].
stream
;
old
=
sv
->
db
->
streams
[
row
].
stream
;
hr
=
IStream_QueryInterface
(
new
,
&
IID_IStream
,
(
void
**
)
&
sv
->
db
->
streams
[
row
].
stream
);
hr
=
IStream_QueryInterface
(
new
,
&
IID_IStream
,
(
void
**
)
&
sv
->
db
->
streams
[
row
].
stream
);
IStream_Release
(
new
);
if
(
FAILED
(
hr
))
if
(
FAILED
(
hr
))
{
{
IStream_Release
(
new
);
return
ERROR_FUNCTION_FAILED
;
return
ERROR_FUNCTION_FAILED
;
}
}
if
(
old
)
IStream_Release
(
old
);
if
(
old
)
IStream_Release
(
old
);
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment