From 4b0ca087ebc71edcf278ff542fc04c84cdf971d7 Mon Sep 17 00:00:00 2001 From: ssrlive <30760636+ssrlive@users.noreply.github.com> Date: Thu, 30 May 2024 20:06:15 +0800 Subject: [PATCH] Don't play with fire --- src/android.rs | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/src/android.rs b/src/android.rs index 52d6af3..d41bb74 100644 --- a/src/android.rs +++ b/src/android.rs @@ -35,7 +35,7 @@ pub unsafe extern "C" fn Java_com_github_shadowsocks_bg_Tun2proxy_run( .with_filter(filter), ); let proxy_url = get_java_string(&mut env, &proxy_url).unwrap(); - let proxy = ArgProxy::try_from(proxy_url).unwrap(); + let proxy = ArgProxy::try_from(proxy_url.as_str()).unwrap(); let mut args = Args::default(); args.proxy(proxy).tun_fd(Some(tun_fd)).dns(dns).verbosity(verbosity); @@ -50,8 +50,6 @@ pub unsafe extern "C" fn Java_com_github_shadowsocks_bg_Tun2proxy_stop(_env: JNI crate::mobile_api::mobile_stop() } -unsafe fn get_java_string<'a>(env: &'a mut JNIEnv, string: &'a JString) -> Result<&'a str, Error> { - let str_ptr = env.get_string(string)?.as_ptr(); - let s: &str = std::ffi::CStr::from_ptr(str_ptr).to_str()?; - Ok(s) +fn get_java_string(env: &mut JNIEnv, string: &JString) -> Result { + Ok(env.get_string(string)?.into()) }