summaryrefslogtreecommitdiffstats
path: root/tdeio/kssl/ksslpemcallback.cc
diff options
context:
space:
mode:
authorMichele Calgaro <michele.calgaro@yahoo.it>2018-11-27 14:55:23 +0900
committerMichele Calgaro <michele.calgaro@yahoo.it>2018-11-27 14:55:23 +0900
commit6ec26d859be239e6db1bb392140db76227a56522 (patch)
tree1cae6e9ff2c6537c9454113f54a20b123f3921d1 /tdeio/kssl/ksslpemcallback.cc
parent82afa07a430c43bc122c7325dc67fb9f3ad6216a (diff)
downloadtdelibs-6ec26d859be239e6db1bb392140db76227a56522.tar.gz
tdelibs-6ec26d859be239e6db1bb392140db76227a56522.zip
KPasswordEdit::password() now returns a TQString instead of a const char *. This relates to bug 2961.
Signed-off-by: Michele Calgaro <michele.calgaro@yahoo.it>
Diffstat (limited to 'tdeio/kssl/ksslpemcallback.cc')
-rw-r--r--tdeio/kssl/ksslpemcallback.cc17
1 files changed, 7 insertions, 10 deletions
diff --git a/tdeio/kssl/ksslpemcallback.cc b/tdeio/kssl/ksslpemcallback.cc
index 207949a0c..584020c0f 100644
--- a/tdeio/kssl/ksslpemcallback.cc
+++ b/tdeio/kssl/ksslpemcallback.cc
@@ -28,26 +28,23 @@
int KSSLPemCallback(char *buf, int size, int rwflag, void *userdata) {
#ifdef KSSL_HAVE_SSL
- TQCString pass;
+ TQString pass2;
Q_UNUSED(userdata);
Q_UNUSED(rwflag);
if (!buf) return -1;
- int rc = KPasswordDialog::getPassword(pass, i18n("Certificate password"));
+ int rc = KPasswordDialog::getPassword(pass2, i18n("Certificate password"));
if (rc != KPasswordDialog::Accepted) return -1;
+ TQCString pass = pass2.utf8(); // utf8 length may differ from TQString length
const uint passlen = pass.length();
if (passlen > (unsigned int)size-1)
pass.truncate((unsigned int)size-1);
- tqstrncpy(buf, pass.data(), size-1);
-
- for (unsigned int i = 0; i < passlen; i++)
- pass[i] = 0;
- // To be sure that it doesn't optimise the previous loop away
- for (unsigned int i = 0; i < passlen; i++)
- pass[i] = pass[i];
- buf[size-1] = 0;
+ tqstrncpy(buf, pass, size-1);
+ buf[size-1] = 0;
+ pass.fill(' ');
+ pass2.fill(' ');
return (int)passlen;
#else
Q_UNUSED(buf);