aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJustus Winter <[email protected]>2016-07-05 14:24:13 +0000
committerJustus Winter <[email protected]>2016-07-05 14:24:13 +0000
commitf26fe4f73e8430d93c03d95a8a24fdabd078bb20 (patch)
tree903cb0cc0a63d820d355d9f05b8d543d3edbba05
parenttests/migrations: Fix distcheck. (diff)
downloadgnupg-f26fe4f73e8430d93c03d95a8a24fdabd078bb20.tar.gz
gnupg-f26fe4f73e8430d93c03d95a8a24fdabd078bb20.zip
gpgscm: Improve robustness and compatibility.
* tests/gpgscm/ffi.c (do_getenv): Avoid gccism. (do_mkdtemp): Handle errors. Signed-off-by: Justus Winter <[email protected]>
-rw-r--r--tests/gpgscm/ffi.c10
1 files changed, 8 insertions, 2 deletions
diff --git a/tests/gpgscm/ffi.c b/tests/gpgscm/ffi.c
index acfe1c715..21beb7609 100644
--- a/tests/gpgscm/ffi.c
+++ b/tests/gpgscm/ffi.c
@@ -219,9 +219,11 @@ do_getenv (scheme *sc, pointer args)
{
FFI_PROLOG ();
char *name;
+ char *value;
FFI_ARG_OR_RETURN (sc, char *, name, string, args);
FFI_ARGS_DONE_OR_RETURN (sc, args);
- FFI_RETURN_STRING (sc, getenv (name) ?: "");
+ value = getenv (name);
+ FFI_RETURN_STRING (sc, value ? value : "");
}
static pointer
@@ -313,6 +315,7 @@ do_mkdtemp (scheme *sc, pointer args)
FFI_PROLOG ();
char *template;
char buffer[128];
+ char *name;
FFI_ARG_OR_RETURN (sc, char *, template, string, args);
FFI_ARGS_DONE_OR_RETURN (sc, args);
@@ -320,7 +323,10 @@ do_mkdtemp (scheme *sc, pointer args)
FFI_RETURN_ERR (sc, EINVAL);
strncpy (buffer, template, sizeof buffer);
- FFI_RETURN_STRING (sc, gnupg_mkdtemp (buffer));
+ name = gnupg_mkdtemp (buffer);
+ if (name == NULL)
+ FFI_RETURN_ERR (sc, gpg_error_from_syserror ());
+ FFI_RETURN_STRING (sc, name);
}
static pointer