commit 2f54fc46a72f532feb3f98a4cc2cae88bbd0169f
parent f4883a69092d5a6f7ce0a66bfdcd89b6e91fd84c
Author: Louis Burda <quent.burda@gmail.com>
Date: Fri, 25 Feb 2022 01:31:00 +0100
Ensure list_at only returns links that may be UPCAST
Diffstat:
1 file changed, 6 insertions(+), 2 deletions(-)
diff --git a/src/list.c b/src/list.c
@@ -143,12 +143,16 @@ list_index(struct list *list, struct link *target)
struct link *
list_at(struct list *list, int n)
{
+ struct link * link;
+
ASSERT(list != NULL);
if (n >= 0)
- return link_iter_fwd(list->head.next, n);
+ link = link_iter_fwd(list->head.next, n);
else
- return link_iter_bwd(&list->tail, -n);
+ link = link_iter_bwd(&list->tail, -n);
+
+ return LIST_INNER(link) ? link : NULL;
}
struct link *