Bladeren bron

dcb: use after free in dcb_flushapp()

The original code has a use after free bug because it's not using the
_safe() version of the list_for_each_entry() macro.

Signed-off-by: Dan Carpenter <error27@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Dan Carpenter 14 jaren geleden
bovenliggende
commit
2a8fe00374
1 gewijzigde bestanden met toevoegingen van 2 en 1 verwijderingen
  1. 2 1
      net/dcb/dcbnl.c

+ 2 - 1
net/dcb/dcbnl.c

@@ -1643,9 +1643,10 @@ EXPORT_SYMBOL(dcb_setapp);
 static void dcb_flushapp(void)
 {
 	struct dcb_app_type *app;
+	struct dcb_app_type *tmp;
 
 	spin_lock(&dcb_lock);
-	list_for_each_entry(app, &dcb_app_list, list) {
+	list_for_each_entry_safe(app, tmp, &dcb_app_list, list) {
 		list_del(&app->list);
 		kfree(app);
 	}