aboutsummaryrefslogtreecommitdiff
path: root/libssh/sftp.c
diff options
context:
space:
mode:
authorAndreas Schneider <mail@cynapses.org>2009-04-23 15:15:02 +0000
committerAndreas Schneider <mail@cynapses.org>2009-04-23 15:15:02 +0000
commit10ddf310a6ff139d36341ae75d8babb31479c909 (patch)
treefdc88050817821dcfeda1087e7f8709622e1433d /libssh/sftp.c
parent5a84af65fab65fcef1de813ef4f17c13693b45af (diff)
downloadlibssh-10ddf310a6ff139d36341ae75d8babb31479c909.tar.gz
libssh-10ddf310a6ff139d36341ae75d8babb31479c909.tar.xz
libssh-10ddf310a6ff139d36341ae75d8babb31479c909.zip
Improve sftp_closedir().
git-svn-id: svn+ssh://svn.berlios.de/svnroot/repos/libssh/trunk@600 7dcaeef0-15fb-0310-b436-a5af3365683c
Diffstat (limited to 'libssh/sftp.c')
-rw-r--r--libssh/sftp.c24
1 files changed, 12 insertions, 12 deletions
diff --git a/libssh/sftp.c b/libssh/sftp.c
index 1885b3b1..b3fc145c 100644
--- a/libssh/sftp.c
+++ b/libssh/sftp.c
@@ -1336,18 +1336,18 @@ int sftp_dir_close(SFTP_DIR *dir) {
/* Close an open directory. */
int sftp_closedir(SFTP_DIR *dir){
- int err=SSH_NO_ERROR;
- if(dir->name)
- free(dir->name);
- if(dir->handle){
- err=sftp_handle_close(dir->sftp,dir->handle);
- free(dir->handle);
- }
- /* FIXME: check server response and implement errno */
- if(dir->buffer)
- buffer_free(dir->buffer);
- free(dir);
- return err;
+ int err = SSH_NO_ERROR;
+
+ SAFE_FREE(dir->name);
+ if (dir->handle) {
+ err = sftp_handle_close(dir->sftp, dir->handle);
+ string_free(dir->handle);
+ }
+ /* FIXME: check server response and implement errno */
+ buffer_free(dir->buffer);
+ SAFE_FREE(dir);
+
+ return err;
}
/* Open a file on the server. */