diff options
author | 2005-11-12 17:04:32 +0000 | |
---|---|---|
committer | 2005-11-12 17:04:32 +0000 | |
commit | 59c2e1d09da8b264f7ddec8a05507000f2a4c40b (patch) | |
tree | 001fa3845a6d62198c914bbb58803afada5548d4 | |
parent | spacing (diff) | |
download | wireguard-openbsd-59c2e1d09da8b264f7ddec8a05507000f2a4c40b.tar.xz wireguard-openbsd-59c2e1d09da8b264f7ddec8a05507000f2a4c40b.zip |
simplify TAILQ walking code; ok hshoexer
-rw-r--r-- | sbin/ipsecctl/parse.y | 11 |
1 files changed, 5 insertions, 6 deletions
diff --git a/sbin/ipsecctl/parse.y b/sbin/ipsecctl/parse.y index 9681d1e3d0a..acd3e68e4e8 100644 --- a/sbin/ipsecctl/parse.y +++ b/sbin/ipsecctl/parse.y @@ -1,4 +1,4 @@ -/* $OpenBSD: parse.y,v 1.36 2005/11/12 16:41:39 deraadt Exp $ */ +/* $OpenBSD: parse.y,v 1.37 2005/11/12 17:04:32 deraadt Exp $ */ /* * Copyright (c) 2002, 2003, 2004 Henning Brauer <henning@openbsd.org> @@ -835,7 +835,7 @@ top: int parse_rules(FILE *input, struct ipsecctl *ipsecx) { - struct sym *sym, *next; + struct sym *sym; ipsec = ipsecx; fin = input; @@ -845,11 +845,10 @@ parse_rules(FILE *input, struct ipsecctl *ipsecx) yyparse(); /* Free macros and check which have not been used. */ - for (sym = TAILQ_FIRST(&symhead); sym != NULL; sym = next) { - next = TAILQ_NEXT(sym, entries); + while ((sym = TAILQ_FIRST(&symhead))) { + TAILQ_REMOVE(&symhead, sym, entries); free(sym->nam); free(sym->val); - TAILQ_REMOVE(&symhead, sym, entries); free(sym); } @@ -869,9 +868,9 @@ symset(const char *nam, const char *val, int persist) if (sym->persist == 1) return (0); else { + TAILQ_REMOVE(&symhead, sym, entries); free(sym->nam); free(sym->val); - TAILQ_REMOVE(&symhead, sym, entries); free(sym); } } |