Skip to content

Commit 5e2c684

Browse files
authored
Merge pull request #613 from CosmWasm/mergify/bp/release/2.2/pr-612
Fix unchecked flag (backport #612)
2 parents 15b35eb + 4f11d5a commit 5e2c684

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
@@ -101,7 +101,7 @@ func StoreCodeUnchecked(cache Cache, wasm []byte) ([]byte, error) {
101101
w := makeView(wasm)
102102
defer runtime.KeepAlive(wasm)
103103
errmsg := uninitializedUnmanagedVector()
104-
checksum, err := C.store_code(cache.ptr, w, cbool(true), cbool(true), &errmsg)
104+
checksum, err := C.store_code(cache.ptr, w, cbool(false), cbool(true), &errmsg)
105105
if err != nil {
106106
return nil, errorWithMessage(err, errmsg)
107107
}

internal/api/lib_test.go

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

277+
func TestStoreCodeUncheckedWorksWithInvalidWasm(t *testing.T) {
278+
cache, cleanup := withCache(t)
279+
defer cleanup()
280+
281+
wasm, err := os.ReadFile("../../testdata/hackatom.wasm")
282+
require.NoError(t, err)
283+
284+
// Look for "interface_version_8" in the wasm file and replace it with "interface_version_9".
285+
// This makes the wasm file invalid.
286+
wasm = bytes.Replace(wasm, []byte("interface_version_8"), []byte("interface_version_9"), 1)
287+
288+
// StoreCode should fail
289+
_, err = StoreCode(cache, wasm, true)
290+
require.ErrorContains(t, err, "Wasm contract has unknown interface_version_* marker export")
291+
292+
// StoreCodeUnchecked should not fail
293+
checksum, err := StoreCodeUnchecked(cache, wasm)
294+
require.NoError(t, err)
295+
expectedChecksum := sha256.Sum256(wasm)
296+
assert.Equal(t, expectedChecksum[:], checksum)
297+
}
298+
277299
func TestPin(t *testing.T) {
278300
cache, cleanup := withCache(t)
279301
defer cleanup()

0 commit comments

Comments
 (0)