MCPcopy
hub / github.com/bettercap/bettercap / fuzzSelectFrame

Method fuzzSelectFrame

modules/can/can_fuzz.go:15–36  ·  view source on GitHub ↗
(id string, rng *rand.Rand)

Source from the content-addressed store, hash-verified

13)
14
15func (mod *CANModule) fuzzSelectFrame(id string, rng *rand.Rand) (uint64, error) {
16 // let's try as an hex number first
17 frameID, err := strconv.ParseUint(id, 16, 32)
18 if err != nil {
19 // not a number, use as node name if we have a dbc
20 if mod.dbc.Loaded() {
21 fromSender := mod.dbc.MessagesBySender(id)
22 if len(fromSender) == 0 {
23 return 0, fmt.Errorf("no messages defined in DBC file for node %s, available nodes: %s", id, mod.dbc.Senders())
24 }
25
26 idx := rng.Intn(len(fromSender))
27 selected := fromSender[idx]
28 mod.Info("selected %s > (%d) %s", id, selected.ID, selected.Name)
29 frameID = uint64(selected.ID)
30 } else {
31 // no dbc, just return the error
32 return 0, err
33 }
34 }
35 return frameID, nil
36}
37
38func (mod *CANModule) fuzzGenerateFrame(frameID uint64, size int, rng *rand.Rand) (*can.Frame, error) {
39 dataLen := 0

Callers 1

FuzzMethod · 0.95

Calls 4

LoadedMethod · 0.80
MessagesBySenderMethod · 0.80
SendersMethod · 0.80
InfoMethod · 0.45

Tested by

no test coverage detected