syzkaller/prog
Dmitry Vyukov 986fa4971c prog: don't squash objects that contain pointers
Squashing pointers creates several problems:
- we need to generate pointer types on the fly,
  something we don't do in any other contexts,
  it complicates other changes
- pointers are very special as values,
  if we change size of the surrounding blobs,
  offsets changes and we will use something that's
  not a pointer as pointer and vise versa,
  boths things are most likley very bad as inputs
- squashing/any implementation is just too complex

This disqualifies several types for squashing:

    <         alloc_pd_cmd
    <         arpt_replace
    <         array[cmsghdr_rds]
    <         create_cq_cmd
    <         create_flow_cmd
    <         create_qp_cmd
    <         create_srq_cmd
    <         ebt_counters_info
    <         ip6t_replace
    <         ipt_replace
    <         mlx5_alloc_pd_cmd
    <         mlx5_create_dv_qp_cmd
    <         open_xrcd_cmd
    <         post_recv_cmd
    <         post_send_cmd
    <         post_srq_recv_cmd
    <         query_qp_cmd
    <         query_srq_cmd
    <         reg_mr_cmd
    <         rereg_mr_cmd
    <         resize_cq_cmd
    <         usbdevfs_urb
    <         vhost_memory
    <         vusb_connect_descriptors

and adds few new:

    >         binder_objects
    >         query_qp_resp
    >         resize_cq_resp
    >         usb_bos_descriptor
    >         usb_string_descriptor

Overall this looks sane.
Majority is still unchanged.
2020-05-01 13:31:17 +02:00
..
test prog: fix out-of-bounds access 2019-07-30 19:33:02 +02:00
alloc_test.go .gometalinter.json: enable gofmt 2018-07-31 12:16:54 +02:00
alloc.go prog: fix a bunch of bugs in parsing 2019-03-29 08:56:02 +01:00
analysis.go prog: add ignore_return and breaks_returns call attribtues 2020-04-19 10:26:57 +02:00
any_test.go prog: don't squash objects that contain pointers 2020-05-01 13:31:17 +02:00
any.go prog: don't squash objects that contain pointers 2020-05-01 13:31:17 +02:00
checksum_test.go pkg/csource: fix handling of proc types 2017-12-22 11:59:46 +01:00
checksum.go sys/linux: improve ipv4/ipv6 vnet descriptions 2020-01-03 16:11:49 +01:00
clone.go prog: extend panic messages 2019-11-26 14:29:58 +01:00
decl_test.go prog: speed up resource ctors detection 2019-08-30 12:51:28 -07:00
decodeexec.go all: fix some static analysis warnings 2019-04-23 17:58:54 +03:00
encoding_test.go prog: make program parsing more permissive 2020-04-28 16:52:22 +02:00
encoding.go prog: make program parsing more permissive 2020-04-28 16:52:22 +02:00
encodingexec_test.go pkg/compiler: fix bitfield layout bug 2019-12-20 16:45:34 +01:00
encodingexec.go executor: increase input buffer size 2020-02-10 10:51:25 +01:00
export_test.go prog: export deserialization test helper for sys/{linux,openbsd} 2020-03-17 21:19:13 +01:00
generation.go prog: rename target.SanitizeCall to Neutralize 2020-03-17 21:19:13 +01:00
hints_test.go prog: simplify hints test 2020-04-28 16:52:22 +02:00
hints.go prog: rename target.SanitizeCall to Neutralize 2020-03-17 21:19:13 +01:00
meta.go prog: dump orig prog if Deserialize panics 2020-02-21 10:22:07 +01:00
minimization_test.go prog: don't minimize ProcType to 0 2019-07-26 10:29:36 +02:00
minimization.go prog: rename target.SanitizeCall to Neutralize 2020-03-17 21:19:13 +01:00
mutation_test.go pkg/compiler: check that flags values fit into base type 2020-03-17 21:19:13 +01:00
mutation.go prog: reduce code nesting level 2020-04-28 16:52:22 +02:00
norace_test.go prog: parallelize tests 2018-05-04 20:07:32 +02:00
parse_test.go prog: parallelize tests 2018-05-04 20:07:32 +02:00
parse.go prog: fix out-of-bounds access 2019-07-30 19:33:02 +02:00
prio_test.go prog: fix typo in comment 2019-12-04 09:46:40 +01:00
prio.go prog: sort enabled syscalls for determinism 2020-03-06 09:01:48 +01:00
prog_test.go prog: add ignore_return and breaks_returns call attribtues 2020-04-19 10:26:57 +02:00
prog.go prog: rename target.SanitizeCall to Neutralize 2020-03-17 21:19:13 +01:00
race_test.go prog: parallelize tests 2018-05-04 20:07:32 +02:00
rand_test.go prog: add test for truncateToBitSize 2020-03-24 08:42:59 +01:00
rand.go prog: introduce call attributes 2020-04-19 10:26:57 +02:00
resources.go syz-manager: corpus rotation 2019-12-30 16:37:38 +01:00
rotation_test.go syz-manager: corpus rotation 2019-12-30 16:37:38 +01:00
rotation.go syz-manager: corpus rotation 2019-12-30 16:37:38 +01:00
size_test.go prog: export deserialization test helper for sys/{linux,openbsd} 2020-03-17 21:19:13 +01:00
size.go prog: reduce len mutation priority 2020-01-18 21:02:24 +01:00
target.go pkg/compiler: deduplicate Types in descriptions 2020-04-26 05:58:31 +02:00
test_util.go prog: improve TestDeserializeHelper 2020-03-24 08:43:00 +01:00
types.go pkg/compiler: deduplicate Types in descriptions 2020-04-26 05:58:31 +02:00
validation.go prog: fix a bunch of bugs in parsing 2019-03-29 08:56:02 +01:00