diff options
-rw-r--r-- | src/sftp.c | 21 |
1 files changed, 14 insertions, 7 deletions
@@ -81,19 +81,26 @@ static sftp_ext sftp_ext_new(void) { static void sftp_ext_free(sftp_ext ext) { - unsigned int i; + size_t i; if (ext == NULL) { return; } - if (ext->count) { - for (i = 0; i < ext->count; i++) { - SAFE_FREE(ext->name[i]); - SAFE_FREE(ext->data[i]); + if (ext->count > 0) { + if (ext->name != NULL) { + for (i = 0; i < ext->count; i++) { + SAFE_FREE(ext->name[i]); + } + SAFE_FREE(ext->name); + } + + if (ext->data != NULL) { + for (i = 0; i < ext->count; i++) { + SAFE_FREE(ext->data[i]); + } + SAFE_FREE(ext->data); } - SAFE_FREE(ext->name); - SAFE_FREE(ext->data); } SAFE_FREE(ext); |