summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAntony Dovgal <tony2001@php.net>2004-11-14 13:33:59 +0000
committerAntony Dovgal <tony2001@php.net>2004-11-14 13:33:59 +0000
commitf85a11f2803b859e3c03d2c197108a00488936fc (patch)
tree6b060ca609d9d8d43165e29534e36c27b877ef39
parentd29cc93a6f7292304c688d6b9e0cb428f607ef21 (diff)
downloadphp-git-f85a11f2803b859e3c03d2c197108a00488936fc.tar.gz
fix #30780 (tidy segfaults on 'new tidyNode;')
-rw-r--r--ext/tidy/tidy.c16
1 files changed, 9 insertions, 7 deletions
diff --git a/ext/tidy/tidy.c b/ext/tidy/tidy.c
index 7a87300a7e..ec0151e8ca 100644
--- a/ext/tidy/tidy.c
+++ b/ext/tidy/tidy.c
@@ -497,13 +497,15 @@ static void tidy_object_free_storage(void *object TSRMLS_DC)
zend_hash_destroy(intern->std.properties);
FREE_HASHTABLE(intern->std.properties);
- intern->ptdoc->ref_count--;
-
- if (intern->ptdoc->ref_count <= 0) {
- tidyBufFree(intern->ptdoc->errbuf);
- efree(intern->ptdoc->errbuf);
- tidyRelease(intern->ptdoc->doc);
- efree(intern->ptdoc);
+ if (intern->ptdoc) {
+ intern->ptdoc->ref_count--;
+
+ if (intern->ptdoc->ref_count <= 0) {
+ tidyBufFree(intern->ptdoc->errbuf);
+ efree(intern->ptdoc->errbuf);
+ tidyRelease(intern->ptdoc->doc);
+ efree(intern->ptdoc);
+ }
}
efree(object);