diff options
author | Nikita Popov <nikic@php.net> | 2016-08-08 18:05:29 +0200 |
---|---|---|
committer | Stanislav Malyshev <stas@php.net> | 2016-08-17 00:45:57 -0700 |
commit | 2135fdef9b588a34f8805b2bbf10704e36163d5a (patch) | |
tree | 77c5d2591425df1625893229e33027f71281bc35 /ext/ftp/php_ftp.c | |
parent | 0d13325b660b5ae64267dffcc9a153c7634fdfe2 (diff) | |
download | php-git-2135fdef9b588a34f8805b2bbf10704e36163d5a.tar.gz |
Bug #72663 - part 1
Don't call __destruct() on an unserialized object that has a
__wakeup() method if either
a) unserialization of its properties fails or
b) the __wakeup() call fails (e.g. by throwing).
This basically treats __wakeup() as a form of constructor and
aligns us with the usual behavior that if the constructor call
fails the destructor should not be called.
The security aspect here is that people use __wakeup() to prevent
unserialization of objects with dangerous __destruct() methods,
but this is ineffective if __destruct() can still be called while
__wakeup() was skipped.
Diffstat (limited to 'ext/ftp/php_ftp.c')
0 files changed, 0 insertions, 0 deletions