From 477bce38dc5b0efeb55b5cc407b3ff32eed19c3f Mon Sep 17 00:00:00 2001 From: Mike McCormack Date: Mon, 16 Jan 2006 20:38:28 +0100 Subject: [PATCH] msi: Eliminate a fixed length buffer. --- dlls/msi/action.c | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/dlls/msi/action.c b/dlls/msi/action.c index 6f4ce410c96..61dd099e2bb 100644 --- a/dlls/msi/action.c +++ b/dlls/msi/action.c @@ -2849,10 +2849,8 @@ static UINT ACTION_RegisterTypeLibraries(MSIPACKAGE *package) static UINT ITERATE_CreateShortcuts(MSIRECORD *row, LPVOID param) { MSIPACKAGE *package = (MSIPACKAGE*)param; - LPWSTR target_file, target_folder; + LPWSTR target_file, target_folder, filename; LPCWSTR buffer; - WCHAR filename[0x100]; - DWORD sz; MSICOMPONENT *comp; static const WCHAR szlnk[]={'.','l','n','k',0}; IShellLinkW *sl; @@ -2899,13 +2897,13 @@ static UINT ITERATE_CreateShortcuts(MSIRECORD *row, LPVOID param) /* may be needed because of a bug somehwere else */ create_full_pathW(target_folder); - sz = 0x100; - MSI_RecordGetStringW(row,3,filename,&sz); + filename = msi_dup_record_field( row, 3 ); reduce_to_longfilename(filename); if (!strchrW(filename,'.') || strcmpiW(strchrW(filename,'.'),szlnk)) strcatW(filename,szlnk); target_file = build_directory_name(2, target_folder, filename); msi_free(target_folder); + msi_free(filename); buffer = MSI_RecordGetString(row,5); if (strchrW(buffer,'['))