From 1391c86c37d662017c7a634a79d48af57580bd2d Mon Sep 17 00:00:00 2001 From: Daniel Lenski Date: Sun, 5 Aug 2018 16:05:06 -0700 Subject: [PATCH] fix segfault in Java library test application calling the Java method setCSDWrapper(String wrapper, String TMPDIR, String PATH) with null TMPDIR and PATH would cause a segfault because openconnect_set_csd_wrapper(vpninfo, name, value) requires a non-NULL value --- jni.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/jni.c b/jni.c index 45861366..c377a5cf 100644 --- a/jni.c +++ b/jni.c @@ -879,8 +879,8 @@ JNIEXPORT void JNICALL Java_org_infradead_libopenconnect_LibOpenConnect_setCSDWr !get_cstring(ctx->jenv, jarg2, &arg2)) { openconnect_setup_csd(ctx->vpninfo, getuid(), 1, arg0); - openconnect_set_csd_environ(ctx->vpninfo, "TMPDIR", arg1); - openconnect_set_csd_environ(ctx->vpninfo, "PATH", arg2); + if (arg1) openconnect_set_csd_environ(ctx->vpninfo, "TMPDIR", arg1); + if (arg2) openconnect_set_csd_environ(ctx->vpninfo, "PATH", arg2); } release_cstring(ctx->jenv, jarg0, arg0); @@ -1405,7 +1405,7 @@ JNIEXPORT jobjectArray JNICALL Java_org_infradead_libopenconnect_LibOpenConnect_ { jmethodID mid; jobjectArray result; - struct libctx ctx = { .jenv = jenv, .jobj = NULL, .async_lock = NULL, vpninfo = -1, loglevel = -1 }; + struct libctx ctx = { .jenv = jenv, .jobj = NULL, .async_lock = NULL, .vpninfo = NULL, .cmd_fd = -1, .loglevel = -1 }; /* call C library */ struct oc_vpn_proto *protos;