Sfoglia il codice sorgente

runtime/db: Disallow init/lookup of zkas db.

parazyd 3 anni fa
parent
commit
7bfd17b8cf
1 ha cambiato i file con 11 aggiunte e 1 eliminazioni
  1. 11 1
      src/runtime/import/db.rs

+ 11 - 1
src/runtime/import/db.rs

@@ -30,7 +30,7 @@ use log::{debug, error, info};
 use wasmer::{FunctionEnvMut, WasmPtr};
 
 use crate::{
-    runtime::vm_runtime::{ContractSection, Env},
+    runtime::vm_runtime::{ContractSection, Env, SMART_CONTRACT_ZKAS_DB_NAME},
     zk::{empty_witnesses, VerifyingKey, ZkCircuit},
     zkas::ZkBinary,
     Result,
@@ -120,6 +120,11 @@ pub(crate) fn db_init(ctx: FunctionEnvMut<Env>, ptr: WasmPtr<u8>, len: u32) -> i
         return DB_DEL_FAILED
     }*/
 
+    if db_name == SMART_CONTRACT_ZKAS_DB_NAME {
+        error!(target: "runtime::db::db_init()", "Attempted to lookup zkas db");
+        return CALLER_ACCESS_DENIED
+    }
+
     if &cid != contract_id {
         error!(target: "runtime::db::db_init()", "Unauthorized ContractId for db_init");
         return CALLER_ACCESS_DENIED
@@ -197,6 +202,11 @@ pub(crate) fn db_lookup(ctx: FunctionEnvMut<Env>, ptr: WasmPtr<u8>, len: u32) ->
         }
     };
 
+    if db_name == SMART_CONTRACT_ZKAS_DB_NAME {
+        error!(target: "runtime::db::db_lookup()", "Attempted to lookup zkas db");
+        return CALLER_ACCESS_DENIED
+    }
+
     // Disabled until cursor_remaining feature is available on master.
     // Then enable #![feature(cursor_remaining)] in src/lib.rs
     /*if !buf_reader.is_empty() {