diff options
author | Divy Srivastava <dj.srivastava23@gmail.com> | 2023-01-21 07:51:14 -0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-01-21 21:21:14 +0530 |
commit | 59289255411b902588619fd7d2f6e3e48af11d82 (patch) | |
tree | a328e565abb1695e57c99538d6482f62e5008cad /ext/ffi/call.rs | |
parent | 638b6ef554676422c43cc5c0ae2285ba369740bf (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.rs | 4 |
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 |