projects
/
ldk-java
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
567db06
)
Handle LDKStr in other structs and fix string conversion overread
author
Matt Corallo
<git@bluematt.me>
Sat, 1 May 2021 00:01:33 +0000
(
00:01
+0000)
committer
Matt Corallo
<git@bluematt.me>
Sat, 1 May 2021 00:11:31 +0000
(
00:11
+0000)
genbindings.py
patch
|
blob
|
history
java_strings.py
patch
|
blob
|
history
diff --git
a/genbindings.py
b/genbindings.py
index 4b5ef5dc8bdc96e1de0ff0b85cada71bbb4fe413..3d5bac974c5b563cd50d1d84dfe3d6d2b5199f59 100755
(executable)
--- a/
genbindings.py
+++ b/
genbindings.py
@@
-260,6
+260,7
@@
def java_c_types(fn_arg, ret_arr_len):
fn_ty_arg = "Ljava/lang/String;"
fn_arg = fn_arg[6:].strip()
elif fn_arg.startswith("LDKStr"):
fn_ty_arg = "Ljava/lang/String;"
fn_arg = fn_arg[6:].strip()
elif fn_arg.startswith("LDKStr"):
+ rust_obj = "LDKStr"
java_ty = "String"
c_ty = "jstring"
fn_ty_arg = "Ljava/lang/String;"
java_ty = "String"
c_ty = "jstring"
fn_ty_arg = "Ljava/lang/String;"
diff --git
a/java_strings.py
b/java_strings.py
index 0c86200e9a1535ec378ad0436374ccadbae62deb..43265f449c2359ebc14d7bcbf803a0f43a0e2d0a 100644
(file)
--- a/
java_strings.py
+++ b/
java_strings.py
@@
-309,12
+309,12
@@
typedef jbyteArray int8_tArray;
static inline jstring str_ref_to_java(JNIEnv *env, const char* chars, size_t len) {
// Sadly we need to create a temporary because Java can't accept a char* without a 0-terminator
static inline jstring str_ref_to_java(JNIEnv *env, const char* chars, size_t len) {
// Sadly we need to create a temporary because Java can't accept a char* without a 0-terminator
- char*
err
_buf = MALLOC(len + 1, "str conv buf");
- memcpy(
err
_buf, chars, len);
-
err
_buf[len] = 0;
- jstring
err_conv = (*env)->NewStringUTF(env, chars
);
- FREE(
err
_buf);
- return
err_conv
;
+ char*
conv
_buf = MALLOC(len + 1, "str conv buf");
+ memcpy(
conv
_buf, chars, len);
+
conv
_buf[len] = 0;
+ jstring
ret = (*env)->NewStringUTF(env, conv_buf
);
+ FREE(
conv
_buf);
+ return
ret
;
}
static inline LDKStr java_to_owned_str(JNIEnv *env, jstring str) {
uint64_t str_len = (*env)->GetStringUTFLength(env, str);
}
static inline LDKStr java_to_owned_str(JNIEnv *env, jstring str) {
uint64_t str_len = (*env)->GetStringUTFLength(env, str);