mirror of
https://github.com/reactos/reactos.git
synced 2024-06-30 09:50:07 +00:00
[WBEMPROX] Always free 'new_path' (#2056)
Cherry-pick
a45dfea99a
CORE-13391
This commit is contained in:
parent
af7ec17ce1
commit
63cf8625a0
|
@ -2408,7 +2408,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)
|
||||||
{
|
{
|
||||||
|
@ -2421,6 +2427,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 );
|
||||||
|
@ -2532,7 +2539,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 );
|
||||||
|
@ -2543,6 +2556,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…
Reference in a new issue