MetaMask / rpc-errors

Ethereum RPC Errors
MIT License
157 stars 30 forks source link

React-Native crashed when try access `err.stack` #131

Open ieow opened 8 months ago

ieow commented 8 months ago

React Native app crashed when try to access stack field in the error object

in reactNative ( version 0.72.0 )

to reproduce (in react native)

    import {rpcErrors} from '@metamask/rpc-errors';

    try {
      let err = rpcErrors.invalidRequest();
      console.log(err.stack);
    } catch (error) {
      console.log(error);
    }

Accessing stack in Error class works fine

    try {
      let err = new Error("error message");
      console.log(err.stack);
    } catch (error) {
      console.log(error);
    }
LeeNorth commented 6 months ago

+1

legobeat commented 2 months ago

Assigning a potentially cyclic object directly to serialized.stack is not safe.

Suggestion: Perform explicit serialization of the stack with a max-depth of recursion, or prune the reference.