Closed toco closed 2 years ago
Running it in a debugger shows that data(ADDR_ROAMING_CHANNEL_BITMAP);
in line 2475 returns a nullptr
which is then dereferenced without checking in line 2487.
Can reproduce it. I should not call virtual methods from constructors. In fact, the problem is in https://github.com/hmatuschek/qdmr/blob/a82b6a21dd4f3e9fd6d31ccfd18781a239e61a9a/lib/d868uv_codeplug.cc#L476
This calls only the D868UVCodeplug::clear()
and not the overloaded D878UVCodeplug::clear()
which allocates the roaming channel bitmap. Consequently, it gets a nullptr.
Can you build it from the master branch? It should be fixed now. I've tested it with a D878UV and it appears to work now.
Yes, I built from sources at c024348 and reading the codeplug from the radio works.
Writing fails with a verification error that can't be skipped with "Ignore verification warnings", see https://github.com/hmatuschek/qdmr/issues/245.
With qdmr built from a82b6a2 I'm hitting a 100% reproducible crash when trying to read from or write to an Anytone D878UV2.
Excerpt from crash log:
Full log: qdmr-2022-08-29-111929.ips.txt