Commit graph

3115 commits

Author SHA1 Message Date
adrian
4ff3bbf766 DMR trunking patches 2026-04-18 11:58:50 +03:00
Jonathan Naylor
b5b119fa8e Fix the D-Star slow data processing. 2026-04-17 12:44:32 +01:00
Jonathan Naylor
47467bd880 Mostly fixes for D-Star logging. 2026-04-16 13:48:18 +01:00
Jonathan Naylor
be804801ac Update the documentation to reflect the current state of the software. 2026-04-07 12:57:38 +01:00
Jonathan Naylor
5da5c46e04 Bump the version date. 2026-04-07 12:47:30 +01:00
Jonathan Naylor
9cfd474607
Merge pull request #869 from BeigeBox/fix/fm-rssi-offset
Fix FM RSSI reading tag byte instead of RSSI data
2026-04-07 12:43:34 +01:00
Jonathan Naylor
d5408505c5
Merge pull request #879 from hamclub/fix-p25-pr853
Fix P25 bug introduced by PR #853
2026-04-07 12:31:52 +01:00
Shawn
8fe1c551eb Fix P25 bug introduced by PR #853 with following changes - Fix CP25Data::encodeTSDU() with P25_LCF_GROUP/P25_LCF_GRP_VCH_GRANT
- FIx P25Control P25_LCF_GROUP handling with P25_LCF_GRP_VCH_GRANT as LCF value.
2026-04-07 19:11:09 +08:00
Jonathan Naylor
3ba965ed7e Superficial code change to match a recent PR. 2026-04-06 20:06:40 +01:00
Jonathan Naylor
b2847c8f9b
Merge pull request #875 from BeigeBox/fix/fm-audio-scaling
Fix FM network audio scaling mismatch
2026-04-06 19:54:38 +01:00
Jonathan Naylor
58d06b4e6a
Merge pull request #877 from BeigeBox/fix/writeserial-overflow
Add bounds check in writeSerial to prevent buffer overflow
2026-04-06 19:53:54 +01:00
Jonathan Naylor
a18299a0b3
Merge pull request #873 from BeigeBox/fix/dstar-rssi
Fix D-Star RSSI variable shadowing and double-counting
2026-04-06 19:53:08 +01:00
Jonathan Naylor
b269363cdc
Merge pull request #870 from BeigeBox/fix/watchdog-div-zero
Fix division by zero on network watchdog expiry
2026-04-06 19:51:50 +01:00
Jonathan Naylor
52725d420d
Merge pull request #871 from BeigeBox/fix/nxdn-layer3-overflow
Fix heap buffer overflow in NXDN Layer3 data handling
2026-04-06 19:49:50 +01:00
Jonathan Naylor
f3710b25c6
Merge pull request #876 from BeigeBox/fix/remotecontrol-format-string
Fix format string vulnerability in remote command logging
2026-04-06 19:49:06 +01:00
Jonathan Naylor
e0cafb34e6
Merge pull request #874 from BeigeBox/fix/writeipinfo-overflow
Fix stack buffer overflow in writeIPInfo for IPv6 addresses
2026-04-06 19:48:05 +01:00
Jonathan Naylor
f401fd9623
Merge pull request #867 from BeigeBox/fix/dmr-shortlc-shift
Fix wrong shift direction in DMR Short LC encoding
2026-04-06 19:47:25 +01:00
Jonathan Naylor
66934b920f
Merge pull request #872 from BeigeBox/fix/dmrta-bit-mask
Fix 7-bit Talker Alias decode bit extraction
2026-04-06 19:30:47 +01:00
Jonathan Naylor
1b4ac54700
Merge pull request #868 from BeigeBox/fix/p25-mode-constant
Fix writeP25Info sending MODE_DMR instead of MODE_P25
2026-04-06 19:29:46 +01:00
Ember
fa4c54a259 Fix format string vulnerability in remote command logging 2026-04-05 17:59:43 -07:00
Ember
2ce56123e7 Add bounds check in writeSerial to prevent buffer overflow 2026-04-05 17:59:42 -07:00
Ember
8d618c0f6b Fix wrong shift direction in DMR Short LC encoding 2026-04-05 17:48:36 -07:00
Ember
f79cd11b78 Fix division by zero on network watchdog expiry 2026-04-05 17:48:35 -07:00
Ember
8b3519db66 Fix FM network audio scaling mismatch 2026-04-05 17:48:34 -07:00
Ember
c280631bb7 Fix D-Star RSSI variable shadowing and double-counting 2026-04-05 17:48:33 -07:00
Ember
9d236515ab Fix FM RSSI reading tag byte instead of RSSI data 2026-04-05 17:48:32 -07:00
Ember
768a6a0bc0 Fix stack buffer overflow in writeIPInfo for IPv6 addresses 2026-04-05 17:48:30 -07:00
Ember
654216e7fb Fix writeP25Info sending MODE_DMR instead of MODE_P25 2026-04-05 17:48:29 -07:00
Ember
89b0b7637a Fix 7-bit Talker Alias decode bit extraction 2026-04-05 17:48:27 -07:00
Ember
50c6531484 Fix heap buffer overflow in NXDN Layer3 data handling 2026-04-05 17:48:24 -07:00
Jonathan Naylor
a2309124c7
Merge pull request #866 from BeigeBox/fix/fm-writestart-overflow
Fix stack buffer overflow in FMNetwork::writeStart()
2026-04-05 16:22:20 +01:00
Jonathan Naylor
2ba4ef9e34
Merge pull request #865 from BeigeBox/fix/p25-tsdu-fallthrough
Fix missing break in P25 GROUP TSDU encoding
2026-04-05 16:21:45 +01:00
Jonathan Naylor
80e5c57360
Merge pull request #864 from BeigeBox/fix/mqtt-double-free
Fix double-free of MQTT connection on shutdown
2026-04-05 16:21:09 +01:00
Jonathan Naylor
134f0daafd
Merge pull request #863 from m0vse/master
Update to use C++17 and fix compile warnings.
2026-04-05 16:20:00 +01:00
Ember
8ab1c41846 Fix double-free of MQTT connection on shutdown 2026-04-04 16:54:29 -07:00
Ember
a4a121977f Fix stack buffer overflow in FMNetwork::writeStart() 2026-04-04 16:54:28 -07:00
Ember
c8bcece8c4 Fix missing break in P25 GROUP TSDU encoding 2026-04-04 16:54:16 -07:00
Phil Taylor
aab07f3c78
Merge branch 'g4klx:master' into master 2026-04-04 23:34:34 +01:00
Jonathan Naylor
49efab54ba Add some extra logging and update the copyright message. 2026-04-02 15:15:25 +01:00
Phil Taylor (M0VSE)
e8da67df83 Update to use C++17 2026-03-28 20:04:26 +00:00
Jonathan Naylor
c8625f7664 Move the JSON CW Id indication to be a message not a mode. 2026-03-23 13:26:41 +00:00
Jonathan Naylor
e15578e31d
Merge pull request #861 from nivex/rfc3339
create timestamps in rfc3339 format
2026-03-23 12:45:57 +00:00
Nivex
6ac2f99f7c
create timestamps in rfc3339 format 2026-03-22 15:17:21 -04:00
Jonathan Naylor
67aafc9db3
Merge pull request #858 from MW0MWZ/fix/json-always-emit-source-info
Always emit source_info and reflector fields in JSON output
2026-03-17 16:00:56 +00:00
Andy Taylor
9b8a6c1e2c Always emit source_info and reflector fields in JSON output
Several JSON message builders conditionally omit fields when their
values are empty or null:
 - DMRSlot, P25Control, NXDNControl: source_info omitted when the
   callsign/ID lookup returns an empty string
 - DStarControl: reflector omitted in RF start messages and when
   the reflector pointer is null in network start messages
 - YSFControl: reflector omitted in RF start messages

Downstream consumers (such as Display-Driver) that access these
fields via nlohmann::json const operator[] crash with an assertion
failure when the key is absent.

Always emit these fields with an empty string default so that the
JSON schema is consistent regardless of lookup results or message
source.
2026-03-17 15:04:54 +00:00
Jonathan Naylor
10680f51a5 Improve the build options and remove libsamplerate, it's not needed. 2026-03-11 13:15:00 +00:00
Jonathan Naylor
81e16b87f4 Rename MMDVM.ini to MMDVMHost.ini 2026-03-10 14:52:12 +00:00
Jonathan Naylor
ed6c28c0c1
Merge pull request #856 from MW0MWZ/fix/mqtt-client-id
Fix MQTT client ID collision on 32-bit ARM userland
2026-03-08 15:16:08 +00:00
Andy Taylor
469306ff1f Add mosquitto_loop_stop before mosquitto_destroy in close()
The background network thread started by mosquitto_loop_start() was not
being stopped before mosquitto_destroy(), which can cause a use-after-free
if the thread is still running when the mosquitto structure is freed.
2026-03-08 14:16:34 +00:00
Andy Taylor
8efcac05e6 Fix MQTT client ID collision on ARM 32-bit userland with 64-bit kernel
The MQTT client ID was generated using sprintf with %ld and time(nullptr).
On platforms with 32-bit userland but 64-bit kernel (such as Raspberry Pi OS
and some custom Alpine Linux builds), time_t is a 64-bit long long but %ld
only reads 32 bits. Since the upper 32 bits of the current Unix timestamp
are zero, this always produces "MMDVMHost.0", causing client ID collisions
when multiple instances or restarts occur.

Replace time()-based client IDs with PID-based IDs using getpid(), which is
always a 32-bit value and unique per process. Platform-guarded for Windows
(_getpid) and POSIX (getpid).
2026-03-08 12:49:26 +00:00