Changeset 11124 in ntrip for trunk/BNC/tests/README.md


Ignore:
Timestamp:
Oct 24, 2026, 10:10:29 PM (4 days ago)
Author:
stuerze
Message:

Some fixes regarding memory corruption from stream data, credential exposure,

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/BNC/tests/README.md

    r11087 r11124  
    2828| `tools/fakecaster.py` | local Ntrip caster recording an upload as a BNC raw file (case key `fakecaster`) |
    2929| `tools/bncraw.py` | `info` (streams, time span, RTCM3 message types) and `slice` for raw captures |
     30| `tools/mkcrafted.py` | writes `data/crafted_limits.raw`: crafted frames at the upper field limits |
     31| `tools/ssr_harness.sh` | builds `tools/ssr_harness.cpp` with the SSR decoders under ASan/UBSan and runs it |
    3032| `work/` | scratch output, not versioned |
    3133
    … …  
    9092  'QC Bias File' (code bias check against the other ACs and the file).
    9193
     94* `decoder_limits`: crafted, CRC-valid frames from `tools/mkcrafted.py`
     95  using the largest values the formats allow: VTEC with degree/order 16
     96  (IGS-SSR 4076/201 and RTCM-SSR 1264, 2 and 4 layers) and RTCM 1300/1301/1302
     97  with 31-character names, listed by the RTCM scan in the log. The
     98  coefficients are C(d,o) = (100*d+o)/200 TECU and S = -C, both `.ssr` files
     99  are identical apart from the station ID. These frames overflowed the
     100  coefficient and name arrays; the 4-layer VTEC crashed BNC.
     101
     102## Sanitizer check of the SSR decoders
     103
     104```
     105tests/tools/ssr_harness.sh            # crafted_limits.raw
     106tests/tools/ssr_harness.sh tests/data/*.raw   # real captures
     107```
     108
     109In BNC all SSR target structs are members of one `RTCM3coDecoder` object,
     110so a write beyond one struct corrupts the next member without any
     111AddressSanitizer report. The harness decodes every frame with all three
     112format classes into separately allocated structs, so ASan reports it. It
     113also covers the new RTCM-SSR metadata (message 60 in
     114`crafted_limits.raw`: 7 entries with additional parameters of 40 and 0 bits,
     115and 31 entries, which must be rejected), which `RTCM3Decoder.cpp` does not
     116dispatch at present. Exit code 0 only without sanitizer errors.
     117
    92118## Adding a replay case
    93119
Note: See TracChangeset for help on using the changeset viewer.