1 |
diff -up sudo-1.8.6p3/plugins/sudoers/visudo.c.cyclesegv sudo-1.8.6p3/plugins/sudoers/visudo.c |
2 |
--- sudo-1.8.6p3/plugins/sudoers/visudo.c.cyclesegv 2013-01-23 12:15:32.493762418 +0100 |
3 |
+++ sudo-1.8.6p3/plugins/sudoers/visudo.c 2013-01-23 12:40:52.280432614 +0100 |
4 |
@@ -1075,18 +1075,16 @@ alias_remove_recursive(char *name, int t |
5 |
bool rval = true; |
6 |
debug_decl(alias_remove_recursive, SUDO_DEBUG_ALIAS) |
7 |
|
8 |
- if ((a = alias_find(name, type)) != NULL) { |
9 |
+ if ((a = alias_remove(name, type)) != NULL) { |
10 |
tq_foreach_fwd(&a->members, m) { |
11 |
if (m->type == ALIAS) { |
12 |
if (!alias_remove_recursive(m->name, type)) |
13 |
rval = false; |
14 |
} |
15 |
} |
16 |
+ rbinsert(alias_freelist, a); |
17 |
} |
18 |
alias_seqno++; |
19 |
- a = alias_remove(name, type); |
20 |
- if (a) |
21 |
- rbinsert(alias_freelist, a); |
22 |
debug_return_bool(rval); |
23 |
} |
24 |
|