summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFrançois Andriot <francois.andriot@free.fr>2014-09-07 00:51:50 +0200
committerSlávek Banko <slavek.banko@axis.cz>2014-09-07 00:51:50 +0200
commite17513956503963f4d468342a5be6a0967aca97c (patch)
tree4055c4a497a5c3725705daa55822c99a6361aebe
parenta28cbf4837fbb1094ff790bf53cbec2dcab94a60 (diff)
downloadqt3-e17513956503963f4d468342a5be6a0967aca97c.tar.gz
qt3-e17513956503963f4d468342a5be6a0967aca97c.zip
Fix FTBFS on Linux specific memlock code
-rw-r--r--src/tools/qstring.cpp6
-rw-r--r--src/widgets/qlineedit.cpp2
2 files changed, 8 insertions, 0 deletions
diff --git a/src/tools/qstring.cpp b/src/tools/qstring.cpp
index 210848c..1c796fe 100644
--- a/src/tools/qstring.cpp
+++ b/src/tools/qstring.cpp
@@ -1075,9 +1075,11 @@ QStringData::~QStringData() {
if ( unicode ) {
delete[] ((char*)unicode);
}
+#if defined(Q_OS_LINUX)
if ( ascii && security_unpaged ) {
munlock(ascii, LINUX_MEMLOCK_LIMIT_BYTES);
}
+#endif
if ( ascii ) {
delete[] ascii;
}
@@ -5953,15 +5955,19 @@ const char* QString::ascii() const
void QString::setSecurityUnPaged(bool lock) {
if (lock != d->security_unpaged) {
if (d->security_unpaged) {
+#if defined(Q_OS_LINUX)
if (d->ascii) {
munlock(d->ascii, LINUX_MEMLOCK_LIMIT_BYTES);
}
+#endif
d->security_unpaged = false;
}
else {
+#if defined(Q_OS_LINUX)
if (d->ascii) {
mlock(d->ascii, LINUX_MEMLOCK_LIMIT_BYTES);
}
+#endif
d->security_unpaged = true;
}
}
diff --git a/src/widgets/qlineedit.cpp b/src/widgets/qlineedit.cpp
index 2a71656..629e17e 100644
--- a/src/widgets/qlineedit.cpp
+++ b/src/widgets/qlineedit.cpp
@@ -461,7 +461,9 @@ QLineEdit::~QLineEdit()
{
if ((d->echoMode == NoEcho) || (d->echoMode == Password) || (d->echoMode == PasswordThreeStars)) {
d->text.fill(QChar(0));
+#if defined(Q_OS_LINUX)
munlock(d->text.d->unicode, LINUX_MEMLOCK_LIMIT_BYTES);
+#endif
}
delete [] d->maskData;
delete d;