• Shawn Tabrizi's avatar
    Harden XCM v1 for Recursions (#3586) · 659911f6
    Shawn Tabrizi authored
    
    
    * Guard against XCM recursive bombs by setting a recursion limit
    
    * Add test and set a lower recursion limit
    
    * Use u32 instead of usize for recursion limit
    
    * Make spellcheck happy
    
    * Cargo fmt
    
    * Limit XCM decoding depth in UMP message processing
    
    * Modify test to check for recursion in BuyExecution
    
    * Update xcm/xcm-simulator/example/src/lib.rs
    Co-authored-by: default avatarKian Paimani <5588131+kianenigma@users.noreply.github.com>
    
    * Make cargo fmt happy
    
    * WIP for testing recursion limit in WASM
    
    * Revert "WIP for testing recursion limit in WASM"
    
    This reverts commit 39181b46
    
    .
    
    * Remove XCM recursion limit test
    
    * Add recursion test for XCM message execution
    
    * Set a more sensible recursion limit
    
    * Cargo fmt
    
    * Implement successful_origin for benchmarks
    
    * Set recursion limit to 8 and create integration tests directory for xcm-executor
    
    * Cargo fmt
    
    * Add runtime-benchmarks feature to test-runtime
    
    * Give up creating ConvertOriginToLocal and use EnsureXcm
    
    * Re-add ConvertOriginToLocal
    
    * Fix compilation
    
    * Update xcm/xcm-executor/src/lib.rs
    Co-authored-by: default avatarGavin Wood <gavin@parity.io>
    
    * Add decoding limit to all versioned XCM decode calls
    
    * Fix recursion limit test
    
    * Set a lower recursion count for recursion test
    
    * move integration tests to their own folder, fix recursion check in execute_effects
    
    * Remove xcm-executor integration tests directory
    
    * fix up
    
    * Update Cargo.lock
    
    * Update runtime/parachains/src/ump.rs
    
    * use proper decode limit
    
    * fix decode depth limit
    
    * here too
    
    * Update traits.rs
    
    * fix compile
    
    * fix test
    
    * Revert `decode_all_with_depth_limit` changes in parachain.rs
    
    * Remove unused imports in parachain.rs
    Co-authored-by: Keith Yeung's avatarKeith Yeung <kungfukeith11@gmail.com>
    Co-authored-by: default avatarKian Paimani <5588131+kianenigma@users.noreply.github.com>
    Co-authored-by: default avatarBastian Köcher <info@kchr.de>
    Co-authored-by: default avatarGavin Wood <gavin@parity.io>
    659911f6