mirror of
https://github.com/meshtastic/firmware.git
synced 2025-08-22 13:08:06 +00:00
Guard against clients setting next_hop
/relay_node
This commit is contained in:
parent
98719e4c62
commit
47116f65cd
@ -190,7 +190,9 @@ void MeshService::handleToRadio(meshtastic_MeshPacket &p)
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
p.from = 0; // We don't let phones assign nodenums to their sent messages
|
p.from = 0; // We don't let clients assign nodenums to their sent messages
|
||||||
|
p.next_hop = NO_NEXT_HOP_PREFERENCE; // We don't let clients assign next_hop to their sent messages
|
||||||
|
p.relay_node = NO_RELAY_NODE; // We don't let clients assign relay_node to their sent messages
|
||||||
|
|
||||||
if (p.id == 0)
|
if (p.id == 0)
|
||||||
p.id = generatePacketId(); // If the phone didn't supply one, then pick one
|
p.id = generatePacketId(); // If the phone didn't supply one, then pick one
|
||||||
|
@ -42,6 +42,8 @@ enum RxSource {
|
|||||||
|
|
||||||
// For old firmware or when falling back to flooding, there is no next-hop preference
|
// For old firmware or when falling back to flooding, there is no next-hop preference
|
||||||
#define NO_NEXT_HOP_PREFERENCE 0
|
#define NO_NEXT_HOP_PREFERENCE 0
|
||||||
|
// For old firmware there is no relay node set
|
||||||
|
#define NO_RELAY_NODE 0
|
||||||
|
|
||||||
typedef int ErrorCode;
|
typedef int ErrorCode;
|
||||||
|
|
||||||
|
@ -439,7 +439,7 @@ void RadioLibInterface::handleReceiveInterrupt()
|
|||||||
mp->via_mqtt = !!(radioBuffer.header.flags & PACKET_FLAGS_VIA_MQTT_MASK);
|
mp->via_mqtt = !!(radioBuffer.header.flags & PACKET_FLAGS_VIA_MQTT_MASK);
|
||||||
// If hop_start is not set, next_hop and relay_node are invalid (firmware <2.3)
|
// If hop_start is not set, next_hop and relay_node are invalid (firmware <2.3)
|
||||||
mp->next_hop = mp->hop_start == 0 ? NO_NEXT_HOP_PREFERENCE : radioBuffer.header.next_hop;
|
mp->next_hop = mp->hop_start == 0 ? NO_NEXT_HOP_PREFERENCE : radioBuffer.header.next_hop;
|
||||||
mp->relay_node = mp->hop_start == 0 ? NO_NEXT_HOP_PREFERENCE : radioBuffer.header.relay_node;
|
mp->relay_node = mp->hop_start == 0 ? NO_RELAY_NODE : radioBuffer.header.relay_node;
|
||||||
|
|
||||||
addReceiveMetadata(mp);
|
addReceiveMetadata(mp);
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user