mirror of
https://git.libssh.org/projects/libssh.git
synced 2026-02-11 18:50:28 +09:00
Improve kbdint_free.
git-svn-id: svn+ssh://svn.berlios.de/svnroot/repos/libssh/trunk@638 7dcaeef0-15fb-0310-b436-a5af3365683c
This commit is contained in:
@@ -938,30 +938,35 @@ static struct ssh_kbdint *kbdint_new(void) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
static void kbdint_free(struct ssh_kbdint *kbd){
|
static void kbdint_free(struct ssh_kbdint *kbd) {
|
||||||
int i,n=kbd->nprompts;
|
int i, n;
|
||||||
if(kbd->name)
|
|
||||||
free(kbd->name);
|
if (kbd == NULL) {
|
||||||
if(kbd->instruction)
|
return;
|
||||||
free(kbd->instruction);
|
}
|
||||||
if(kbd->prompts){
|
|
||||||
for(i=0;i<n;++i){
|
n = kbd->nprompts;
|
||||||
|
|
||||||
|
SAFE_FREE(kbd->name);
|
||||||
|
SAFE_FREE(kbd->instruction);
|
||||||
|
SAFE_FREE(kbd->echo);
|
||||||
|
|
||||||
|
if (kbd->prompts) {
|
||||||
|
for (i = 0; i < n; i++) {
|
||||||
burn(kbd->prompts[i]);
|
burn(kbd->prompts[i]);
|
||||||
free(kbd->prompts[i]);
|
SAFE_FREE(kbd->prompts[i]);
|
||||||
}
|
}
|
||||||
free(kbd->prompts);
|
SAFE_FREE(kbd->prompts);
|
||||||
}
|
}
|
||||||
if(kbd->answers){
|
if (kbd->answers) {
|
||||||
for(i=0;i<n;++i){
|
for (i = 0; i < n; i++) {
|
||||||
burn(kbd->answers[i]);
|
burn(kbd->answers[i]);
|
||||||
free(kbd->answers[i]);
|
SAFE_FREE(kbd->answers[i]);
|
||||||
}
|
}
|
||||||
free(kbd->answers);
|
SAFE_FREE(kbd->answers);
|
||||||
}
|
}
|
||||||
if(kbd->echo){
|
|
||||||
free(kbd->echo);
|
SAFE_FREE(kbd);
|
||||||
}
|
|
||||||
free(kbd);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static void kbdint_clean(struct ssh_kbdint *kbd){
|
static void kbdint_clean(struct ssh_kbdint *kbd){
|
||||||
|
|||||||
Reference in New Issue
Block a user