diff --git a/lib/fort.c b/lib/fort.c index 161ed28..ec1ec4e 100644 --- a/lib/fort.c +++ b/lib/fort.c @@ -1873,8 +1873,10 @@ int ft_nwrite(ft_table_t *table, size_t count, const char *cell_content, ...) for (i = 0; i < count; ++i) { const char *cell = va_arg(va, const char *); status = ft_write_impl(table, cell); - if (FT_IS_ERROR(status)) + if (FT_IS_ERROR(status)) { + va_end(va); return status; + } } va_end(va); return status; @@ -1921,8 +1923,10 @@ int ft_nwwrite(ft_table_t *table, size_t n, const wchar_t *cell_content, ...) for (i = 0; i < n; ++i) { const wchar_t *cell = va_arg(va, const wchar_t *); status = ft_wwrite_impl(table, cell); - if (FT_IS_ERROR(status)) + if (FT_IS_ERROR(status)) { + va_end(va); return status; + } } va_end(va); return status; diff --git a/src/fort_impl.c b/src/fort_impl.c index 7fad7d5..9aeecd1 100644 --- a/src/fort_impl.c +++ b/src/fort_impl.c @@ -332,8 +332,10 @@ int ft_nwrite(ft_table_t *table, size_t count, const char *cell_content, ...) for (i = 0; i < count; ++i) { const char *cell = va_arg(va, const char *); status = ft_write_impl(table, cell); - if (FT_IS_ERROR(status)) + if (FT_IS_ERROR(status)) { + va_end(va); return status; + } } va_end(va); return status; @@ -380,8 +382,10 @@ int ft_nwwrite(ft_table_t *table, size_t n, const wchar_t *cell_content, ...) for (i = 0; i < n; ++i) { const wchar_t *cell = va_arg(va, const wchar_t *); status = ft_wwrite_impl(table, cell); - if (FT_IS_ERROR(status)) + if (FT_IS_ERROR(status)) { + va_end(va); return status; + } } va_end(va); return status;