From 4b48a09a9563f62722977b8c7ef887e7a800b4e0 Mon Sep 17 00:00:00 2001 From: Brenton Bostick Date: Thu, 2 Feb 2023 11:34:18 -0500 Subject: [PATCH] fix ANDROID-38: stack corruption in onSendPacketRequested --- java/jni/com_zerotierone_sdk_Node.cpp | 4 ++-- java/src/com/zerotier/sdk/PacketSender.java | 1 + 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/java/jni/com_zerotierone_sdk_Node.cpp b/java/jni/com_zerotierone_sdk_Node.cpp index 27f137ef1..d25b6adb4 100644 --- a/java/jni/com_zerotierone_sdk_Node.cpp +++ b/java/jni/com_zerotierone_sdk_Node.cpp @@ -402,7 +402,7 @@ namespace { unsigned int bufferSize, unsigned int ttl) { - LOGV("WirePacketSendFunction(%lld, %p, %p, %d)", (long long)localSocket, remoteAddress, buffer, bufferSize); + LOGV("WirePacketSendFunction(%lld, %p, %p, %d, %u)", (long long)localSocket, remoteAddress, buffer, bufferSize, ttl); JniRef *ref = (JniRef*)userData; assert(ref->node == node); @@ -428,7 +428,7 @@ namespace { return -102; } - int retval = env->CallIntMethod(ref->packetSender, PacketSender_onSendPacketRequested_method, localSocket, remoteAddressObj, bufferObj); + int retval = env->CallIntMethod(ref->packetSender, PacketSender_onSendPacketRequested_method, localSocket, remoteAddressObj, bufferObj, 0); LOGV("JNI Packet Sender returned: %d", retval); return retval; diff --git a/java/src/com/zerotier/sdk/PacketSender.java b/java/src/com/zerotier/sdk/PacketSender.java index 1a4d4524e..a845ac4a3 100644 --- a/java/src/com/zerotier/sdk/PacketSender.java +++ b/java/src/com/zerotier/sdk/PacketSender.java @@ -42,6 +42,7 @@ public interface PacketSender { * @param localSocket socket file descriptor to send from. Set to -1 if not specified. * @param remoteAddr {@link InetSocketAddress} to send to * @param packetData data to send + * @param ttl TTL is ignored * @return 0 on success, any error code on failure. */ public int onSendPacketRequested(