diff options
author | Justus Winter <[email protected]> | 2016-07-05 14:24:13 +0000 |
---|---|---|
committer | Justus Winter <[email protected]> | 2016-07-05 14:24:13 +0000 |
commit | f26fe4f73e8430d93c03d95a8a24fdabd078bb20 (patch) | |
tree | 903cb0cc0a63d820d355d9f05b8d543d3edbba05 | |
parent | tests/migrations: Fix distcheck. (diff) | |
download | gnupg-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.c | 10 |
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 |