wbemprox: Always free 'new_path'.
Signed-off-by: Serge Gautherie <winehq-git_serge_180711@gautherie.fr> Signed-off-by: Hans Leidekker <hans@codeweavers.com> Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
parent
769ba7d1e9
commit
a45dfea99a
@ -2341,7 +2341,13 @@ static enum fill_status fill_datafile( struct table *table, const struct expr *c
|
|||||||
goto done;
|
goto done;
|
||||||
}
|
}
|
||||||
if (!wcscmp( data.cFileName, dotW ) || !wcscmp( data.cFileName, dotdotW )) continue;
|
if (!wcscmp( data.cFileName, dotW ) || !wcscmp( data.cFileName, dotdotW )) continue;
|
||||||
new_path = append_path( path, data.cFileName, &len );
|
|
||||||
|
if (!(new_path = append_path( path, data.cFileName, &len )))
|
||||||
|
{
|
||||||
|
status = FILL_STATUS_FAILED;
|
||||||
|
FindClose( handle );
|
||||||
|
goto done;
|
||||||
|
}
|
||||||
|
|
||||||
if (data.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)
|
if (data.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)
|
||||||
{
|
{
|
||||||
@ -2354,6 +2360,7 @@ static enum fill_status fill_datafile( struct table *table, const struct expr *c
|
|||||||
rec = (struct record_datafile *)(table->data + offset);
|
rec = (struct record_datafile *)(table->data + offset);
|
||||||
rec->name = build_name( root[0], new_path );
|
rec->name = build_name( root[0], new_path );
|
||||||
rec->version = get_file_version( rec->name );
|
rec->version = get_file_version( rec->name );
|
||||||
|
heap_free( new_path );
|
||||||
if (!match_row( table, row, cond, &status ))
|
if (!match_row( table, row, cond, &status ))
|
||||||
{
|
{
|
||||||
free_row_values( table, row );
|
free_row_values( table, row );
|
||||||
@ -2465,7 +2472,13 @@ static enum fill_status fill_directory( struct table *table, const struct expr *
|
|||||||
!wcscmp( data.cFileName, dotW ) || !wcscmp( data.cFileName, dotdotW ))
|
!wcscmp( data.cFileName, dotW ) || !wcscmp( data.cFileName, dotdotW ))
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
new_path = append_path( path, data.cFileName, &len );
|
if (!(new_path = append_path( path, data.cFileName, &len )))
|
||||||
|
{
|
||||||
|
FindClose( handle );
|
||||||
|
status = FILL_STATUS_FAILED;
|
||||||
|
goto done;
|
||||||
|
}
|
||||||
|
|
||||||
if (!(push_dir( dirstack, new_path, len )))
|
if (!(push_dir( dirstack, new_path, len )))
|
||||||
{
|
{
|
||||||
heap_free( new_path );
|
heap_free( new_path );
|
||||||
@ -2476,6 +2489,7 @@ static enum fill_status fill_directory( struct table *table, const struct expr *
|
|||||||
rec = (struct record_directory *)(table->data + offset);
|
rec = (struct record_directory *)(table->data + offset);
|
||||||
rec->accessmask = FILE_ALL_ACCESS;
|
rec->accessmask = FILE_ALL_ACCESS;
|
||||||
rec->name = build_name( root[0], new_path );
|
rec->name = build_name( root[0], new_path );
|
||||||
|
heap_free( new_path );
|
||||||
if (!match_row( table, row, cond, &status ))
|
if (!match_row( table, row, cond, &status ))
|
||||||
{
|
{
|
||||||
free_row_values( table, row );
|
free_row_values( table, row );
|
||||||
|
Loading…
x
Reference in New Issue
Block a user