diff --git a/src/lua/mysql.cc b/src/lua/mysql.cc index 7e5cf8725806e1d85e5de1be74f730e48eb44169..64c63bc021178c850fecd5a9babbae5e3fe2bbff 100644 --- a/src/lua/mysql.cc +++ b/src/lua/mysql.cc @@ -380,9 +380,12 @@ lbox_net_mysql_connect(struct lua_State *L) } if (*mysql_error(mysql)) { - const char *estr = mysql_error(mysql); + luaL_Buffer b; + luaL_buffinit(L, &b); + luaL_addstring(&b, mysql_error(mysql)); + luaL_pushresult(&b); mysql_close(mysql); - luaL_error(L, "%s", estr); + lua_error(L); } lua_pushstring(L, "raw"); diff --git a/src/lua/pg.cc b/src/lua/pg.cc index 86e286789722c9ec343c8c70691d4d002c8fdadf..940cf75b7c041614858db78879063b9a3388fbba 100644 --- a/src/lua/pg.cc +++ b/src/lua/pg.cc @@ -396,9 +396,12 @@ lbox_net_pg_connect(struct lua_State *L) lua_pop(L, 1); if (PQstatus(conn) != CONNECTION_OK) { - const char *msg = PQerrorMessage(conn); + luaL_Buffer b; + luaL_buffinit(L, &b); + luaL_addstring(&b, PQerrorMessage(conn)); + luaL_pushresult(&b); PQfinish(conn); - luaL_error(L, "%s", msg); + lua_error(L); } lua_pushstring(L, "raw");