[PECL-CVS] [pecl-networking-ssh2] master: Fix sftp streamwrapper not correctly handeling freestanding urls; fixes #85

[email protected] (Mai-Lapyst via Casper Langemeijer)
Newsgroups php.pecl.cvs
Message-ID <[email protected]>
Author: Mai-Lapyst (Mai-Lapyst)
Committer: Casper Langemeijer (langemeijer)
Date: 2025-11-23T12:29:32+01:00

Commit: https://github.com/php/pecl-networking-ssh2/commit/118acefe3f5c8d4f720fbec2793711e5a77e5378
Raw diff: https://github.com/php/pecl-networking-ssh2/commit/118acefe3f5c8d4f720fbec2793711e5a77e5378.diff

Fix sftp streamwrapper not correctly handeling freestanding urls; fixes #85

Changed paths:
  M  ssh2_fopen_wrappers.c


Diff:

diff --git a/ssh2_fopen_wrappers.c b/ssh2_fopen_wrappers.c
index 9f6c163..31c673b 100644
--- a/ssh2_fopen_wrappers.c
+++ b/ssh2_fopen_wrappers.c
@@ -501,9 +501,8 @@ php_url *php_ssh2_fopen_wraper_parse_path(const char *path, char *type, php_stre
 session_authed:
 	ZVAL_RES(&zsession, zend_register_resource(session, le_ssh2_session));
 
-	if (psftp) {
+	if (psftp && psftp_rsrc) {
 		LIBSSH2_SFTP *sftp;
-		zval zsftp;
 
 		sftp = libssh2_sftp_init(session);
 		if (!sftp) {
@@ -516,10 +515,8 @@ php_url *php_ssh2_fopen_wraper_parse_path(const char *path, char *type, php_stre
 		sftp_data->session = session;
 		sftp_data->sftp = sftp;
 		sftp_data->session_rsrc = Z_RES(zsession);
-
-		//TODO Sean-Der
-		//ZEND_REGISTER_RESOURCE(sftp_data, le_ssh2_sftp);
-		*psftp_rsrc = Z_RES(zsftp);
+		Z_ADDREF(zsession);
+		*psftp_rsrc = zend_register_resource(sftp_data, le_ssh2_sftp);
 		*psftp = sftp;
 	}
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.