summaryrefslogtreecommitdiffstats
path: root/lib
diff options
context:
space:
mode:
authorRoeland Jago Douma <roeland@famdouma.nl>2019-04-08 13:21:46 +0200
committerRoeland Jago Douma <roeland@famdouma.nl>2019-04-08 13:22:00 +0200
commit5d360bd16f345e395f7650998e8ee4a5d252c2b5 (patch)
treedbb380f4f5f97057be35fae3366e6c4bbf94a608 /lib
parentacba430246bc8815c368ef19e2c169769ca897ea (diff)
downloadnextcloud-server-5d360bd16f345e395f7650998e8ee4a5d252c2b5.tar.gz
nextcloud-server-5d360bd16f345e395f7650998e8ee4a5d252c2b5.zip
Harden appdata putcontent
If for whatever reason appdata got into a strange state this will at least propegate up and not make it do boom the next run. Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
Diffstat (limited to 'lib')
-rw-r--r--lib/private/Files/SimpleFS/SimpleFile.php13
-rw-r--r--lib/public/Files/SimpleFS/ISimpleFile.php1
2 files changed, 12 insertions, 2 deletions
diff --git a/lib/private/Files/SimpleFS/SimpleFile.php b/lib/private/Files/SimpleFS/SimpleFile.php
index 7b83e9372f7..9c9ca10650c 100644
--- a/lib/private/Files/SimpleFS/SimpleFile.php
+++ b/lib/private/Files/SimpleFS/SimpleFile.php
@@ -99,9 +99,14 @@ class SimpleFile implements ISimpleFile {
*
* @param string|resource $data
* @throws NotPermittedException
+ * @throws NotFoundException
*/
public function putContent($data) {
- $this->file->putContent($data);
+ try {
+ return $this->file->putContent($data);
+ } catch (NotFoundException $e) {
+ $this->checkFile();
+ }
}
/**
@@ -119,7 +124,11 @@ class SimpleFile implements ISimpleFile {
while ($cur->stat() === false) {
$parent = $cur->getParent();
- $cur->delete();
+ try {
+ $cur->delete();
+ } catch (NotFoundException $e) {
+ // Just continue then
+ }
$cur = $parent;
}
diff --git a/lib/public/Files/SimpleFS/ISimpleFile.php b/lib/public/Files/SimpleFS/ISimpleFile.php
index a3cd3245cc7..b00f5c482c6 100644
--- a/lib/public/Files/SimpleFS/ISimpleFile.php
+++ b/lib/public/Files/SimpleFS/ISimpleFile.php
@@ -80,6 +80,7 @@ interface ISimpleFile {
*
* @param string|resource $data
* @throws NotPermittedException
+ * @throws NotFoundException
* @since 11.0.0
*/
public function putContent($data);