Skip to content

Commit 4077814

Browse files
authored
Merge pull request #616 from CosmWasm/mergify/bp/release/2.1/pr-612
Fix unchecked flag (backport #612)
2 parents a73721f + b3c1e13 commit 4077814

File tree

2 files changed

+23
-1
lines changed

2 files changed

+23
-1
lines changed

internal/api/lib.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -100,7 +100,7 @@ func StoreCodeUnchecked(cache Cache, wasm []byte) ([]byte, error) {
100100
w := makeView(wasm)
101101
defer runtime.KeepAlive(wasm)
102102
errmsg := uninitializedUnmanagedVector()
103-
checksum, err := C.store_code(cache.ptr, w, cbool(true), cbool(true), &errmsg)
103+
checksum, err := C.store_code(cache.ptr, w, cbool(false), cbool(true), &errmsg)
104104
if err != nil {
105105
return nil, errorWithMessage(err, errmsg)
106106
}

internal/api/lib_test.go

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -186,6 +186,28 @@ func TestStoreCodeUnchecked(t *testing.T) {
186186
require.Equal(t, wasm, code)
187187
}
188188

189+
func TestStoreCodeUncheckedWorksWithInvalidWasm(t *testing.T) {
190+
cache, cleanup := withCache(t)
191+
defer cleanup()
192+
193+
wasm, err := os.ReadFile("../../testdata/hackatom.wasm")
194+
require.NoError(t, err)
195+
196+
// Look for "interface_version_8" in the wasm file and replace it with "interface_version_9".
197+
// This makes the wasm file invalid.
198+
wasm = bytes.Replace(wasm, []byte("interface_version_8"), []byte("interface_version_9"), 1)
199+
200+
// StoreCode should fail
201+
_, err = StoreCode(cache, wasm, true)
202+
require.ErrorContains(t, err, "Wasm contract has unknown interface_version_* marker export")
203+
204+
// StoreCodeUnchecked should not fail
205+
checksum, err := StoreCodeUnchecked(cache, wasm)
206+
require.NoError(t, err)
207+
expectedChecksum := sha256.Sum256(wasm)
208+
assert.Equal(t, expectedChecksum[:], checksum)
209+
}
210+
189211
func TestPin(t *testing.T) {
190212
cache, cleanup := withCache(t)
191213
defer cleanup()

0 commit comments

Comments
 (0)