Просмотр исходного кода

service: Fix memleak in service_unlink_and_exit

Signed-off-by: Jan Friesse <jfriesse@redhat.com>
Reviewed-by: Christine Caulfield <ccaulfie@redhat.com>
Jan Friesse 12 лет назад
Родитель
Сommit
7cba14fb61
1 измененных файлов с 2 добавлено и 1 удалено
  1. 2 1
      exec/service.c

+ 2 - 1
exec/service.c

@@ -285,13 +285,13 @@ static unsigned int service_unlink_and_exit (
 		}
 		}
 
 
 		snprintf(key_name, ICMAP_KEYNAME_MAXLEN, "internal_configuration.service.%hu.name", service_id);
 		snprintf(key_name, ICMAP_KEYNAME_MAXLEN, "internal_configuration.service.%hu.name", service_id);
-		free(found_service_name);
 		if (icmap_get_string(key_name, &found_service_name) != CS_OK) {
 		if (icmap_get_string(key_name, &found_service_name) != CS_OK) {
 			continue;
 			continue;
 		}
 		}
 
 
 		snprintf(key_name, ICMAP_KEYNAME_MAXLEN, "internal_configuration.service.%u.ver", service_id);
 		snprintf(key_name, ICMAP_KEYNAME_MAXLEN, "internal_configuration.service.%u.ver", service_id);
 		if (icmap_get_uint32(key_name, &found_service_ver) != CS_OK) {
 		if (icmap_get_uint32(key_name, &found_service_ver) != CS_OK) {
+			free(found_service_name);
 			continue;
 			continue;
 		}
 		}
 
 
@@ -300,6 +300,7 @@ static unsigned int service_unlink_and_exit (
 			service_found = 1;
 			service_found = 1;
 			break;
 			break;
 		}
 		}
+		free(found_service_name);
 	}
 	}
 	icmap_iter_finalize(iter);
 	icmap_iter_finalize(iter);