zed-ts-wasm-xml/README.md
2025-09-11 05:18:15 +00:00

1.8 KiB

XML tree-sitter Grammar Wasm Crash Reproduction

For: https://github.com/tree-sitter/tree-sitter/issues/4813

Run

cargo r -- ChaoYanZeCuHeiTif-1.xml

With ~/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tree-sitter-0.25.9/src/wasm_store.c patched to enable the log messages on wasm errors

  wasmtime_error_t *error = wasmtime_func_call_unchecked(context, &func, args_and_results, args_and_results_len, &trap);
  if (error) {
    wasm_message_t message;
    wasmtime_error_message(error, &message);
    fprintf(
      stderr,
      "error in wasm module: %.*s\n",
      (int)message.size, message.data
    );
    wasmtime_error_delete(error);
    self->has_error = true;
  } else if (trap) {
    wasm_message_t message;
    wasm_trap_message(trap, &message);
    fprintf(
      stderr,
      "trap in wasm module: %.*s\n",
      (int)message.size, message.data
    );
    wasm_trap_delete(trap);
    self->has_error = true;
  }

this output is seen:

     Running `target/debug/zed-ts-wasm /home/wmoore/Work/prince/ChaoYanZeCuHeiTif-1.ttx`
trap in wasm module: error while executing at wasm backtrace:
    0:  0x649 - stdlib.wasm!memcpy
    1: 0x4900 - <unknown>!tree_sitter_xml_external_scanner_serialize

Caused by:
    wasm trap: out of bounds memory access
trap in wasm module: error while executing at wasm backtrace:
    0:  0x3a2 - stdlib.wasm!free
    1: 0x49b8 - <unknown>!tree_sitter_xml_external_scanner_deserialize

Caused by:
    0: memory fault at wasm address 0x70796c43 in linear memory of size 0x430000
    1: wasm trap: out of bounds memory access

thread 'main' panicked at src/main.rs:24:50:
unable to parse

Notes

The wasm module was generated by Zed and copied from: ~/.local/share/zed/extensions/installed/xml/grammars/xml.wasm.