---
generator/lua.ml | 22 +++++++++++++++-------
generator/perl.ml | 2 +-
lua/Makefile.am | 1 +
3 files changed, 17 insertions(+), 8 deletions(-)
diff --git a/generator/lua.ml b/generator/lua.ml
index dd6aedbe9..7cfceb152 100644
--- a/generator/lua.ml
+++ b/generator/lua.ml
@@ -63,6 +63,8 @@ let generate_lua_c () =
#endif
#endif
+#include \"ignore-value.h\"
+
#include <guestfs.h>
#include \"guestfs-utils.h\"
@@ -142,6 +144,7 @@ guestfs_int_lua_create (lua_State *L)
guestfs_h *g;
struct userdata *u;
unsigned flags = 0;
+ char err[128];
if (lua_gettop (L) == 1) {
OPTARG_IF_SET (1, \"environment\",
@@ -157,9 +160,10 @@ guestfs_int_lua_create (lua_State *L)
return luaL_error (L, \"Guestfs.create: too many arguments\");
g = guestfs_create_flags (flags);
- if (!g)
- return luaL_error (L, \"Guestfs.create: cannot create handle: %%s\",
- strerror (errno));
+ if (!g) {
+ ignore_value (strerror_r (errno, err, sizeof err));
+ return luaL_error (L, \"Guestfs.create: cannot create handle: %%s\", err);
+ }
guestfs_set_error_handler (g, NULL, NULL);
@@ -226,6 +230,7 @@ error__tostring (lua_State *L)
{
int code;
const char *msg;
+ char err[128];
lua_pushliteral (L, \"code\");
lua_gettable (L, 1);
@@ -234,8 +239,10 @@ error__tostring (lua_State *L)
lua_gettable (L, 1);
msg = luaL_checkstring (L, -1);
- if (code)
- lua_pushfstring (L, \"%%s: %%s\", msg, strerror (code));
+ if (code) {
+ ignore_value (strerror_r (code, err, sizeof err));
+ lua_pushfstring (L, \"%%s: %%s\", msg, err);
+ }
else
lua_pushstring (L, msg);
@@ -640,11 +647,12 @@ get_string_list (lua_State *L, int index)
const size_t len = lua_objlen (L, index);
size_t i;
char **strs;
+ char err[128];
strs = malloc ((len+1) * sizeof (char *));
if (strs == NULL) {
- luaL_error (L, \"get_string_list: malloc failed: %%s\",
- strerror (errno));
+ ignore_value (strerror_r (errno, err, sizeof err));
+ luaL_error (L, \"get_string_list: malloc failed: %%s\", err);
/*NOTREACHED*/
return NULL;
}
diff --git a/generator/perl.ml b/generator/perl.ml
index bd7e328cd..240bf3b54 100644
--- a/generator/perl.ml
+++ b/generator/perl.ml
@@ -308,7 +308,7 @@ PREINIT:
CODE:
str = guestfs_event_to_string (event_bitmask);
if (str == NULL)
- croak (\"%%s\", strerror (errno));
+ croak (\"%%m\");
RETVAL = newSVpv (str, 0);
free (str);
OUTPUT:
diff --git a/lua/Makefile.am b/lua/Makefile.am
index f90c1d7cb..a26c0baee 100644
--- a/lua/Makefile.am
+++ b/lua/Makefile.am
@@ -41,6 +41,7 @@ libluaguestfs_la_SOURCES = lua-guestfs.c
libluaguestfs_la_CPPFLAGS = \
-DGUESTFS_PRIVATE=1 \
+ -I$(srcdir)/../gnulib/lib -I../gnulib/lib \
-I$(top_srcdir)/common/utils -I$(top_builddir)/common/utils \
-I$(top_srcdir)/lib -I$(top_builddir)/lib
--
2.13.2