From c7130c76e4f9107df5e3ccf90e1165ddfa3d6e1e Mon Sep 17 00:00:00 2001 From: Tom Pointon Date: Wed, 4 May 2022 08:44:19 +0000 Subject: [PATCH 1/2] Improve accuracy of rent exemption check --- program/src/oracle/oracle.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/program/src/oracle/oracle.c b/program/src/oracle/oracle.c index c8f10c57f..1256ed669 100644 --- a/program/src/oracle/oracle.c +++ b/program/src/oracle/oracle.c @@ -43,7 +43,7 @@ static bool valid_signable_account( SolParameters *prm, ka->is_writable && SolPubkey_same( ka->owner, prm->program_id ) && ka->data_len >= dlen && - is_rent_exempt( *ka->lamports, dlen ); + is_rent_exempt( *ka->lamports, ka->data_len ); } static bool valid_writable_account( SolParameters *prm, @@ -53,7 +53,7 @@ static bool valid_writable_account( SolParameters *prm, return ka->is_writable && SolPubkey_same( ka->owner, prm->program_id ) && ka->data_len >= dlen && - is_rent_exempt( *ka->lamports, dlen ); + is_rent_exempt( *ka->lamports, ka->data_len ); } static uint64_t init_mapping( SolParameters *prm, SolAccountInfo *ka ) From 8bc60894c28d0ad60cb27f451fa08730261df8dc Mon Sep 17 00:00:00 2001 From: Tom Pointon Date: Wed, 4 May 2022 08:46:08 +0000 Subject: [PATCH 2/2] Rename dlen parameter to be more descriptive --- program/src/oracle/oracle.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/program/src/oracle/oracle.c b/program/src/oracle/oracle.c index 1256ed669..c8088faf2 100644 --- a/program/src/oracle/oracle.c +++ b/program/src/oracle/oracle.c @@ -37,22 +37,22 @@ static bool valid_funding_account( SolAccountInfo *ka ) static bool valid_signable_account( SolParameters *prm, SolAccountInfo *ka, - uint64_t dlen ) + uint64_t min_dlen ) { return ka->is_signer && ka->is_writable && SolPubkey_same( ka->owner, prm->program_id ) && - ka->data_len >= dlen && + ka->data_len >= min_dlen && is_rent_exempt( *ka->lamports, ka->data_len ); } static bool valid_writable_account( SolParameters *prm, SolAccountInfo *ka, - uint64_t dlen ) + uint64_t min_dlen ) { return ka->is_writable && SolPubkey_same( ka->owner, prm->program_id ) && - ka->data_len >= dlen && + ka->data_len >= min_dlen && is_rent_exempt( *ka->lamports, ka->data_len ); }