summaryrefslogtreecommitdiffstats
path: root/src/libs/installer/packagemanagercore.cpp
diff options
context:
space:
mode:
authorkh1 <karsten.heimrich@digia.com>2013-03-12 11:35:12 +0100
committerKarsten Heimrich <karsten.heimrich@digia.com>2013-03-12 16:43:23 +0100
commitb8aafae68826c91a96b5913cd1e14a0943664221 (patch)
tree5e4daa9ecefaf6403a34244c29fc9df666e7a375 /src/libs/installer/packagemanagercore.cpp
parentde8d24fa6ccca3b201a8468d90631af7124c9c3c (diff)
Check for emtpy string before calling the windows function.
Change-Id: Icbeab47fe4dff0411adeed310914761d117609ba Reviewed-by: Niels Weber <niels.weber@digia.com> Reviewed-by: Tim Jenssen <tim.jenssen@digia.com>
Diffstat (limited to 'src/libs/installer/packagemanagercore.cpp')
-rw-r--r--src/libs/installer/packagemanagercore.cpp13
1 files changed, 6 insertions, 7 deletions
diff --git a/src/libs/installer/packagemanagercore.cpp b/src/libs/installer/packagemanagercore.cpp
index 63f4eb45a..5b75aa0fb 100644
--- a/src/libs/installer/packagemanagercore.cpp
+++ b/src/libs/installer/packagemanagercore.cpp
@@ -1259,12 +1259,13 @@ bool PackageManagerCore::executeDetached(const QString &program, const QStringLi
*/
QString PackageManagerCore::environmentVariable(const QString &name) const
{
+ if (name.isEmpty())
+ return QString();
+
#ifdef Q_OS_WIN
- const LPCWSTR n = (LPCWSTR) name.utf16();
- LPTSTR buff = (LPTSTR) malloc(4096 * sizeof(TCHAR));
- DWORD getenvret = GetEnvironmentVariable(n, buff, 4096);
- QString value = getenvret != 0 ? QString::fromUtf16((const unsigned short *) buff) : QString();
- free(buff);
+ static TCHAR buffer[32767];
+ DWORD size = GetEnvironmentVariable(LPCWSTR(name.utf16()), buffer, 32767);
+ QString value = QString::fromUtf16((const unsigned short *) buffer, size);
if (value.isEmpty()) {
static QLatin1String userEnvironmentRegistryPath("HKEY_CURRENT_USER\\Environment");
@@ -1277,8 +1278,6 @@ QString PackageManagerCore::environmentVariable(const QString &name) const
}
return value;
#else
- if (name.isEmpty())
- return QString();
return QString::fromUtf8(qgetenv(name.toLatin1()));
#endif
}