1
0
mirror of https://github.com/RIOT-OS/RIOT.git synced 2024-12-29 04:50:03 +01:00

fuzzing/gcoap: Initialize

This commit is contained in:
Sören Tempel 2020-04-18 12:28:08 +02:00
parent 3314388417
commit e24774b739
5 changed files with 68 additions and 0 deletions

6
fuzzing/gcoap/Makefile Normal file
View File

@ -0,0 +1,6 @@
include ../Makefile.fuzzing_common
USEMODULE += gnrc_ipv6
USEMODULE += gcoap
include $(RIOTBASE)/Makefile.include

View File

@ -0,0 +1 @@
@¹'=fe80::8813:2ff:fec1:98ef%tap0.well-knowncore

View File

@ -0,0 +1 @@
@ą'=fe80::8813:2ff:fec1:98ef%tap0„riotvalue˙foo

View File

@ -0,0 +1 @@
Pą'=fe80::8813:2ff:fec1:98ef%tap0„riotboard

59
fuzzing/gcoap/main.c Normal file
View File

@ -0,0 +1,59 @@
/*
* Copyright (C) 2019 Sören Tempel <tempel@uni-bremen.de>
*
* This file is subject to the terms and conditions of the GNU Lesser
* General Public License v2.1. See the file LICENSE in the top level
* directory for more details.
*/
#include <err.h>
#include <stdlib.h>
#include "thread.h"
#include "fuzzing.h"
#include "kernel_types.h"
#include "net/gcoap.h"
#include "net/gnrc/udp.h"
#include "net/gnrc/pkt.h"
#include "net/ipv6/addr.h"
#include "net/gnrc/nettype.h"
#include "net/gnrc/ipv6/hdr.h"
static uint32_t demux = COAP_PORT;
static gnrc_nettype_t ntype = GNRC_NETTYPE_UDP;
void initialize(void)
{
if (fuzzing_init(NULL, 0)) {
errx(EXIT_FAILURE, "fuzzing_init failed");
}
gcoap_init();
}
int main(void)
{
gnrc_pktsnip_t *ipkt, *upkt, *cpkt;
initialize();
if (!(ipkt = gnrc_ipv6_hdr_build(NULL, NULL, &ipv6_addr_loopback))) {
errx(EXIT_FAILURE, "gnrc_ipv6_hdr_build failed");
}
if (!(upkt = gnrc_udp_hdr_build(ipkt, 2342, COAP_PORT))) {
errx(EXIT_FAILURE, "gnrc_udp_hdr_build failed");
}
if (!(cpkt = gnrc_pktbuf_add(upkt, NULL, 0, GNRC_NETTYPE_UNDEF))) {
errx(EXIT_FAILURE, "gnrc_pktbuf_add failed");
}
if (fuzzing_read_packet(STDIN_FILENO, cpkt)) {
errx(EXIT_FAILURE, "fuzzing_read_packet failed");
}
if (!gnrc_netapi_dispatch_receive(ntype, demux, cpkt)) {
errx(EXIT_FAILURE, "couldn't find any subscriber");
}
return EXIT_SUCCESS;
}