summaryrefslogtreecommitdiffstats
path: root/tdeio/kssl/ksslpemcallback.cc
diff options
context:
space:
mode:
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);