File:  [ELWIX - Embedded LightWeight unIX -] / embedaddon / arping / src / fuzz_pingmac.c
Revision 1.1.1.1 (vendor branch): download - view: text, annotated - select for diffs - revision graph
Tue Mar 16 23:40:57 2021 UTC (3 years, 6 months ago) by misho
Branches: arping, MAIN
CVS tags: v2_21, HEAD
arping 2.21

    1: #include<errno.h>
    2: #include<string.h>
    3: #include<stdio.h>
    4: #include<stdlib.h>
    5: #include<unistd.h>
    6: #include<inttypes.h>
    7: 
    8: #include<pcap.h>
    9: 
   10: #include"arping.h"
   11: 
   12: int
   13: main()
   14: {
   15:         const size_t maxpacket = 1500;
   16:         char* const packet = calloc(1, maxpacket);
   17:         size_t packet_size = 0;
   18: 
   19:         // Read packet.
   20:         {
   21:                 char* p = packet;
   22:                 size_t size = maxpacket;
   23:                 while (size > 0) {
   24:                         const ssize_t n = read(STDIN_FILENO, p, size);
   25:                         if (n == 0) {
   26:                                 break;
   27:                         }
   28:                         if (n < 0) {
   29:                                 fprintf(stderr, "read(): %s\n", strerror(errno));
   30:                                 return 1;
   31:                         }
   32:                         size -= n;
   33:                         p += n;
   34:                 }
   35:                 packet_size = p - packet;
   36:         }
   37: 
   38:         struct pcap_pkthdr pkthdr;
   39:         pkthdr.ts.tv_sec = time(NULL);
   40:         pkthdr.ts.tv_usec = 0;
   41:         pkthdr.len = packet_size;
   42:         pkthdr.caplen = packet_size;
   43: 
   44:         verbose = 9;
   45:         dstip = htonl(0x12345678);
   46:         pingip_recv(NULL, &pkthdr, packet);
   47: 
   48:         free(packet);
   49:         return 0;
   50: }
   51: /* ---- Emacs Variables ----
   52:  * Local Variables:
   53:  * c-basic-offset: 8
   54:  * indent-tabs-mode: nil
   55:  * End:
   56:  */

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>