• source navigation  • diff markup  • identifier search  • freetext search  • 

Sources/ubus/tests/fuzz/test-fuzz.c

  1 #include <stdio.h>
  2 #include <stdint.h>
  3 #include <stddef.h>
  4 #include <limits.h>
  5 
  6 #include <libubox/blob.h>
  7 #include <libubox/blobmsg.h>
  8 
  9 #include "ubusmsg.h"
 10 #include "libubus.h"
 11 #include "libubus-internal.h"
 12 
 13 static void _ubus_validate_hdr(const uint8_t *data, size_t size)
 14 {
 15         if (size > sizeof(struct ubus_msghdr))
 16                 return;
 17 
 18         ubus_validate_hdr((struct ubus_msghdr *) data);
 19 }
 20 
 21 static void _ubus_parse_msg(const uint8_t *data, size_t size)
 22 {
 23         struct blob_attr *attr = (struct blob_attr *) data;
 24 
 25         if (size < sizeof(struct blob_attr *))
 26                 return;
 27 
 28         if (blob_pad_len(attr) > UBUS_MAX_MSGLEN)
 29                 return;
 30 
 31         ubus_parse_msg(attr, size);
 32 }
 33 
 34 int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size)
 35 {
 36         _ubus_validate_hdr(data, size);
 37         _ubus_parse_msg(data, size);
 38 
 39         return 0;
 40 }
 41 

This page was automatically generated by LXR 0.3.1.  •  OpenWrt