summaryrefslogtreecommitdiff
path: root/main/streams/transports.c
diff options
context:
space:
mode:
authorWez Furlong <wez@php.net>2004-01-27 22:40:44 +0000
committerWez Furlong <wez@php.net>2004-01-27 22:40:44 +0000
commite1ae61802baa651cf4398c13d74b51cb58f57774 (patch)
tree7f5bdbfd38322b7cc1e69e6279ec13baa525fa88 /main/streams/transports.c
parent4af9e35316c016142fe40d8e9a12b2eae157e5ed (diff)
downloadphp-git-e1ae61802baa651cf4398c13d74b51cb58f57774.tar.gz
Fix segfault for scripts like this:
<?php pfsockopen("foo"); pfsockopen("foo"); ?> Where the transport fails to connect (since args are bogus); the problem was that the persistent stream entry was not correctly freed.
Diffstat (limited to 'main/streams/transports.c')
-rw-r--r--main/streams/transports.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/main/streams/transports.c b/main/streams/transports.c
index 5b2c0d89bb..1c20026655 100644
--- a/main/streams/transports.c
+++ b/main/streams/transports.c
@@ -163,7 +163,11 @@ PHPAPI php_stream *_php_stream_xport_create(const char *name, long namelen, int
if (failed) {
/* failure means that they don't get a stream to play with */
- php_stream_close(stream);
+ if (persistent_id) {
+ php_stream_pclose(stream);
+ } else {
+ php_stream_close(stream);
+ }
stream = NULL;
}