Quellcode durchsuchen

rls: avoid access to item after free

(cherry picked from commit 4068ddd3ca01795e5378a738756b2735508f5864)
Daniel-Constantin Mierla vor 8 Jahren
Ursprung
Commit
5f94960aae
1 geänderte Dateien mit 4 neuen und 5 gelöschten Zeilen
  1. 4 5
      src/modules/rls/list.h

+ 4 - 5
src/modules/rls/list.h

@@ -105,14 +105,13 @@ static inline list_entry_t *list_remove(str strng, list_entry_t *list)
 	{
 		if (strncmp(p->strng->s, strng.s, strng.len) == 0)
 		{
+			list = list->next;
 			pkg_free(p->strng->s);
 			pkg_free(p->strng);
 			pkg_free(p);
-			return list->next;
-		}
-		else
-		{
-			list_entry_t *p = list, *q;
+			return list;
+		} else {
+			list_entry_t *q;
 
 			while (p->next != NULL && (cmp = strncmp(p->next->strng->s, strng.s, strng.len)) < 0)
 				p = p->next;