diff --git a/Source/exehead/exec.c b/Source/exehead/exec.c index 5dc763af..d2c4232f 100644 --- a/Source/exehead/exec.c +++ b/Source/exehead/exec.c @@ -367,7 +367,7 @@ static int NSISCALL ExecuteEntry(entry *entry_) mystrcpy(state_output_directory,buf1); if (!SetCurrentDirectory(buf1)) { - log_printf3("SetCurrentDirectory(%s) failed (%d)",buf1,GetLastError()); + log_printf3(_T("SetCurrentDirectory(%s) failed (%d)"),buf1,GetLastError()); exec_error++; } } @@ -1259,7 +1259,7 @@ static int NSISCALL ExecuteEntry(entry *entry_) #endif // use buf2, buf3 and buf4 size = GetCompressedDataFromDataBlockToMemory(parm3, data, (3 * NSIS_MAX_STRLEN)*sizeof(TCHAR)); - LogData2Hex(binbuf, sizeof(binbuf), data, size); + LogData2Hex(binbuf, COUNTOF(binbuf), data, size); log_printf5(_T("WriteRegBin: \"%s\\%s\" \"%s\"=\"%s\""),rkn,buf1,buf0,binbuf); } diff --git a/Source/exehead/util.c b/Source/exehead/util.c index 84da5da4..a9013f45 100644 --- a/Source/exehead/util.c +++ b/Source/exehead/util.c @@ -947,22 +947,16 @@ const TCHAR * _RegKeyHandleToName(HKEY hKey) return _T("invalid registry key"); } -void _LogData2Hex(TCHAR *buf, size_t buflen, BYTE *data, size_t datalen) +void _LogData2Hex(TCHAR *buf, size_t cchbuf, BYTE *data, size_t cbdata) { TCHAR *p = buf; - - size_t i; - int dots = 0; - size_t bufbytes = buflen / 3; // 2 hex digits, one space/null + size_t i, bufbytes = cchbuf / 3; // 2 hex digits, one space/null - if (datalen > bufbytes) - { - bufbytes--; - dots = 1; - } + if (cbdata > bufbytes) + bufbytes--, dots++; else - bufbytes = datalen; + bufbytes = cbdata; for (i = 0; i < bufbytes; i++) { @@ -970,8 +964,7 @@ void _LogData2Hex(TCHAR *buf, size_t buflen, BYTE *data, size_t datalen) p += 3; } - if (dots) - mystrcat(buf, _T("...")); + if (dots) mystrcat(buf, _T("...")); } #ifdef NSIS_CONFIG_LOG_TIMESTAMP diff --git a/Source/exehead/util.h b/Source/exehead/util.h index a7773b4e..96272a4a 100644 --- a/Source/exehead/util.h +++ b/Source/exehead/util.h @@ -55,10 +55,10 @@ int NSISCALL my_GetDialogItemText(UINT idx, TCHAR *val); //#define my_GetDialogItemText GetDlgItemText #ifdef NSIS_CONFIG_LOG -extern TCHAR log_text[2048]; +extern TCHAR log_text[2048]; // BUGBUG: Should this be 2*NSIS_MAX_STRLEN? ...and a little larger when NSIS_CONFIG_LOG_TIMESTAMP is defined! void NSISCALL log_write(int close); const TCHAR * _RegKeyHandleToName(HKEY hKey); -void _LogData2Hex(TCHAR *buf, size_t buflen, BYTE *data, size_t datalen); +void _LogData2Hex(TCHAR *buf, size_t cchbuf, BYTE *data, size_t cbdata); void log_printf(TCHAR *format, ...); #define log_printf2(x1,x2) log_printf(x1,x2); #define log_printf3(x1,x2,x3) log_printf(x1,x2,x3);