Skip to content

Commit

Permalink
fix(plc4go/plc4xpcapanalyzer): fixed bug with payload replacement wit…
Browse files Browse the repository at this point in the history
…h equal length arrays
  • Loading branch information
sruehl committed Jul 21, 2022
1 parent e90fdc6 commit a20c3b2
Showing 1 changed file with 5 additions and 6 deletions.
11 changes: 5 additions & 6 deletions plc4go/tools/plc4xpcapanalyzer/internal/cbusanalyzer/analyzer.go
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,7 @@ import (
"github.com/pkg/errors"
"github.com/rs/zerolog/log"
"net"
"reflect"
)

type Analyzer struct {
Expand Down Expand Up @@ -295,11 +296,8 @@ func (a *Analyzer) MapPackets(in chan gopacket.Packet, packetInformationCreator
a.mappedPacketChan = make(chan gopacket.Packet)
go func() {
defer close(a.mappedPacketChan)
currentPackageNum := uint(0)
currentPackageNum++
mappingLoop:
for packet := range in {
currentPackageNum++
switch {
case packet == nil:
log.Debug().Msg("Done reading packages. (nil returned)")
Expand All @@ -314,9 +312,10 @@ func (a *Analyzer) MapPackets(in chan gopacket.Packet, packetInformationCreator
a.mappedPacketChan <- common.NewFilteredPackage(err, packet)
} else {
currentApplicationLayer := packet.ApplicationLayer()
newApplicationLayer := gopacket.Payload(payload)
if len(currentApplicationLayer.Payload()) != len(newApplicationLayer) {
packet = &manipulatedPackage{Packet: packet, newApplicationLayer: newApplicationLayer}
newPayload := gopacket.Payload(payload)
if !reflect.DeepEqual(currentApplicationLayer.Payload(), newPayload) {
log.Debug().Msgf("Replacing payload %q with %q", currentApplicationLayer.Payload(), payload)
packet = &manipulatedPackage{Packet: packet, newApplicationLayer: newPayload}
}
a.mappedPacketChan <- packet
}
Expand Down

0 comments on commit a20c3b2

Please sign in to comment.