From 5a28172868cdc51607e0e87172d4d4fb6f01b896 Mon Sep 17 00:00:00 2001 From: David Edmundson Date: Thu, 12 Feb 2015 22:29:04 +0100 Subject: Avoid code path that leaves local config locked The local config file gets locked on line 415, if we return early we need to unlock it. REVIEW: 122549 BUG: 344032 --- src/core/kconfig.cpp | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'src/core/kconfig.cpp') diff --git a/src/core/kconfig.cpp b/src/core/kconfig.cpp index 782e9714..1da816fa 100644 --- a/src/core/kconfig.cpp +++ b/src/core/kconfig.cpp @@ -440,6 +440,12 @@ bool KConfig::sync() QExplicitlySharedDataPointer tmp = KConfigBackend::create(d->sGlobalFileName); if (d->configState == ReadWrite && !tmp->lock()) { qWarning() << "couldn't lock global file"; + + //unlock the local config if we're returning early + if (d->mBackend->isLocked()) { + d->mBackend->unlock(); + } + d->bDirty = true; return false; } -- cgit v1.2.1