CVS commit by dmacvicar: QCString::length() calls strlen on each invocation so it should never be called in a loop M +7 -4 ksslpemcallback.cc 1.5 --- kdelibs/kio/kssl/ksslpemcallback.cc #1.4:1.5 @@ -30,4 +30,5 @@ int KSSLPemCallback(char *buf, int size, #ifdef KSSL_HAVE_SSL QCString pass; + uint passlen; Q_UNUSED(userdata); Q_UNUSED(rwflag); @@ -37,15 +38,17 @@ int KSSLPemCallback(char *buf, int size, if (rc != KPasswordDialog::Accepted) return -1; - if (pass.length() > (unsigned int)size-1) + passlen = pass.length(); + if (passlen > (unsigned int)size-1) pass.truncate((unsigned int)size-1); qstrncpy(buf, pass.data(), size-1); - for (unsigned int i = 0; i < pass.length(); i++) + + 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 < pass.length(); i++) + for (unsigned int i = 0; i < passlen; i++) pass[i] = pass[i]; buf[size-1] = 0; - return (int)pass.length(); + return (int)passlen; #else Q_UNUSED(buf);