summaryrefslogtreecommitdiffstats
path: root/test/fuzz/fuzz-netdev-parser
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--test/fuzz/fuzz-netdev-parser/11-dummy.netdev3
-rw-r--r--test/fuzz/fuzz-netdev-parser/12-dummy.netdev3
-rw-r--r--test/fuzz/fuzz-netdev-parser/21-macvlan.netdev3
-rw-r--r--test/fuzz/fuzz-netdev-parser/21-macvtap.netdev3
-rw-r--r--test/fuzz/fuzz-netdev-parser/21-vlan.netdev10
-rw-r--r--test/fuzz/fuzz-netdev-parser/25-6rd-tunnel.netdev8
-rw-r--r--test/fuzz/fuzz-netdev-parser/25-bond-backup.netdev6
-rw-r--r--test/fuzz/fuzz-netdev-parser/25-bond.netdev18
-rw-r--r--test/fuzz/fuzz-netdev-parser/25-bridge.netdev13
-rw-r--r--test/fuzz/fuzz-netdev-parser/25-erspan-tunnel.netdev11
-rw-r--r--test/fuzz/fuzz-netdev-parser/25-geneve.netdev12
-rw-r--r--test/fuzz/fuzz-netdev-parser/25-gre-tunnel.netdev7
-rw-r--r--test/fuzz/fuzz-netdev-parser/25-gretap-tunnel.netdev7
-rw-r--r--test/fuzz/fuzz-netdev-parser/25-ip6gre-tunnel.netdev7
-rw-r--r--test/fuzz/fuzz-netdev-parser/25-ip6tnl-tunnel.netdev8
-rw-r--r--test/fuzz/fuzz-netdev-parser/25-ipip-tunnel.netdev8
-rw-r--r--test/fuzz/fuzz-netdev-parser/25-ipip-tunnel2.netdev9
-rw-r--r--test/fuzz/fuzz-netdev-parser/25-ipvlan.netdev6
-rw-r--r--test/fuzz/fuzz-netdev-parser/25-sit-tunnel.netdev7
-rw-r--r--test/fuzz/fuzz-netdev-parser/25-tap.netdev7
-rw-r--r--test/fuzz/fuzz-netdev-parser/25-tun.netdev7
-rw-r--r--test/fuzz/fuzz-netdev-parser/25-vcan.netdev3
-rw-r--r--test/fuzz/fuzz-netdev-parser/25-veth.netdev8
-rw-r--r--test/fuzz/fuzz-netdev-parser/25-vrf.netdev6
-rw-r--r--test/fuzz/fuzz-netdev-parser/25-vti-tunnel.netdev7
-rw-r--r--test/fuzz/fuzz-netdev-parser/25-vti6-tunnel.netdev7
-rw-r--r--test/fuzz/fuzz-netdev-parser/25-vxlan.netdev16
-rw-r--r--test/fuzz/fuzz-netdev-parser/25-wireguard.netdev12
-rw-r--r--test/fuzz/fuzz-netdev-parser/26-bridge.netdev3
-rw-r--r--test/fuzz/fuzz-netdev-parser/27-xfrm.netdev7
-rw-r--r--test/fuzz/fuzz-netdev-parser/28-batadv.netdev16
-rw-r--r--test/fuzz/fuzz-netdev-parser/crash-null-addressbin0 -> 74 bytes
-rw-r--r--test/fuzz/fuzz-netdev-parser/directives.netdev258
-rw-r--r--test/fuzz/fuzz-netdev-parser/github-106155
-rw-r--r--test/fuzz/fuzz-netdev-parser/github-1062910
-rw-r--r--test/fuzz/fuzz-netdev-parser/github-1596814
-rw-r--r--test/fuzz/fuzz-netdev-parser/oss-fuzz-11279bin0 -> 60 bytes
-rw-r--r--test/fuzz/fuzz-netdev-parser/oss-fuzz-11280bin0 -> 76 bytes
-rw-r--r--test/fuzz/fuzz-netdev-parser/oss-fuzz-11286bin0 -> 65 bytes
-rw-r--r--test/fuzz/fuzz-netdev-parser/oss-fuzz-11287bin0 -> 60 bytes
-rw-r--r--test/fuzz/fuzz-netdev-parser/oss-fuzz-11296bin0 -> 318 bytes
-rw-r--r--test/fuzz/fuzz-netdev-parser/oss-fuzz-11297bin0 -> 77 bytes
-rw-r--r--test/fuzz/fuzz-netdev-parser/oss-fuzz-11299bin0 -> 54 bytes
-rw-r--r--test/fuzz/fuzz-netdev-parser/oss-fuzz-11324bin0 -> 79 bytes
-rw-r--r--test/fuzz/fuzz-netdev-parser/oss-fuzz-113446
-rw-r--r--test/fuzz/fuzz-netdev-parser/oss-fuzz-137196
-rw-r--r--test/fuzz/fuzz-netdev-parser/oss-fuzz-13884bin0 -> 449 bytes
-rw-r--r--test/fuzz/fuzz-netdev-parser/oss-fuzz-13886bin0 -> 47998 bytes
-rw-r--r--test/fuzz/fuzz-netdev-parser/oss-fuzz-141575
-rw-r--r--test/fuzz/fuzz-netdev-parser/oss-fuzz-141585
-rw-r--r--test/fuzz/fuzz-netdev-parser/oss-fuzz-2254710
-rw-r--r--test/fuzz/fuzz-netdev-parser/wireguard-duplicated-endpoint6
52 files changed, 573 insertions, 0 deletions
diff --git a/test/fuzz/fuzz-netdev-parser/11-dummy.netdev b/test/fuzz/fuzz-netdev-parser/11-dummy.netdev
new file mode 100644
index 0000000..6797eb4
--- /dev/null
+++ b/test/fuzz/fuzz-netdev-parser/11-dummy.netdev
@@ -0,0 +1,3 @@
+[NetDev]
+Name=test1
+Kind=dummy
diff --git a/test/fuzz/fuzz-netdev-parser/12-dummy.netdev b/test/fuzz/fuzz-netdev-parser/12-dummy.netdev
new file mode 100644
index 0000000..a7fdc0f
--- /dev/null
+++ b/test/fuzz/fuzz-netdev-parser/12-dummy.netdev
@@ -0,0 +1,3 @@
+[NetDev]
+Name=dummy98
+Kind=dummy
diff --git a/test/fuzz/fuzz-netdev-parser/21-macvlan.netdev b/test/fuzz/fuzz-netdev-parser/21-macvlan.netdev
new file mode 100644
index 0000000..e9a3c5b
--- /dev/null
+++ b/test/fuzz/fuzz-netdev-parser/21-macvlan.netdev
@@ -0,0 +1,3 @@
+[NetDev]
+Name=macvlan99
+Kind=macvlan
diff --git a/test/fuzz/fuzz-netdev-parser/21-macvtap.netdev b/test/fuzz/fuzz-netdev-parser/21-macvtap.netdev
new file mode 100644
index 0000000..2c23aac
--- /dev/null
+++ b/test/fuzz/fuzz-netdev-parser/21-macvtap.netdev
@@ -0,0 +1,3 @@
+[NetDev]
+Name=macvtap99
+Kind=macvtap
diff --git a/test/fuzz/fuzz-netdev-parser/21-vlan.netdev b/test/fuzz/fuzz-netdev-parser/21-vlan.netdev
new file mode 100644
index 0000000..fe9801c
--- /dev/null
+++ b/test/fuzz/fuzz-netdev-parser/21-vlan.netdev
@@ -0,0 +1,10 @@
+[NetDev]
+Name=vlan99
+Kind=vlan
+
+[VLAN]
+Id=99
+GVRP=true
+MVRP=true
+LooseBinding=true
+ReorderHeader=true
diff --git a/test/fuzz/fuzz-netdev-parser/25-6rd-tunnel.netdev b/test/fuzz/fuzz-netdev-parser/25-6rd-tunnel.netdev
new file mode 100644
index 0000000..252abf5
--- /dev/null
+++ b/test/fuzz/fuzz-netdev-parser/25-6rd-tunnel.netdev
@@ -0,0 +1,8 @@
+[NetDev]
+Name=6rdtun99
+Kind=sit
+
+[Tunnel]
+Local=10.65.223.238
+Remote=10.65.223.239
+IPv6RapidDeploymentPrefix=2602::/24
diff --git a/test/fuzz/fuzz-netdev-parser/25-bond-backup.netdev b/test/fuzz/fuzz-netdev-parser/25-bond-backup.netdev
new file mode 100644
index 0000000..1bbbf75
--- /dev/null
+++ b/test/fuzz/fuzz-netdev-parser/25-bond-backup.netdev
@@ -0,0 +1,6 @@
+[NetDev]
+Name=bond199
+Kind=bond
+
+[Bond]
+Mode=active-backup
diff --git a/test/fuzz/fuzz-netdev-parser/25-bond.netdev b/test/fuzz/fuzz-netdev-parser/25-bond.netdev
new file mode 100644
index 0000000..4e4885c
--- /dev/null
+++ b/test/fuzz/fuzz-netdev-parser/25-bond.netdev
@@ -0,0 +1,18 @@
+[NetDev]
+Name=bond99
+Kind=bond
+
+[Bond]
+Mode=802.3ad
+TransmitHashPolicy=layer3+4
+MIIMonitorSec=1s
+LACPTransmitRate=fast
+UpDelaySec=2s
+DownDelaySec=2s
+ResendIGMP=4
+MinLinks=1
+AdActorSystemPriority=1218
+AdUserPortKey=811
+AdActorSystem=00:11:22:33:44:55
+# feed the sanitizer
+AdActorSystem=00:11:22:33:44:55
diff --git a/test/fuzz/fuzz-netdev-parser/25-bridge.netdev b/test/fuzz/fuzz-netdev-parser/25-bridge.netdev
new file mode 100644
index 0000000..e23abd5
--- /dev/null
+++ b/test/fuzz/fuzz-netdev-parser/25-bridge.netdev
@@ -0,0 +1,13 @@
+[NetDev]
+Name=bridge99
+Kind=bridge
+
+[Bridge]
+HelloTimeSec=9
+MaxAgeSec=9
+ForwardDelaySec=9
+AgeingTimeSec=9
+Priority=9
+MulticastQuerier= true
+MulticastSnooping=true
+STP=true
diff --git a/test/fuzz/fuzz-netdev-parser/25-erspan-tunnel.netdev b/test/fuzz/fuzz-netdev-parser/25-erspan-tunnel.netdev
new file mode 100644
index 0000000..0fd8b92
--- /dev/null
+++ b/test/fuzz/fuzz-netdev-parser/25-erspan-tunnel.netdev
@@ -0,0 +1,11 @@
+[NetDev]
+Name=erspan-test
+Kind=erspan
+
+[Tunnel]
+Independent=true
+ERSPANIndex=123
+Local=172.16.1.200
+Remote=172.16.1.100
+Key=101
+SerializeTunneledPackets=true
diff --git a/test/fuzz/fuzz-netdev-parser/25-geneve.netdev b/test/fuzz/fuzz-netdev-parser/25-geneve.netdev
new file mode 100644
index 0000000..279d713
--- /dev/null
+++ b/test/fuzz/fuzz-netdev-parser/25-geneve.netdev
@@ -0,0 +1,12 @@
+[NetDev]
+Name=geneve99
+Kind=geneve
+
+[GENEVE]
+Id=99
+Remote=192.168.22.1
+TTL=1
+UDPChecksum=true
+UDP6ZeroChecksumTx=true
+UDP6ZeroChecksumRx=true
+DestinationPort=6082
diff --git a/test/fuzz/fuzz-netdev-parser/25-gre-tunnel.netdev b/test/fuzz/fuzz-netdev-parser/25-gre-tunnel.netdev
new file mode 100644
index 0000000..94d9320
--- /dev/null
+++ b/test/fuzz/fuzz-netdev-parser/25-gre-tunnel.netdev
@@ -0,0 +1,7 @@
+[NetDev]
+Name=gretun99
+Kind=gre
+
+[Tunnel]
+Local=10.65.223.238
+Remote=10.65.223.239
diff --git a/test/fuzz/fuzz-netdev-parser/25-gretap-tunnel.netdev b/test/fuzz/fuzz-netdev-parser/25-gretap-tunnel.netdev
new file mode 100644
index 0000000..769e765
--- /dev/null
+++ b/test/fuzz/fuzz-netdev-parser/25-gretap-tunnel.netdev
@@ -0,0 +1,7 @@
+[NetDev]
+Name=gretap99
+Kind=gretap
+
+[Tunnel]
+Local=10.65.223.238
+Remote=10.65.223.239
diff --git a/test/fuzz/fuzz-netdev-parser/25-ip6gre-tunnel.netdev b/test/fuzz/fuzz-netdev-parser/25-ip6gre-tunnel.netdev
new file mode 100644
index 0000000..b16e0b4
--- /dev/null
+++ b/test/fuzz/fuzz-netdev-parser/25-ip6gre-tunnel.netdev
@@ -0,0 +1,7 @@
+[NetDev]
+Name=ip6gretap99
+Kind=ip6gretap
+
+[Tunnel]
+Local=2a00:ffde:4567:edde::4987
+Remote=2001:473:fece:cafe::5179
diff --git a/test/fuzz/fuzz-netdev-parser/25-ip6tnl-tunnel.netdev b/test/fuzz/fuzz-netdev-parser/25-ip6tnl-tunnel.netdev
new file mode 100644
index 0000000..713e685
--- /dev/null
+++ b/test/fuzz/fuzz-netdev-parser/25-ip6tnl-tunnel.netdev
@@ -0,0 +1,8 @@
+[NetDev]
+Name=ip6tnl99
+Kind=ip6tnl
+
+[Tunnel]
+Mode=ip6ip6
+Local=2a00:ffde:4567:edde::4987
+Remote=2001:473:fece:cafe::5179
diff --git a/test/fuzz/fuzz-netdev-parser/25-ipip-tunnel.netdev b/test/fuzz/fuzz-netdev-parser/25-ipip-tunnel.netdev
new file mode 100644
index 0000000..159ac72
--- /dev/null
+++ b/test/fuzz/fuzz-netdev-parser/25-ipip-tunnel.netdev
@@ -0,0 +1,8 @@
+[NetDev]
+Name=ipiptun99
+Kind=ipip
+MTUBytes=1480
+
+[Tunnel]
+Local=192.168.223.238
+Remote=192.169.224.239
diff --git a/test/fuzz/fuzz-netdev-parser/25-ipip-tunnel2.netdev b/test/fuzz/fuzz-netdev-parser/25-ipip-tunnel2.netdev
new file mode 100644
index 0000000..36ff8d9
--- /dev/null
+++ b/test/fuzz/fuzz-netdev-parser/25-ipip-tunnel2.netdev
@@ -0,0 +1,9 @@
+[NetDev]
+Name=ipiptun99
+Kind=ipip
+MTUBytes=1480
+
+[Tunnel]
+Local=192.168.223.238
+Remote=192.169.224.239
+Independent=true
diff --git a/test/fuzz/fuzz-netdev-parser/25-ipvlan.netdev b/test/fuzz/fuzz-netdev-parser/25-ipvlan.netdev
new file mode 100644
index 0000000..9921b78
--- /dev/null
+++ b/test/fuzz/fuzz-netdev-parser/25-ipvlan.netdev
@@ -0,0 +1,6 @@
+[NetDev]
+Name=ipvlan99
+Kind=ipvlan
+
+[IPVLAN]
+Mode=L2
diff --git a/test/fuzz/fuzz-netdev-parser/25-sit-tunnel.netdev b/test/fuzz/fuzz-netdev-parser/25-sit-tunnel.netdev
new file mode 100644
index 0000000..406d74b
--- /dev/null
+++ b/test/fuzz/fuzz-netdev-parser/25-sit-tunnel.netdev
@@ -0,0 +1,7 @@
+[NetDev]
+Name=sittun99
+Kind=sit
+
+[Tunnel]
+Local=10.65.223.238
+Remote=10.65.223.239
diff --git a/test/fuzz/fuzz-netdev-parser/25-tap.netdev b/test/fuzz/fuzz-netdev-parser/25-tap.netdev
new file mode 100644
index 0000000..bf5e7fe
--- /dev/null
+++ b/test/fuzz/fuzz-netdev-parser/25-tap.netdev
@@ -0,0 +1,7 @@
+[NetDev]
+Name=tap99
+Kind=tap
+
+[Tap]
+MultiQueue=true
+PacketInfo=true
diff --git a/test/fuzz/fuzz-netdev-parser/25-tun.netdev b/test/fuzz/fuzz-netdev-parser/25-tun.netdev
new file mode 100644
index 0000000..380ab21
--- /dev/null
+++ b/test/fuzz/fuzz-netdev-parser/25-tun.netdev
@@ -0,0 +1,7 @@
+[NetDev]
+Name=tun99
+Kind=tun
+
+[Tun]
+MultiQueue=true
+PacketInfo=true
diff --git a/test/fuzz/fuzz-netdev-parser/25-vcan.netdev b/test/fuzz/fuzz-netdev-parser/25-vcan.netdev
new file mode 100644
index 0000000..ff19795
--- /dev/null
+++ b/test/fuzz/fuzz-netdev-parser/25-vcan.netdev
@@ -0,0 +1,3 @@
+[NetDev]
+Name=vcan99
+Kind=vcan
diff --git a/test/fuzz/fuzz-netdev-parser/25-veth.netdev b/test/fuzz/fuzz-netdev-parser/25-veth.netdev
new file mode 100644
index 0000000..9ae4ad5
--- /dev/null
+++ b/test/fuzz/fuzz-netdev-parser/25-veth.netdev
@@ -0,0 +1,8 @@
+[NetDev]
+Name=veth99
+Kind=veth
+MACAddress=12:34:56:78:9a:bc
+
+[Peer]
+Name=veth-peer
+MACAddress=12:34:56:78:9a:bd
diff --git a/test/fuzz/fuzz-netdev-parser/25-vrf.netdev b/test/fuzz/fuzz-netdev-parser/25-vrf.netdev
new file mode 100644
index 0000000..bf949ec
--- /dev/null
+++ b/test/fuzz/fuzz-netdev-parser/25-vrf.netdev
@@ -0,0 +1,6 @@
+[NetDev]
+Name=vrf99
+Kind=vrf
+
+[VRF]
+TableId=42
diff --git a/test/fuzz/fuzz-netdev-parser/25-vti-tunnel.netdev b/test/fuzz/fuzz-netdev-parser/25-vti-tunnel.netdev
new file mode 100644
index 0000000..cec6259
--- /dev/null
+++ b/test/fuzz/fuzz-netdev-parser/25-vti-tunnel.netdev
@@ -0,0 +1,7 @@
+[NetDev]
+Name=vtitun99
+Kind=vti
+
+[Tunnel]
+Local=10.65.223.238
+Remote=10.65.223.239
diff --git a/test/fuzz/fuzz-netdev-parser/25-vti6-tunnel.netdev b/test/fuzz/fuzz-netdev-parser/25-vti6-tunnel.netdev
new file mode 100644
index 0000000..d150c9c
--- /dev/null
+++ b/test/fuzz/fuzz-netdev-parser/25-vti6-tunnel.netdev
@@ -0,0 +1,7 @@
+[NetDev]
+Name=vti6tun99
+Kind=vti6
+
+[Tunnel]
+Local=2a00:ffde:4567:edde::4987
+Remote=2001:473:fece:cafe::5179
diff --git a/test/fuzz/fuzz-netdev-parser/25-vxlan.netdev b/test/fuzz/fuzz-netdev-parser/25-vxlan.netdev
new file mode 100644
index 0000000..819a583
--- /dev/null
+++ b/test/fuzz/fuzz-netdev-parser/25-vxlan.netdev
@@ -0,0 +1,16 @@
+[NetDev]
+Name=vxlan99
+Kind=vxlan
+
+[VXLAN]
+Id=999
+L2MissNotification=true
+L3MissNotification=true
+RouteShortCircuit=true
+UDPChecksum=true
+UDP6ZeroChecksumTx=true
+UDP6ZeroChecksumRx=true
+RemoteChecksumTx=true
+RemoteChecksumRx=true
+GroupPolicyExtension=true
+DestinationPort=5555
diff --git a/test/fuzz/fuzz-netdev-parser/25-wireguard.netdev b/test/fuzz/fuzz-netdev-parser/25-wireguard.netdev
new file mode 100644
index 0000000..e07d685
--- /dev/null
+++ b/test/fuzz/fuzz-netdev-parser/25-wireguard.netdev
@@ -0,0 +1,12 @@
+[NetDev]
+Name=wg99
+Kind=wireguard
+
+[WireGuard]
+PrivateKey=EEGlnEPYJV//kbvvIqxKkQwOiS+UENyPncC4bF46ong=
+ListenPort=51820
+
+[WireGuardPeer]
+PublicKey=RDf+LSpeEre7YEIKaxg+wbpsNV7du+ktR99uBEtIiCA=
+AllowedIPs=fd31:bf08:57cb::/48,192.168.26.0/24
+Endpoint=wireguard.example.com:51820
diff --git a/test/fuzz/fuzz-netdev-parser/26-bridge.netdev b/test/fuzz/fuzz-netdev-parser/26-bridge.netdev
new file mode 100644
index 0000000..9b31e06
--- /dev/null
+++ b/test/fuzz/fuzz-netdev-parser/26-bridge.netdev
@@ -0,0 +1,3 @@
+[NetDev]
+Name=bridge99
+Kind=bridge
diff --git a/test/fuzz/fuzz-netdev-parser/27-xfrm.netdev b/test/fuzz/fuzz-netdev-parser/27-xfrm.netdev
new file mode 100644
index 0000000..cdcb2d2
--- /dev/null
+++ b/test/fuzz/fuzz-netdev-parser/27-xfrm.netdev
@@ -0,0 +1,7 @@
+[NetDev]
+Name=xfrm99
+Kind=xfrm
+
+[Xfrm]
+InterfaceId=7
+Independent=false
diff --git a/test/fuzz/fuzz-netdev-parser/28-batadv.netdev b/test/fuzz/fuzz-netdev-parser/28-batadv.netdev
new file mode 100644
index 0000000..2de6cd2
--- /dev/null
+++ b/test/fuzz/fuzz-netdev-parser/28-batadv.netdev
@@ -0,0 +1,16 @@
+[NetDev]
+Name=bat0
+Kind=batadv
+Description=Batman test
+
+[BatmanAdvanced]
+GatewayMode=server
+Aggregation=1
+BridgeLoopAvoidance=1
+DistributedArpTable=1
+Fragmentation=1
+HopPenalty=10
+OriginatorIntervalSec=1
+GatewayBandwidthDown=100K
+GatewayBandwidthUp=12K
+RoutingAlgorithm=batman-v
diff --git a/test/fuzz/fuzz-netdev-parser/crash-null-address b/test/fuzz/fuzz-netdev-parser/crash-null-address
new file mode 100644
index 0000000..d2de7fb
--- /dev/null
+++ b/test/fuzz/fuzz-netdev-parser/crash-null-address
Binary files differ
diff --git a/test/fuzz/fuzz-netdev-parser/directives.netdev b/test/fuzz/fuzz-netdev-parser/directives.netdev
new file mode 100644
index 0000000..309941f
--- /dev/null
+++ b/test/fuzz/fuzz-netdev-parser/directives.netdev
@@ -0,0 +1,258 @@
+[VLAN]
+MVRP=
+LooseBinding=
+ReorderHeader=
+Id=
+GVRP=
+Protocol=
+EgressQOSMaps=
+IngressQOSMaps=
+[MACVLAN]
+Mode=
+SourceMACAddress=
+BroadcastMulticastQueueLength=
+[WireGuard]
+ListenPort=
+PrivateKey=
+PrivateKeyFile=
+FwMark=
+FirewallMark=
+RouteTable=
+RouteMetric=
+[MACVTAP]
+Mode=
+SourceMACAddress=
+[Match]
+Architecture=
+Credential=
+Firmware=
+Host=
+KernelCommandLine=
+KernelVersion=
+Virtualization=
+[GENEVE]
+DestinationPort=
+TTL=
+UDP6ZeroCheckSumTx=
+TOS=
+Id=
+UDPChecksum=
+UDP6ZeroChecksumTx=
+FlowLabel=
+UDP6ZeroChecksumRx=
+Remote=
+UDP6ZeroCheckSumRx=
+IPDoNotFragment=
+[Bridge]
+ForwardDelaySec=
+HelloTimeSec=
+MaxAgeSec=
+STP=
+MulticastSnooping=
+DefaultPVID=
+MulticastQuerier=
+AgeingTimeSec=
+Priority=
+GroupForwardMask=
+VLANFiltering=
+VLANProtocol=
+MulticastIGMPVersion=
+[VRF]
+TableId=
+Table=
+[Peer]
+MACAddress=
+Name=
+[WireGuardPeer]
+Endpoint=
+PresharedKey=
+PresharedKeyFile=
+PersistentKeepalive=
+PublicKey=
+AllowedIPs=
+RouteTable=
+RouteMetric=
+[Tunnel]
+FooOverUDP=
+IPv6FlowLabel=
+Remote=
+AllowLocalRemote=
+Local=
+TOS=
+Independent=
+AssignToLoopback=
+Key=
+InputKey=
+Encapsulation=
+Mode=
+OutputKey=
+DiscoverPathMTU=
+FOUDestinationPort=
+CopyDSCP=
+EncapsulationLimit=
+TTL=
+FOUSourcePort=
+IPv6RapidDeploymentPrefix=
+ERSPANVersion=
+ERSPANIndex=
+ERSPANDirection=
+ERSPANHardwareId=
+SerializeTunneledPackets=
+ISATAP=
+External=
+[VXLAN]
+UDP6ZeroChecksumRx=
+ARPProxy=
+FlowLabel=
+Local=
+RemoteChecksumTx=
+RouteShortCircuit=
+Remote=
+L3MissNotification=
+Group=
+FDBAgeingSec=
+MacLearning=
+Id=
+VNI=
+RemoteChecksumRx=
+TOS=
+L2MissNotification=
+UDP6ZeroChecksumTx=
+UDP6ZeroCheckSumRx=
+UDPCheckSum=
+GroupPolicyExtension=
+GenericProtocolExtension=
+MaximumFDBEntries=
+TTL=
+DestinationPort=
+ReduceARPProxy=
+PortRange=
+UDPChecksum=
+UDP6ZeroCheckSumTx=
+IPDoNotFragment=
+Independent=
+[VXCAN]
+Peer=
+[Bond]
+LearnPacketIntervalSec=
+TransmitHashPolicy=
+MIIMonitorSec=
+PacketsPerSlave=
+DownDelaySec=
+PrimaryReselectPolicy=
+ResendIGMP=
+ARPAllTargets=
+AdActorSystemPriority=
+UpDelaySec=
+AdSelect=
+AdActorSystem=
+AdUserPortKey=
+FailOverMACPolicy=
+ARPValidate=
+Mode=
+GratuitousARP=
+ARPIPTargets=
+MinLinks=
+LACPTransmitRate=
+ARPIntervalSec=
+AllSlavesActive=
+DynamicTransmitLoadBalancing=
+[FooOverUDP]
+Protocol=
+Port=
+PeerPort=
+Encapsulation=
+Local=
+Peer=
+[Tap]
+MultiQueue=
+OneQueue=
+User=
+Group=
+PacketInfo=
+VNetHeader=
+KeepCarrier=
+[IPVLAN]
+Mode=
+Flags=
+[IPVTAP]
+Mode=
+Flags=
+[Tun]
+OneQueue=
+MultiQueue=
+PacketInfo=
+VNetHeader=
+Group=
+User=
+KeepCarrier=
+[NetDev]
+Kind=
+MACAddress=
+MTUBytes=
+Description=
+Name=
+[L2TP]
+TunnelId=
+PeerTunnelId=
+UDPSourcePort=
+UDPDestinationPort=
+Local=
+Remote=
+EncapsulationType=
+UDPCheckSum=
+UDP6CheckSumRx=
+UDP6CheckSumTx=
+[L2TPSession]
+SessionId=
+PeerSessionId=
+Layer2SpecificHeader=
+Name=
+[MACsec]
+Port=
+Encrypt=
+[MACsecReceiveAssociation]
+Port=
+MACAddress=
+PacketNumber=
+KeyId=
+Key=
+KeyFile=
+Activate=
+UseForEncoding=
+[MACsecReceiveChannel]
+Port=
+MACAddress=
+[MACsecTransmitAssociation]
+PacketNumber=
+KeyId=
+Key=
+KeyFile=
+Activate=
+[Xfrm]
+Independent=
+InterfaceId=
+[BareUDP]
+DestinationPort=
+EtherType=
+[BatmanAdvanced]
+GatewayMode=
+Aggregation=
+BridgeLoopAvoidance=
+DistributedArpTable=
+Fragmentation=
+HopPenalty=
+OriginatorIntervalSec=
+GatewayBandwithDown=
+GatewayBandwithUp=
+GatewayBandwidthDown=
+GatewayBandwidthUp=
+RoutingAlgorithm=
+[IPoIB]
+PartitionKey=
+Mode=
+IgnoreUserspaceMulticastGroups=
+[WLAN]
+PhysicalDevice=
+Type=
+WDS=
diff --git a/test/fuzz/fuzz-netdev-parser/github-10615 b/test/fuzz/fuzz-netdev-parser/github-10615
new file mode 100644
index 0000000..1151ebf
--- /dev/null
+++ b/test/fuzz/fuzz-netdev-parser/github-10615
@@ -0,0 +1,5 @@
+[NetDev]
+Name=veth99
+Kind=veth
+MACAddress=12:34:56:78:9a:bc
+MACAddress=12:34:56:78:9a:bc
diff --git a/test/fuzz/fuzz-netdev-parser/github-10629 b/test/fuzz/fuzz-netdev-parser/github-10629
new file mode 100644
index 0000000..e269e3b
--- /dev/null
+++ b/test/fuzz/fuzz-netdev-parser/github-10629
@@ -0,0 +1,10 @@
+[NetDev]
+Name=vlan99
+Kind=vcan
+
+[VLAN]
+Id=99
+GVRP=true
+MVRP=true
+LooseBinding=true
+ReorderHeader=true
diff --git a/test/fuzz/fuzz-netdev-parser/github-15968 b/test/fuzz/fuzz-netdev-parser/github-15968
new file mode 100644
index 0000000..0527704
--- /dev/null
+++ b/test/fuzz/fuzz-netdev-parser/github-15968
@@ -0,0 +1,14 @@
+[NetDev]
+Name=t
+[L2TP]
+b
+Remote=1.8.0.2
+
+[L2TPSession]
+SessionId=
+[L2TP]
+PeerTunnelId=2
+[NetDev]
+Kind=l2tp
+[L2TP]
+TunnelId=4
diff --git a/test/fuzz/fuzz-netdev-parser/oss-fuzz-11279 b/test/fuzz/fuzz-netdev-parser/oss-fuzz-11279
new file mode 100644
index 0000000..f7a99bd
--- /dev/null
+++ b/test/fuzz/fuzz-netdev-parser/oss-fuzz-11279
Binary files differ
diff --git a/test/fuzz/fuzz-netdev-parser/oss-fuzz-11280 b/test/fuzz/fuzz-netdev-parser/oss-fuzz-11280
new file mode 100644
index 0000000..33d2499
--- /dev/null
+++ b/test/fuzz/fuzz-netdev-parser/oss-fuzz-11280
Binary files differ
diff --git a/test/fuzz/fuzz-netdev-parser/oss-fuzz-11286 b/test/fuzz/fuzz-netdev-parser/oss-fuzz-11286
new file mode 100644
index 0000000..cde4ee8
--- /dev/null
+++ b/test/fuzz/fuzz-netdev-parser/oss-fuzz-11286
Binary files differ
diff --git a/test/fuzz/fuzz-netdev-parser/oss-fuzz-11287 b/test/fuzz/fuzz-netdev-parser/oss-fuzz-11287
new file mode 100644
index 0000000..03ab206
--- /dev/null
+++ b/test/fuzz/fuzz-netdev-parser/oss-fuzz-11287
Binary files differ
diff --git a/test/fuzz/fuzz-netdev-parser/oss-fuzz-11296 b/test/fuzz/fuzz-netdev-parser/oss-fuzz-11296
new file mode 100644
index 0000000..05d57f7
--- /dev/null
+++ b/test/fuzz/fuzz-netdev-parser/oss-fuzz-11296
Binary files differ
diff --git a/test/fuzz/fuzz-netdev-parser/oss-fuzz-11297 b/test/fuzz/fuzz-netdev-parser/oss-fuzz-11297
new file mode 100644
index 0000000..f4baa0b
--- /dev/null
+++ b/test/fuzz/fuzz-netdev-parser/oss-fuzz-11297
Binary files differ
diff --git a/test/fuzz/fuzz-netdev-parser/oss-fuzz-11299 b/test/fuzz/fuzz-netdev-parser/oss-fuzz-11299
new file mode 100644
index 0000000..295a1d0
--- /dev/null
+++ b/test/fuzz/fuzz-netdev-parser/oss-fuzz-11299
Binary files differ
diff --git a/test/fuzz/fuzz-netdev-parser/oss-fuzz-11324 b/test/fuzz/fuzz-netdev-parser/oss-fuzz-11324
new file mode 100644
index 0000000..dea1dcf
--- /dev/null
+++ b/test/fuzz/fuzz-netdev-parser/oss-fuzz-11324
Binary files differ
diff --git a/test/fuzz/fuzz-netdev-parser/oss-fuzz-11344 b/test/fuzz/fuzz-netdev-parser/oss-fuzz-11344
new file mode 100644
index 0000000..e3744c6
--- /dev/null
+++ b/test/fuzz/fuzz-netdev-parser/oss-fuzz-11344
@@ -0,0 +1,6 @@
+[NetDev]
+Name=v
+Kind=vti
+[Tunnel]
+Local=::
+Local=any \ No newline at end of file
diff --git a/test/fuzz/fuzz-netdev-parser/oss-fuzz-13719 b/test/fuzz/fuzz-netdev-parser/oss-fuzz-13719
new file mode 100644
index 0000000..adff4c1
--- /dev/null
+++ b/test/fuzz/fuzz-netdev-parser/oss-fuzz-13719
@@ -0,0 +1,6 @@
+[NetDev]
+Name=w
+Kind=wireguard
+[WireGuardPeer]
+Endpoint=:0
+Endpoint=:8 \ No newline at end of file
diff --git a/test/fuzz/fuzz-netdev-parser/oss-fuzz-13884 b/test/fuzz/fuzz-netdev-parser/oss-fuzz-13884
new file mode 100644
index 0000000..ce8d713
--- /dev/null
+++ b/test/fuzz/fuzz-netdev-parser/oss-fuzz-13884
Binary files differ
diff --git a/test/fuzz/fuzz-netdev-parser/oss-fuzz-13886 b/test/fuzz/fuzz-netdev-parser/oss-fuzz-13886
new file mode 100644
index 0000000..1230ffe
--- /dev/null
+++ b/test/fuzz/fuzz-netdev-parser/oss-fuzz-13886
Binary files differ
diff --git a/test/fuzz/fuzz-netdev-parser/oss-fuzz-14157 b/test/fuzz/fuzz-netdev-parser/oss-fuzz-14157
new file mode 100644
index 0000000..d3a65e1
--- /dev/null
+++ b/test/fuzz/fuzz-netdev-parser/oss-fuzz-14157
@@ -0,0 +1,5 @@
+[NetDev]
+Name=w
+Kind=wireguard
+[WireGuardPeer]
+PublicKey=e \ No newline at end of file
diff --git a/test/fuzz/fuzz-netdev-parser/oss-fuzz-14158 b/test/fuzz/fuzz-netdev-parser/oss-fuzz-14158
new file mode 100644
index 0000000..6f6bf72
--- /dev/null
+++ b/test/fuzz/fuzz-netdev-parser/oss-fuzz-14158
@@ -0,0 +1,5 @@
+[NetDev]
+Name=w
+Kind=wireguard
+[WireGuard]
+PrivateKey=E \ No newline at end of file
diff --git a/test/fuzz/fuzz-netdev-parser/oss-fuzz-22547 b/test/fuzz/fuzz-netdev-parser/oss-fuzz-22547
new file mode 100644
index 0000000..ca55a33
--- /dev/null
+++ b/test/fuzz/fuzz-netdev-parser/oss-fuzz-22547
@@ -0,0 +1,10 @@
+[NetDev]
+Name=o
+Kind=macsec
+
+[MACsecReceiveChannel]
+MACAddress=12.0.4
+Port=913
+[MACsecReceiveChannel]
+MACAddress=12.0.4
+Port=913
diff --git a/test/fuzz/fuzz-netdev-parser/wireguard-duplicated-endpoint b/test/fuzz/fuzz-netdev-parser/wireguard-duplicated-endpoint
new file mode 100644
index 0000000..adff4c1
--- /dev/null
+++ b/test/fuzz/fuzz-netdev-parser/wireguard-duplicated-endpoint
@@ -0,0 +1,6 @@
+[NetDev]
+Name=w
+Kind=wireguard
+[WireGuardPeer]
+Endpoint=:0
+Endpoint=:8 \ No newline at end of file