diff options
author | Lang Hames <lhames@gmail.com> | 2018-11-20 01:01:26 +0000 |
---|---|---|
committer | Lang Hames <lhames@gmail.com> | 2018-11-20 01:01:26 +0000 |
commit | a4d5b34f73e4cde7dec3193157285be5de846e74 (patch) | |
tree | f17271a1d538eef082eaab4f23e8ebddc0969c50 /llvm/lib/ExecutionEngine | |
parent | ba02cb58cf2ae104e6cf2c8b3d51e70cc027a470 (diff) | |
download | bcm5719-llvm-a4d5b34f73e4cde7dec3193157285be5de846e74.tar.gz bcm5719-llvm-a4d5b34f73e4cde7dec3193157285be5de846e74.zip |
[ExecutionEngine][Interpreter] Fix out-of-bounds array access.
If args is empty then accesing element 0 is illegal.
https://reviews.llvm.org/D53556
Patch by Eugene Sharygin. Thanks Eugene!
llvm-svn: 347281
Diffstat (limited to 'llvm/lib/ExecutionEngine')
-rw-r--r-- | llvm/lib/ExecutionEngine/Interpreter/ExternalFunctions.cpp | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/llvm/lib/ExecutionEngine/Interpreter/ExternalFunctions.cpp b/llvm/lib/ExecutionEngine/Interpreter/ExternalFunctions.cpp index 64dca930722..044d9b7f27a 100644 --- a/llvm/lib/ExecutionEngine/Interpreter/ExternalFunctions.cpp +++ b/llvm/lib/ExecutionEngine/Interpreter/ExternalFunctions.cpp @@ -227,7 +227,8 @@ static bool ffiInvoke(RawFunc Fn, Function *F, ArrayRef<GenericValue> ArgVals, Type *RetTy = FTy->getReturnType(); ffi_type *rtype = ffiTypeFor(RetTy); - if (ffi_prep_cif(&cif, FFI_DEFAULT_ABI, NumArgs, rtype, &args[0]) == FFI_OK) { + if (ffi_prep_cif(&cif, FFI_DEFAULT_ABI, NumArgs, rtype, args.data()) == + FFI_OK) { SmallVector<uint8_t, 128> ret; if (RetTy->getTypeID() != Type::VoidTyID) ret.resize(TD.getTypeStoreSize(RetTy)); |