handle cases where the hash context gets cleaned up before the hash wrapper

Signed-off-by: Robin Appelman <robin@icewind.nl>
pull/33774/head
Robin Appelman 4 years ago
parent f56ecf9242
commit a9575a7029
No known key found for this signature in database
GPG Key ID: 42B69D8A64526EFB
  1. 6
      lib/private/Files/Stream/HashWrapper.php

@ -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;
}

Loading…
Cancel
Save