Steps to reproduce
-
Have two or more files in a folder
temp.txt
test.txt -
PROPPATCH two or more prop values to the files:
curl -u admin:admin "http://localhost:8080/remote.php/dav/files/admin/test/temp.txt" -X PROPPATCH --data-binary @"patch1.txt"
<?xml version="1.0" encoding="utf-8" ?>
<a:propertyupdate xmlns:a="DAV:" xmlns:oc="http://owncloud.org/ns">
<a:set>
<a:prop>
<oc:testvar1>AAAAAAAAAAAAAAAAAAAAAA</oc:testvar1>
<oc:testvar2>BBBBBBBBBBBBBBBBBBBB</oc:testvar2>
</a:prop>
</a:set>
</a:propertyupdate>
curl -u admin:admin "http://localhost:8080/remote.php/dav/files/admin/test/test.txt" -X PROPPATCH --data-binary @"patch2.txt"
<?xml version="1.0" encoding="utf-8" ?>
<a:propertyupdate xmlns:a="DAV:" xmlns:oc="http://owncloud.org/ns">
<a:set>
<a:prop>
<oc:testvar1>CCCCCCCCCCCCCCCCCC</oc:testvar1>
<oc:testvar2>DDDDDDDDDDDDDDDDDD</oc:testvar2>
</a:prop>
</a:set>
</a:propertyupdate>
- PROPFIND two or more props at once in the folder:
curl -u admin:admin "http://localhost:8080/remote.php/dav/files/admin/test/" -X PROPFIND --data-binary @"find.txt"
<?xml version="1.0" encoding="utf-8" ?>
<a:propfind xmlns:a="DAV:" xmlns:oc="http://owncloud.org/ns">
<a:prop>
<oc:testvar1/>
<oc:testvar2/>
</a:prop>
</a:propfind>
Expected behaviour
The response should return the correct prop values for each file.
Actual behaviour
One of the prop variables is mixed up and returns the value of one of the files for all files.
<?xml version="1.0"?>
<d:multistatus xmlns:d="DAV:" xmlns:s="http://sabredav.org/ns" xmlns:oc="http://owncloud.org/ns">
<d:response>
<d:href>/remote.php/dav/files/admin/test/</d:href>
<d:propstat>
<d:prop>
<oc:testvar1/>
<oc:testvar2/>
</d:prop>
<d:status>HTTP/1.1 404 Not Found</d:status>
</d:propstat>
</d:response>
<d:response>
<d:href>/remote.php/dav/files/admin/test/temp.txt</d:href>
<d:propstat>
<d:prop>
<oc:testvar1>CCCCCCCCCCCCCCCCCCCCCCCC</oc:testvar1>
<oc:testvar2>BBBBBBBBBBBBBBBBBBBBBB</oc:testvar2>
</d:prop>
<d:status>HTTP/1.1 200 OK</d:status>
</d:propstat>
</d:response>
<d:response>
<d:href>/remote.php/dav/files/admin/test/test.txt</d:href>
<d:propstat>
<d:prop>
<oc:testvar1>CCCCCCCCCCCCCCCCCCCCCCCC</oc:testvar1>
<oc:testvar2>DDDDDDDDDDDDDDDDDDDDDDDD</oc:testvar2>
</d:prop>
<d:status>HTTP/1.1 200 OK</d:status>
</d:propstat>
</d:response>
</d:multistatus>
When the multi-propfind is applied directly to a file, the result is correct.
When propfind with only one prop-request is applied to the folder, the result is correct.
When the multi-propfind is applied to the folder, the result is incorrect.
Server configuration
Operating system: Linux Docker (on Windows 10 Pro 64bit)
Web server: Docker Image
ownCloud version: 10.3.2 (stable)
Updated from an older ownCloud or fresh install: fresh install
Where did you install ownCloud from: Docker
Integrity: No errors have been found.
The content of config/config.php:
https://pastebin.com/1uy1upuV
Are you using an external user-backend, if yes which one: Webdav
Client configuration
Browser: Mozilla Firefox
Operating system: Windows 10 Pro 64bit
curl 7.55.1 (Windows) libcurl/7.55.1 WinSSL