Fix exception when accessing empty lock list
This fixes an Access Violation Exception when a WebDAV server says a
resource is locked but does return an empty lockdiscovery element on
WebDAV Propfind. Without this patch, the code only checks that a list
exists, but it should also check if it contains elements before
accessing it.
Fixes tdf#128662
Change-Id: I5f555a9b5805102242392b018ab5a8009c7a203c
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/91412
Tested-by: Mike Kaganski <mike.kaganski@collabora.com>
Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
diff --git a/sfx2/source/doc/docfile.cxx b/sfx2/source/doc/docfile.cxx
index 3e10346..09c6f8c 100644
--- a/sfx2/source/doc/docfile.cxx
+++ b/sfx2/source/doc/docfile.cxx
@@ -1186,7 +1186,7 @@ SfxMedium::LockFileResult SfxMedium::LockOrigFileOnDemand(bool bLoading, bool bN
uno::Sequence<css::ucb::Lock> aLocks;
// getting the property, send a PROPFIND to the server over the net
if (aContentToLock.getPropertyValue("DAV:lockdiscovery") >>= aLocks)
if ((aContentToLock.getPropertyValue("DAV:lockdiscovery") >>= aLocks) && aLocks.hasElements())
{
// got at least a lock, show the owner of the first lock returned
css::ucb::Lock aLock = aLocks[0];