From ef306aa7cbd41486712a3183172e903be532724a Mon Sep 17 00:00:00 2001 From: "mergify[bot]" <37929162+mergify[bot]@users.noreply.github.com> Date: Fri, 1 Oct 2021 05:25:11 +0000 Subject: [PATCH] Deploy error is buffer is too small (#20358) (#20362) * Deploy error is buffer is too small * missing file (cherry picked from commit de8331eeaf1b2a7f9dbbe7347ec0a3a88ad455fd) # Conflicts: # cli/tests/fixtures/noop.so Co-authored-by: Jack May --- cli/src/program.rs | 8 +- cli/tests/fixtures/build.sh | 1 + cli/tests/fixtures/noop_large.so | Bin 0 -> 4776 bytes cli/tests/program.rs | 196 ++++++++++++++++++------------- 4 files changed, 124 insertions(+), 81 deletions(-) create mode 100644 cli/tests/fixtures/noop_large.so diff --git a/cli/src/program.rs b/cli/src/program.rs index c6b4bcc632..67e770460f 100644 --- a/cli/src/program.rs +++ b/cli/src/program.rs @@ -2018,7 +2018,13 @@ fn complete_partial_program_init( return Err("Buffer account is already executable".into()); } if account.owner != *loader_id && !system_program::check_id(&account.owner) { - return Err("Buffer account is already owned by another account".into()); + return Err("Buffer account passed is already in use by another program".into()); + } + if !account.data.is_empty() && account.data.len() < account_data_len { + return Err( + "Buffer account passed is not large enough, may have been for a different deploy?" + .into(), + ); } if account.data.is_empty() && system_program::check_id(&account.owner) { diff --git a/cli/tests/fixtures/build.sh b/cli/tests/fixtures/build.sh index 0647e54140..128297b0d8 100755 --- a/cli/tests/fixtures/build.sh +++ b/cli/tests/fixtures/build.sh @@ -5,3 +5,4 @@ cd "$(dirname "$0")" make -C ../../../programs/bpf/c/ cp ../../../programs/bpf/c/out/noop.so . +cat noop.so noop.so noop.so > noop_large.so diff --git a/cli/tests/fixtures/noop_large.so b/cli/tests/fixtures/noop_large.so new file mode 100644 index 0000000000000000000000000000000000000000..af10becf444c9d072e9fb2cc8346a571ddbd63c7 GIT binary patch literal 4776 zcmeHKv2GJV5S=)2L7)KP)aVzb;owqZd+1bp)Jx+66sK>ZJih` zLW5|Vs+8g9Dy<~CS)Tf;)3f+Vc_3Z0M22CR`-%FQ#Sd1EfR|MM*C6h%Q}%4V1$7`i z`W+r;G;rbGe>r_6@kCWnn;Q)g_mnjKlBFpBz4gKE3G z?m>yB65?R*^^2Y7Pah$uzd%{Gp)G~@};wRDnCqHFhy&tLf!#vhYO1bgHKFt2*p zUf3&5H+Ud92z%ra5Po2fd;{KQTe(tTk30q