From 3eb2576adbae22d66fc01297879721e3bd87bc8c Mon Sep 17 00:00:00 2001 From: kichik Date: Tue, 21 Jun 2005 20:52:10 +0000 Subject: [PATCH] MSDN says RegQueryValueEx might not always return null terminated strings git-svn-id: https://svn.code.sf.net/p/nsis/code/NSIS/trunk@4115 212acab6-be3b-0410-9dea-997c60f758d6 --- Source/exehead/exec.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/Source/exehead/exec.c b/Source/exehead/exec.c index 8860865a..e1fb889d 100644 --- a/Source/exehead/exec.c +++ b/Source/exehead/exec.c @@ -1198,7 +1198,7 @@ static int NSISCALL ExecuteEntry(entry *entry_) p[0]=0; if (hKey) { - DWORD l = NSIS_MAX_STRLEN; + DWORD l = NSIS_MAX_STRLEN - 1; DWORD t; if (RegQueryValueEx(hKey,buf3,NULL,&t,p,&l) != ERROR_SUCCESS || @@ -1214,7 +1214,11 @@ static int NSISCALL ExecuteEntry(entry *entry_) if (!parm4) exec_error++; myitoa(p,*((DWORD*)p)); } - else if (parm4) exec_error++; + else + { + if (parm4) exec_error++; + p[l]=0; + } } RegCloseKey(hKey); }