From b10ebe6992073f6959c008f26ba1a3a1659cea43 Mon Sep 17 00:00:00 2001 From: Markus Armbruster Date: Thu, 11 Sep 2008 22:10:14 -0400 Subject: [PATCH] Zap next uid in clink_rem(), check it in clink_add() The former ensures that next links are valid even for uids not on any list. The latter oopses on adding an uid to a list when it is already on a list, unless it is at the tail. --- src/lib/common/cargo.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/lib/common/cargo.c b/src/lib/common/cargo.c index cf8a6282c..0dc371278 100644 --- a/src/lib/common/cargo.c +++ b/src/lib/common/cargo.c @@ -144,6 +144,7 @@ clink_add(struct clink *cl, int type, int uid) return; if (CANT_HAPPEN(*head >= nclink[type])) *head = -1; + CANT_HAPPEN(clink[type][uid].next >= 0); clink[type][uid].next = *head; *head = uid; } @@ -171,6 +172,7 @@ clink_rem(struct clink *cl, int type, int uid) } *p = linkv[uid].next; + linkv[uid].next = -1; } /* -- 2.43.0