Annotation of embedaddon/arping/src/fuzz_pingip.c, revision 1.1.1.1
1.1 misho 1: /* arping/src/fuzz_pingip.c
2: *
3: * Copyright (C) 2016 Thomas Habets <thomas@habets.se>
4: *
5: * This program is free software; you can redistribute it and/or modify
6: * it under the terms of the GNU General Public License as published by
7: * the Free Software Foundation; either version 2 of the License, or
8: * (at your option) any later version.
9: *
10: * This program is distributed in the hope that it will be useful,
11: * but WITHOUT ANY WARRANTY; without even the implied warranty of
12: * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13: * GNU General Public License for more details.
14: *
15: * You should have received a copy of the GNU General Public License along
16: * with this program; if not, write to the Free Software Foundation, Inc.,
17: * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
18: */
19: #include<arpa/inet.h>
20: #include<errno.h>
21: #include<inttypes.h>
22: #include<stdio.h>
23: #include<stdlib.h>
24: #include<string.h>
25: #include<time.h>
26: #include<unistd.h>
27:
28: #include<pcap.h>
29:
30: #include"arping.h"
31:
32: int
33: main()
34: {
35: const size_t maxpacket = 1500;
36: char* const packet = calloc(1, maxpacket);
37: size_t packet_size = 0;
38:
39: // Read packet.
40: {
41: char* p = packet;
42: size_t size = maxpacket;
43: while (size > 0) {
44: const ssize_t n = read(STDIN_FILENO, p, size);
45: if (n == 0) {
46: break;
47: }
48: if (n < 0) {
49: fprintf(stderr, "read(): %s\n", strerror(errno));
50: return 1;
51: }
52: size -= n;
53: p += n;
54: }
55: packet_size = p - packet;
56: }
57:
58: struct pcap_pkthdr pkthdr;
59: pkthdr.ts.tv_sec = time(NULL);
60: pkthdr.ts.tv_usec = 0;
61: pkthdr.len = packet_size;
62: pkthdr.caplen = packet_size;
63:
64: dstip = htonl(0x12345678);
65: pingip_recv(NULL, &pkthdr, packet);
66:
67: free(packet);
68: return 0;
69: }
70: /* ---- Emacs Variables ----
71: * Local Variables:
72: * c-basic-offset: 8
73: * indent-tabs-mode: nil
74: * End:
75: */
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>