summaryrefslogtreecommitdiff
path: root/ext/ffi/call.rs
diff options
context:
space:
mode:
authorDivy Srivastava <dj.srivastava23@gmail.com>2023-01-21 07:51:14 -0800
committerGitHub <noreply@github.com>2023-01-21 21:21:14 +0530
commit59289255411b902588619fd7d2f6e3e48af11d82 (patch)
treea328e565abb1695e57c99538d6482f62e5008cad /ext/ffi/call.rs
parent638b6ef554676422c43cc5c0ae2285ba369740bf (diff)
fix(ext/ffi): disallow empty ffi structs (#17487)
This patch makes `NativeType` to `libffi::middle::Type` conversion failliable and w.t disallows struct with empty fields. libffi does not handle "empty" struct because they don't exist in C (or Rust). Fixes #17481
Diffstat (limited to 'ext/ffi/call.rs')
-rw-r--r--ext/ffi/call.rs4
1 files changed, 2 insertions, 2 deletions
diff --git a/ext/ffi/call.rs b/ext/ffi/call.rs
index 2cfd5cef0..731460af9 100644
--- a/ext/ffi/call.rs
+++ b/ext/ffi/call.rs
@@ -278,7 +278,7 @@ where
permissions.check(None)?;
};
- let symbol = PtrSymbol::new(pointer, &def);
+ let symbol = PtrSymbol::new(pointer, &def)?;
let call_args = ffi_parse_args(scope, parameters, &def.parameters)?;
let def_result = def.result.clone();
@@ -379,7 +379,7 @@ where
permissions.check(None)?;
};
- let symbol = PtrSymbol::new(pointer, &def);
+ let symbol = PtrSymbol::new(pointer, &def)?;
let call_args = ffi_parse_args(scope, parameters, &def.parameters)?;
let out_buffer = out_buffer