From b3f6329ce7dabc13bf625cf14e66813a98c4f42a Mon Sep 17 00:00:00 2001 From: Thadeu Lima de Souza Cascardo Date: Thu, 2 Mar 2017 07:32:32 -0300 Subject: [PATCH] =?utf8?q?Corrige=20poss=C3=ADvel=20utiliza=C3=A7=C3=A3o?= =?utf8?q?=20ap=C3=B3s=20liberar=20mem=C3=B3ria.?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Se um erro ocorre ao atualizar os totais dos rendimentos isentos ou exclusivos, liberamos a estrutura, mas não a removemos da lista. A adição à lista deve ser a última ação, para prevenir tais erros. --- lib/isento.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/lib/isento.c b/lib/isento.c index 25512f1..fd8f925 100644 --- a/lib/isento.c +++ b/lib/isento.c @@ -151,13 +151,13 @@ static int run_isento(struct declaracao *dec, char **args, int argc) isento_free(isento); return -EINVAL; } - r = list_insert_ordered(&dec->isentos, isento, isento_cmp); - if (r < 0) { + r = isento_totais_update(dec, isento); + if (r) { isento_free(isento); return r; } - r = isento_totais_update(dec, isento); - if (r) { + r = list_insert_ordered(&dec->isentos, isento, isento_cmp); + if (r < 0) { isento_free(isento); return r; } -- 2.20.1