diff options
-rw-r--r-- | src/lib/ffi/ffi_util.h | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/src/lib/ffi/ffi_util.h b/src/lib/ffi/ffi_util.h index 2962b05e1..e77a2debb 100644 --- a/src/lib/ffi/ffi_util.h +++ b/src/lib/ffi/ffi_util.h @@ -82,7 +82,11 @@ int apply_fn(botan_struct<T, M>* o, const char* func_name, F func) if(o->magic_ok() == false) return BOTAN_FFI_ERROR_INVALID_OBJECT; - return ffi_guard_thunk(func_name, [&]() { return func(*o->unsafe_get()); }); + T* p = o->unsafe_get(); + if(p == nullptr) + return BOTAN_FFI_ERROR_INVALID_OBJECT; + + return ffi_guard_thunk(func_name, [&]() { return func(*p); }); } #define BOTAN_FFI_DO(T, obj, param, block) \ |