From f60301bab1f8aa3693089036a3791a01ae6f9db8 Mon Sep 17 00:00:00 2001 From: erik Date: Fri, 19 Jan 2007 01:20:57 +0000 Subject: core/opie-login/loginwindowimpl.cpp has a fix to properly free strings that were dup'ed. noncore/apps/opie-reader/Bkmks.cpp deletes a temporary pointer that was not being properly disposed of. --- diff --git a/core/opie-login/loginwindowimpl.cpp b/core/opie-login/loginwindowimpl.cpp index 547a9b3..b9a286d 100644 --- a/core/opie-login/loginwindowimpl.cpp +++ b/core/opie-login/loginwindowimpl.cpp @@ -225,15 +225,29 @@ private: void LoginWindowImpl::login ( ) { - const char *user = ::strdup ( m_user-> currentText ( ). local8Bit ( )); - const char *pass = ::strdup ( m_password-> text ( ). local8Bit ( )); + char *const user = ::strdup ( m_user-> currentText ( ). local8Bit ( )); + char *pass = ::strdup ( m_password-> text ( ). local8Bit ( )); - if ( !user || !user [0] ) + if ( !user ) { + if ( pass ) + free( pass ); return; - if ( !pass ) + } + if ( !user [0] ) { + free( user ); + if ( pass ) + free( pass ); + return; + } + bool passwordIsEmpty = false; + if ( !pass ) { + passwordIsEmpty = true; pass = ""; + } if ( lApp-> checkPassword ( user, pass )) { + if ( !passwordIsEmpty ) + free(pass); Config cfg ( "opie-login" ); cfg. setGroup ( "General" ); cfg. writeEntry ( "LastLogin", user ); @@ -249,6 +263,9 @@ void LoginWindowImpl::login ( ) else { QMessageBox::warning ( this, tr( "Wrong password" ), tr( "The given password is incorrect." )); m_password-> clear ( ); + free( user ); + if ( !passwordIsEmpty ) + free( pass ); } } diff --git a/noncore/apps/opie-reader/Bkmks.cpp b/noncore/apps/opie-reader/Bkmks.cpp index 28f6318..00141a3 100644 --- a/noncore/apps/opie-reader/Bkmks.cpp +++ b/noncore/apps/opie-reader/Bkmks.cpp @@ -319,6 +319,7 @@ Bkmk* BkmkFile::read03(BkmkFile* /*_this*/, FILE* f) unsigned int pos; fread(&pos,sizeof(pos),1,f); b = new Bkmk(name,anno,pos); + delete [] anno; } } return b; -- cgit v0.9.0.2