[PATCH] use a better size to lstrcpynW
Marcus Meissner
meissner at suse.de
Thu Dec 13 10:52:50 CST 2007
---
dlls/msi/dialog.c | 10 ++++++++--
1 files changed, 8 insertions(+), 2 deletions(-)
diff --git a/dlls/msi/dialog.c b/dlls/msi/dialog.c
index d0e91cd..b31e32a 100644
--- a/dlls/msi/dialog.c
+++ b/dlls/msi/dialog.c
@@ -2472,11 +2472,17 @@ static void msi_dialog_vcl_add_columns( msi_dialog *dialog, msi_control *control
while ((begin = strchrW( begin, '{' )) && count < 5)
{
+ DWORD xcnt;
+
if (!(end = strchrW( begin, '}' )))
return;
- lstrcpynW( num, begin + 1, end - begin );
- begin += end - begin + 1;
+
+ xcnt = end - begin;
+ if (xcnt > sizeof(num)/sizeof(WCHAR))
+ xcnt = sizeof(num)/sizeof(WCHAR);
+ lstrcpynW( num, begin + 1, xcnt );
+ begin += xcnt + 1;
/* empty braces or '0' hides the column */
if ( !num[0] || !lstrcmpW( num, zero ) )
--
1.5.2.4
More information about the wine-patches
mailing list