From: Thadeu Lima de Souza Cascardo Date: Thu, 2 Mar 2017 10:32:32 +0000 (-0300) Subject: Corrige possível utilização após liberar memória. X-Git-Url: http://git.cascardo.eti.br/?p=cascardo%2Fdeclara.git;a=commitdiff_plain;h=b3f6329ce7dabc13bf625cf14e66813a98c4f42a Corrige possível utilização após liberar memória. 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. --- 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; }