diff options
author | Andreas Schneider <mail@cynapses.org> | 2009-04-23 15:15:02 +0000 |
---|---|---|
committer | Andreas Schneider <mail@cynapses.org> | 2009-04-23 15:15:02 +0000 |
commit | 10ddf310a6ff139d36341ae75d8babb31479c909 (patch) | |
tree | fdc88050817821dcfeda1087e7f8709622e1433d /libssh/sftp.c | |
parent | 5a84af65fab65fcef1de813ef4f17c13693b45af (diff) | |
download | libssh-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.c | 24 |
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. */ |