Module: wine Branch: master Commit: c20902314b2d673a6f85fbcbd9b24a3ad264afbe URL: http://source.winehq.org/git/wine.git/?a=commit;h=c20902314b2d673a6f85fbcbd9... Author: James Hawkins <truiken(a)gmail.com> Date: Mon Dec 7 19:54:37 2009 -0800 msi: Make sure to free the extra row data when deleting a row. --- dlls/msi/table.c | 5 ++--- 1 files changed, 2 insertions(+), 3 deletions(-) diff --git a/dlls/msi/table.c b/dlls/msi/table.c index fa32a04..a0317da 100644 --- a/dlls/msi/table.c +++ b/dlls/msi/table.c @@ -1754,15 +1754,14 @@ static UINT TABLE_delete_row( struct tagMSIVIEW *view, UINT row ) tv->columns[i].hash_table = NULL; } - if ( row == num_rows - 1 ) - return ERROR_SUCCESS; - for (i = row + 1; i < num_rows; i++) { memcpy(tv->table->data[i - 1], tv->table->data[i], tv->row_size); tv->table->data_persistent[i - 1] = tv->table->data_persistent[i]; } + msi_free(tv->table->data[num_rows - 1]); + return ERROR_SUCCESS; }