From b4d765b130d7306fd496a4c449b6eae403173be8 Mon Sep 17 00:00:00 2001 From: Harshit sharma <79695575+HarshitSharma007@users.noreply.github.com> Date: Fri, 24 Feb 2023 20:35:46 +0530 Subject: [PATCH] Allow return data length >= 32 in SignatureChecker (#4038) Co-authored-by: Francisco Giordano --- .changeset/warm-masks-obey.md | 5 +++++ contracts/utils/cryptography/SignatureChecker.sol | 2 +- 2 files changed, 6 insertions(+), 1 deletion(-) create mode 100644 .changeset/warm-masks-obey.md diff --git a/.changeset/warm-masks-obey.md b/.changeset/warm-masks-obey.md new file mode 100644 index 000000000..3bcfa9bdd --- /dev/null +++ b/.changeset/warm-masks-obey.md @@ -0,0 +1,5 @@ +--- +'openzeppelin-solidity': minor +--- + +`SignatureChecker`: Allow return data length greater than 32 from EIP-1271 signers. diff --git a/contracts/utils/cryptography/SignatureChecker.sol b/contracts/utils/cryptography/SignatureChecker.sol index c3a724dd0..b81cf40be 100644 --- a/contracts/utils/cryptography/SignatureChecker.sol +++ b/contracts/utils/cryptography/SignatureChecker.sol @@ -44,7 +44,7 @@ library SignatureChecker { abi.encodeWithSelector(IERC1271.isValidSignature.selector, hash, signature) ); return (success && - result.length == 32 && + result.length >= 32 && abi.decode(result, (bytes32)) == bytes32(IERC1271.isValidSignature.selector)); } }