Merge pull request #33774 from nextcloud/hash-wrapper-closed-hash

handle cases where the hash context gets cleaned up before the hash wrapper
This commit is contained in:
Vincent Petry 2022-09-01 13:23:19 +02:00 committed by GitHub
commit 7ea84277f8
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -67,7 +67,11 @@ class HashWrapper extends Wrapper {
public function stream_close() {
if (is_callable($this->callback)) {
call_user_func($this->callback, hash_final($this->hash));
// if the stream is closed as a result of the end-of-request GC, the hash context might be cleaned up before this stream
if ($this->hash instanceof \HashContext) {
$hash = hash_final($this->hash);
call_user_func($this->callback, $hash);
}
// prevent further calls by potential PHP 7 GC ghosts
$this->callback = null;
}