Module: wine Branch: master Commit: b9d6ec3b875ff463ae09495ad64ffc11007fad03 URL: http://source.winehq.org/git/?p=wine.git;a=commit;h=b9d6ec3b875ff463ae09495a...
Author: Mike McCormack mike@codeweavers.com Date: Mon Aug 28 16:51:11 2006 +0900
msi: Fix MsiRecordGetString for a null buffer and non-zero buffer length.
---
dlls/msi/record.c | 8 ++++---- 1 files changed, 4 insertions(+), 4 deletions(-)
diff --git a/dlls/msi/record.c b/dlls/msi/record.c index 159fc0b..6c9a567 100644 --- a/dlls/msi/record.c +++ b/dlls/msi/record.c @@ -307,7 +307,7 @@ UINT MSI_RecordGetStringA(MSIRECORD *rec NULL, 0 , NULL, NULL); WideCharToMultiByte( CP_ACP, 0, rec->fields[iField].u.szwVal, -1, szValue, *pcchValue, NULL, NULL); - if( *pcchValue && len>*pcchValue ) + if( szValue && *pcchValue && len>*pcchValue ) szValue[*pcchValue-1] = 0; if( len ) len--; @@ -321,7 +321,7 @@ UINT MSI_RecordGetStringA(MSIRECORD *rec break; }
- if( *pcchValue <= len ) + if( szValue && *pcchValue <= len ) ret = ERROR_MORE_DATA; *pcchValue = len;
@@ -383,13 +383,13 @@ UINT MSI_RecordGetStringW(MSIRECORD *rec break; case MSIFIELD_NULL: len = 1; - if( *pcchValue > 0 ) + if( szValue && *pcchValue > 0 ) szValue[0] = 0; default: break; }
- if( *pcchValue <= len ) + if( szValue && *pcchValue <= len ) ret = ERROR_MORE_DATA; *pcchValue = len;