Pārlūkot izejas kodu

u-a: Fix memory leak in alternative_config_all()

Warned-by: coverity
Guillem Jover 10 gadi atpakaļ
vecāks
revīzija
de6b7323ff
1 mainītis faili ar 3 papildinājumiem un 1 dzēšanām
  1. 3 1
      utils/update-alternatives.c

+ 3 - 1
utils/update-alternatives.c

@@ -1583,7 +1583,7 @@ alternative_select_choice(struct alternative *a)
 		}
 		selection[strlen(selection) - 1] = '\0';
 		if (strlen(selection) == 0)
-			return current;
+			return xstrdup(current);
 		errno = 0;
 		idx = strtol(selection, &ret, 10);
 		if (idx < 0 || errno != 0)
@@ -2306,6 +2306,8 @@ alternative_config_all(void)
 		new_choice = alternative_config(am->item, current_choice);
 
 		alternative_update(am->item, current_choice, new_choice);
+
+		free(new_choice);
 	}
 
 	alternative_map_free(alt_map_obj);