diff options
author | Martin Mares <mj@ucw.cz> | 2001-01-08 12:13:01 +0100 |
---|---|---|
committer | Martin Mares <mj@ucw.cz> | 2001-01-08 12:13:01 +0100 |
commit | 8c6ce98b9d9b5c4970e902cf667c1ffb64f04a62 (patch) | |
tree | 9b05a5e12e8569c8ab7f584c8afa8ea6d203fb5d | |
parent | 32749f493fdaea31f70d8586597febacd2c511d9 (diff) | |
download | bird-8c6ce98b9d9b5c4970e902cf667c1ffb64f04a62.tar bird-8c6ce98b9d9b5c4970e902cf667c1ffb64f04a62.zip |
Fixed infinite recursion in password_same.
Pavel, please check.
-rw-r--r-- | nest/password.c | 23 |
1 files changed, 15 insertions, 8 deletions
diff --git a/nest/password.c b/nest/password.c index c270627..ba5d0e6 100644 --- a/nest/password.c +++ b/nest/password.c @@ -54,12 +54,19 @@ password_strncpy(char *to, char *from, int len) int password_same(struct password_item *old, struct password_item *new) { - if (old == new) - return 1; - if ((!old) || (!new)) - return 0; - return ((old->from == new->from) && - (old->to == new->to) && - (old->passive == new->passive) && - password_same(old, new)); + for(;;) + { + if (old == new) + return 1; + if (!old || !new) + return 0; + if (old->from != new->from || + old->to != new->to || + old->passive != new->passive || + old->id != new->id || + strcmp(old->password, new->password)) + return 0; + old = old->next; + new = new->next; + } } |