Skip to content

Commit f8c7442

Browse files
author
Michael Meskes
committed
In ecpglib restore LC_NUMERIC in case of an error.
1 parent a02e409 commit f8c7442

File tree

1 file changed

+8
-1
lines changed

1 file changed

+8
-1
lines changed

src/interfaces/ecpg/ecpglib/execute.c

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1773,8 +1773,12 @@ ECPGdo(const int lineno, const int compat, const int force_indicator, const char
17731773
*/
17741774
if (statement_type == ECPGst_prepnormal)
17751775
{
1776-
if (!ecpg_auto_prepare(lineno, connection_name, compat, &prepname, query))
1776+
if (!ecpg_auto_prepare(lineno, connection_name, compat, &prepname, query)) {
1777+
setlocale(LC_NUMERIC, oldlocale);
1778+
ecpg_free(oldlocale);
1779+
va_end(args);
17771780
return (false);
1781+
}
17781782

17791783
/*
17801784
* statement is now prepared, so instead of the query we have to
@@ -1801,6 +1805,9 @@ ECPGdo(const int lineno, const int compat, const int force_indicator, const char
18011805
else
18021806
{
18031807
ecpg_raise(lineno, ECPG_INVALID_STMT, ECPG_SQLSTATE_INVALID_SQL_STATEMENT_NAME, stmt->command);
1808+
setlocale(LC_NUMERIC, oldlocale);
1809+
ecpg_free(oldlocale);
1810+
va_end(args);
18041811
return (false);
18051812
}
18061813
}

0 commit comments

Comments
 (0)