From 4f2398f7b88f9418db3c35876daca4fd18b988fa Mon Sep 17 00:00:00 2001 From: 8chan Date: Wed, 12 Nov 2014 21:06:58 -0800 Subject: [PATCH] Make deletePost more tolerant of errors Sometimes thumbnail generation fails but the post is still there, sometimes post deletion is aborted halfway through Ignore errors from file_unlink and don't fail if $f->file, $f->thumb not set --- inc/functions.php | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/inc/functions.php b/inc/functions.php index 3504cc38..2ffdc222 100755 --- a/inc/functions.php +++ b/inc/functions.php @@ -1091,9 +1091,9 @@ function deletePost($id, $error_if_doesnt_exist=true, $rebuild_after=true) { if (!$post['thread']) { // Delete thread HTML page - file_unlink($board['dir'] . $config['dir']['res'] . sprintf($config['file_page'], $post['id'])); - file_unlink($board['dir'] . $config['dir']['res'] . sprintf($config['file_page50'], $post['id'])); - file_unlink($board['dir'] . $config['dir']['res'] . sprintf('%d.json', $post['id'])); + @file_unlink($board['dir'] . $config['dir']['res'] . sprintf($config['file_page'], $post['id'])); + @file_unlink($board['dir'] . $config['dir']['res'] . sprintf($config['file_page50'], $post['id'])); + @file_unlink($board['dir'] . $config['dir']['res'] . sprintf('%d.json', $post['id'])); $antispam_query = prepare('DELETE FROM ``antispam`` WHERE `board` = :board AND `thread` = :thread'); $antispam_query->bindValue(':board', $board['uri']); @@ -1106,9 +1106,9 @@ function deletePost($id, $error_if_doesnt_exist=true, $rebuild_after=true) { if ($post['files']) { // Delete file foreach (json_decode($post['files']) as $i => $f) { - if ($f->file !== 'deleted') { - file_unlink($config['dir']['img_root'] . $board['dir'] . $config['dir']['img'] . $f->file); - file_unlink($config['dir']['img_root'] . $board['dir'] . $config['dir']['thumb'] . $f->thumb); + if (isset($f->file, $f->thumb) && $f->file !== 'deleted') { + @file_unlink($config['dir']['img_root'] . $board['dir'] . $config['dir']['img'] . $f->file); + @file_unlink($config['dir']['img_root'] . $board['dir'] . $config['dir']['thumb'] . $f->thumb); } } }