? github.com/google/syzkaller/dashboard/dashapi [no test files] ok github.com/google/syzkaller/dashboard/app 0.112s ? github.com/google/syzkaller/pkg/debugtracer [no test files] ? github.com/google/syzkaller/pkg/gce [no test files] ? github.com/google/syzkaller/pkg/gcs [no test files] ? github.com/google/syzkaller/pkg/hash [no test files] ok github.com/google/syzkaller/executor 4.697s ok github.com/google/syzkaller/pkg/asset 0.147s ok github.com/google/syzkaller/pkg/ast 1.187s ok github.com/google/syzkaller/pkg/auth (cached) ? github.com/google/syzkaller/pkg/html/pages [no test files] ? github.com/google/syzkaller/pkg/ifuzz/iset [no test files] ? github.com/google/syzkaller/pkg/ifuzz/powerpc [no test files] ? github.com/google/syzkaller/pkg/ifuzz/powerpc/generated [no test files] ? github.com/google/syzkaller/pkg/ifuzz/x86 [no test files] ? github.com/google/syzkaller/pkg/ifuzz/x86/gen [no test files] ? github.com/google/syzkaller/pkg/ifuzz/x86/generated [no test files] ? github.com/google/syzkaller/pkg/ipc/ipcconfig [no test files] ? github.com/google/syzkaller/pkg/kcidb [no test files] ? github.com/google/syzkaller/pkg/report/crash [no test files] ? github.com/google/syzkaller/pkg/rpctype [no test files] ? github.com/google/syzkaller/pkg/signal [no test files] ? github.com/google/syzkaller/pkg/testutil [no test files] ? github.com/google/syzkaller/pkg/tools [no test files] ? github.com/google/syzkaller/sys [no test files] ? github.com/google/syzkaller/sys/akaros [no test files] ? github.com/google/syzkaller/sys/akaros/gen [no test files] ? github.com/google/syzkaller/sys/darwin [no test files] ? github.com/google/syzkaller/sys/darwin/gen [no test files] ? github.com/google/syzkaller/sys/freebsd [no test files] ? github.com/google/syzkaller/sys/freebsd/gen [no test files] ? github.com/google/syzkaller/sys/fuchsia [no test files] ? github.com/google/syzkaller/sys/fuchsia/fidlgen [no test files] ? github.com/google/syzkaller/sys/fuchsia/gen [no test files] ? github.com/google/syzkaller/sys/fuchsia/layout [no test files] ? github.com/google/syzkaller/sys/linux/gen [no test files] ? github.com/google/syzkaller/sys/netbsd/gen [no test files] ? github.com/google/syzkaller/sys/openbsd/gen [no test files] ? github.com/google/syzkaller/sys/syz-extract [no test files] ? github.com/google/syzkaller/sys/syz-sysgen [no test files] ? github.com/google/syzkaller/sys/targets [no test files] ? github.com/google/syzkaller/sys/test [no test files] ? github.com/google/syzkaller/sys/test/gen [no test files] ? github.com/google/syzkaller/sys/trusty [no test files] ? github.com/google/syzkaller/sys/trusty/gen [no test files] ? github.com/google/syzkaller/sys/windows [no test files] ? github.com/google/syzkaller/sys/windows/gen [no test files] ? github.com/google/syzkaller/syz-runner [no test files] ? github.com/google/syzkaller/tools/syz-benchcmp [no test files] ? github.com/google/syzkaller/tools/syz-bisect [no test files] ? github.com/google/syzkaller/tools/syz-build [no test files] ? github.com/google/syzkaller/tools/syz-check [no test files] ? github.com/google/syzkaller/tools/syz-cover [no test files] ? github.com/google/syzkaller/tools/syz-crush [no test files] ? github.com/google/syzkaller/tools/syz-db [no test files] ? github.com/google/syzkaller/tools/syz-execprog [no test files] ? github.com/google/syzkaller/tools/syz-expand [no test files] ? github.com/google/syzkaller/tools/syz-fillreports [no test files] ? github.com/google/syzkaller/tools/syz-fmt [no test files] ? github.com/google/syzkaller/tools/syz-hubtool [no test files] ? github.com/google/syzkaller/tools/syz-imagegen [no test files] ? github.com/google/syzkaller/tools/syz-kcidb [no test files] ? github.com/google/syzkaller/tools/syz-lore [no test files] ? github.com/google/syzkaller/tools/syz-make [no test files] ? github.com/google/syzkaller/tools/syz-minconfig [no test files] ? github.com/google/syzkaller/tools/syz-mutate [no test files] ? github.com/google/syzkaller/tools/syz-prog2c [no test files] ? github.com/google/syzkaller/tools/syz-query-subsystems [no test files] ? github.com/google/syzkaller/tools/syz-reporter [no test files] ? github.com/google/syzkaller/tools/syz-repro [no test files] ? github.com/google/syzkaller/tools/syz-reprolist [no test files] ? github.com/google/syzkaller/tools/syz-runtest [no test files] ? github.com/google/syzkaller/tools/syz-showprio [no test files] ? github.com/google/syzkaller/tools/syz-stress [no test files] ? github.com/google/syzkaller/tools/syz-symbolize [no test files] ? github.com/google/syzkaller/tools/syz-testbed [no test files] ? github.com/google/syzkaller/tools/syz-testbuild [no test files] ? github.com/google/syzkaller/tools/syz-trace2syz [no test files] ? github.com/google/syzkaller/tools/syz-tty [no test files] ? github.com/google/syzkaller/tools/syz-upgrade [no test files] ? github.com/google/syzkaller/tools/syz-usbgen [no test files] ? github.com/google/syzkaller/vm/adb [no test files] ? github.com/google/syzkaller/vm/bhyve [no test files] ? github.com/google/syzkaller/vm/cuttlefish [no test files] ? github.com/google/syzkaller/vm/gce [no test files] ? github.com/google/syzkaller/vm/gvisor [no test files] ? github.com/google/syzkaller/vm/kvm [no test files] ? github.com/google/syzkaller/vm/odroid [no test files] ? github.com/google/syzkaller/vm/proxyapp/mocks [no test files] ? github.com/google/syzkaller/vm/proxyapp/proxyrpc [no test files] ? github.com/google/syzkaller/vm/qemu [no test files] ? github.com/google/syzkaller/vm/starnix [no test files] ? github.com/google/syzkaller/vm/vmm [no test files] ? github.com/google/syzkaller/vm/vmware [no test files] ok github.com/google/syzkaller/pkg/bisect 40.550s ok github.com/google/syzkaller/pkg/bisect/minimize (cached) ok github.com/google/syzkaller/pkg/build 8.659s ok github.com/google/syzkaller/pkg/compiler 6.332s ok github.com/google/syzkaller/pkg/config (cached) ok github.com/google/syzkaller/pkg/cover 14.504s ok github.com/google/syzkaller/pkg/cover/backend 1.004s --- FAIL: TestGenerate (17.49s) --- FAIL: TestGenerate/fuchsia/amd64 (0.20s) testutil.go:33: seed=1694177690867493375 testutil.go:33: seed=1694177691065550311 --- FAIL: TestGenerate/fuchsia/amd64/0 (0.87s) csource_test.go:150: opts: {Threaded:false Repeat:true RepeatTimes:0 Procs:0 Slowdown:1 Sandbox:none SandboxArg:0 Leak:false NetInjection:false NetDevices:false NetReset:false Cgroups:false BinfmtMisc:false CloseFDs:false KCSAN:false DevlinkPCI:false NicVF:false USB:false VhciInjection:false Wifi:false IEEE802154:false Sysctl:false Swap:false UseTmpDir:true HandleSegv:false Repro:false Trace:false LegacyOptions:{Collide:false Fault:false FaultCall:0 FaultNth:0}} program: zx_system_get_performance_info(0x0, 0x0, 0x4, &(0x7f0000000000)=""/1, &(0x7f0000000040)) (fail_nth: 1) r0 = syz_future_time(0x1) (async) zx_channel_call$fuchsia_io_FileSeek(0x0, 0x0, r0, &(0x7f0000010140)={&(0x7f0000000080)={{}, 0xffffffffffffffff, 0x2}, &(0x7f00000000c0), &(0x7f0000000100), &(0x7f0000010100), 0x1c, 0x0, 0x10000}, &(0x7f0000010180), &(0x7f00000101c0)) (rerun: 4) zx_process_create(0x0, &(0x7f0000010200)='\x00', 0x1, 0x0, &(0x7f0000010240)=0x0, &(0x7f0000010280)) zx_object_get_child(0x0, 0x0, 0x800, &(0x7f00000102c0)=0x0) zx_process_start(r1, r2, &(0x7f0000010300)="c4817d290e8051bf0065673666450ff7fdc401a1c40009c482f935f1c441fc52d0660fc5f398c4837909c6b1664b0f6ee5f341d8cd", &(0x7f0000010340)=""/4096, 0x0, 0x0) zx_channel_call(r2, 0x0, r0, &(0x7f0000012440)={&(0x7f0000011340)="68b92e90e81a0a65aba68ac3039007c40663fec316f1d3f030eb37cd0f8d9e056bc93cbf8811c6ec84bd43ee1dbc4eb9f291b1ff6296bf0f229b823cf75021ecdd1d843abece20ab3e287801d8a782d9947b008614b221e17c641ae2b5b0307cc6594759aaddde5b89ead9c032e8754ab98f09b03c802934cf4f75a4b153ae626a37333e7f35d166315311f3953ecf02f615822c58ac205d4da75d434ff36da5052a2f5d6c2a15477eb5536c80ee076e9894e6c63c0bf3d3004ce2107385919fcb771beebd389824689fbd28804b23cd933a3ab8d862c1f3cac7352fe4fccfc22d38777d69ba0fa2c820166ae8d351e116f0ca3dcfe6fc6d38f526411d407d0b2f97d822a054f440b05b7598b66e1848b0f2a8c2718f62c2c503fb28c8820626d9f46300f474feda0c816e43d9ed963447e0cd3d473ac3f0633d3d1fe4b43e587c3bfb5d3b9c3fb9472f7593c19a2d573f04796a7655ff5a1c0995834b07b62b79511946216d6c418af8ec0845782f112dfe0b7e4b6b0fb3604b4b2df31177a7c1976de255179553bff2544aa557a454b2657c5b3f0f71cff83c0b92d302d2201b7db36e9d8677dfad29ac432c25ea3b123db4f9240e9202c219a6479f05322aeb7da49f198893bdbfa0bf19a815e63aab70d4bcf3cb8b38f9ee914b43ee33e006d827919ce084d84257cb139979bb144e19cc8745478ea0ffde10d3cf590386497b43f4bc2725ec2d0df94f1a534a1ee8c429400e1078cc58a7bd8d1ded2cf4966766f21b4c07ce40d85593f8642b29652424a85aebdccdd8beba9fbfe6b1414cd3164552e7e49bb930019990dac4751a65be853b953b88eccac92c889c4d95116e94628480baab01a6cd991353ccbc8e78153038f45d9d2dc2c6fb96e37d9bdb69be948f12579371a43969e942ca69387296cf781526b7ef422f4c9bc644827237a03b2a60baaff7703ee33956dc669b1c04c721bf68f343c80b61f35ca1b19559965fd7026a1cec9bd9d92f1450ecbaf42de12042bd630d3445706c56775071deae54f2c531bc8c0be2268a13f12af588057f3ebd3ed17fa09a1a06071ec13e7e7638b15a8e0c55524a90c2d7c79c1b2f427fffaffa26390f1d6cd4abf2169604b2e779a734e06b15d03ed940bbc02ed1203f55dd3fd2957608398fc7265961dda28d626a8ea5edee28a37210c8c7321611e52b4e541c90e0721eda0de5f30cf3885eda30d6ece46263809aa1e5fe88b93106f1e7437faefcce951b197aa5b1f2780aa437cf6a1f9c069fe82d18c57ca9a705cf5202bbd1afc41e1d289a46a434cfd16bb7ce6ee764d5f0e6c81e8486eca116902abad6b98df389eaef8156b8b56325358e01f3ec30d050d9226ecfb0a1d7e2cae6b5ca6738c8cdeba6bc118327d682f8b5957c55617feac811ab2ab6ee3aee63639429f9979db5285c330da8a9f6a306b69cecfb2be3c640f04331fff3789a47445c5125fb99e996f401b319bfce5b08936db9c6f828c682bbe69e866ac0a6b204e02ecefd61142d0c20c1995562bc1fdab582296189a1b34bdb75722e64e7d4f00b8d83fdc2f8fc76971143750acd0d513b81298a2f8c72252cceb73633976f52fc2e93a1ef806ec7957c66eeac4c52f9b584580390c6fa4643e0cad59ad3f58104a728d93bc6869a6f649892eef9ecb3eebcebd34854f8e19db5ac62ba0b67a740bb39b1905e8d345e2ff21b4e25974bd5bc7c862607ddb6ac10cecde59c1a932b2fb5b22c673457bd4a396e3667f4227a276fa1a1b20fb60ff5841af64e981f6c84be84ad1bb10d941d615629654e1d128c9a377ad60b04c3cf2aad7118626eaae0b4068dd623e1a2d98b95524f9db16049ecffd5c8fee7e1bba747a1ee9ec5f67aee0b69951dfa0b587c34beb36be3c16c3ab024eb271f3716499ed5a1795eac3423c37b8fa9d20d1af4e967164263fc60e0cd8e84cfc312b34185f40a7d0777749147f60438653bc3d36a1dad3ea433684464e0c9c12a88c44d862e022992cb4bfa603d1f8d21a0a5bd6c62fc3e8427f196507daed74f62a17ba9781a4740cf7f9c5df12362ded5aaa835c1943c3d93241e9c312bff7232e6e92321400ddacb84b84b1c4120575c5d0246d78ad3e9fd4acbbb5115944d1c39f3e07405baf7dd4bd633c0bfdbaafdb42954eb6206668d53e9947594e4d0911b09036cba8f09f4cc198dc064c68d5a7b848dd2a6a664619611845767f992b1527a62771d36527cc881b5ccc06fbbf864e27dca99a433424bdb6ef631a7c824c246b7222216000dba03d7664c485a2cdfc04042db57164aa760078abb80ed030c0e6c83ae5b9fb4225c7ab72479d1762c730fe1fd9deac13d6cba0d78c01e03c12d9410cfb11ed20166a5780dd5e2eb221aaf424eddde14f4ac8302f16b699713d3225436ed4912aaef584979246f60a5168577856b82c2f809ccea64488fad8de0dccc30e7396c27c60d1da0f294ef98d596707439c35e248849121788643726329c1acd0bd79125240782d8af03b2b5cce2d960b8a9b3c81e1f88b9a07860a916e46053094622c6057af203c842ff84375729030665c5705240949e1b729d29496a29ed39d29317483eec8cbfb7dceac0b0ca6c3fb07aeb6a2368dc767eb07d7ed9cc62b910b801d08989a83f3be58618701c713f298ca7f17eae72510b29568c3159a44a01f7ffaeeddeae9d22c68ea261bc2060bce8a1213142b60b5a8d1e7314fe7fc39364b049d54f2a73cc7780f6ec477cb2738a0cb28a919f2c0cf935c1ef51bbac891338b72813acc379848bfc3b39969aeaa9f2787ddd183c3722a12b0b90f48ce2f7533f00d122c9835280f7fd8a0ad41aa1b08ba6d7dfca7b583c1e03989906040f5984c6699f382909f5939599585232c92776a1b5592712a42d5f44fc21a1882850261042ea98762309ded8799d909d6a406336a5f276fb29e9a8589736ded2e97ebc6f82b5f577d0a07021f4fcd6371c5ed29a5380d9dbf0d0ca34b684631dfb501e2ae243877432dad26a3cd3c94664a295461d6e78d057ef89842bac7a33f6a634b2e374ffac86aee35fd80008ab9809830554d7404e7540f11a7ef273dc846a57eef2b27204be709c3eaea2b305df401e4007f7f2978ebd37190e5e7cbf2d8ee418d6d9fa59ecba7603cba8d2f731733f42e49499c68592f87fea94354e0c066c30a256eab36495b10d082ede4e20630e4d799141cc44801408cd3b28a71c075504b3acc1b69d72ec615275781bf9bbdd87b7d409cf3cdd18e7cc86a164ddb980bf1adac888b7bab3d7c968a46481321c10748b79450303e5aa0860d6fcc4304e80d698866593ff7f18cdd1f93df672c7ce860b192d9e033d8aef00d4685c4165547303848b91bcb2a3956e2d17e51a70a6e383bce71d49be32bd461aec0d691c8849e6b178558e47b28831113fa448e7c950fee79dd5d0190d4c11d29bc2e0477091138e1d3836f1bb86bea2edc7ee8ebfca693022823d4968a067b36c06b0caa8e84633d81ea62e548a4e8709671f0c928a28e524af78ebd0a815aac9f6df611df081b75f5527f3b5a04a501ef02e37afe7aeb077d2d7aab08ccbc243fe69395d77ec5db84c3b6c5c8480afb3b3ce91e6a4dfb9bbeb5e623d1cfeff8b53b1e4f0337a4d8d5b3818517d66704b5756375dd85712ea2ae3c643cb564a9bb8c032ee333d0eccc6fa0170b5dd7a78ad50d7255fa113dfa1b20317b1d4d508967a38306ebe3423233198d6e341339e90d3e31bae9a1528b8f100aec437f656670c2bb3917bf9dff0fc2138cf4de3852c71a0c27ac0e1da61fde7dfe96603fbbe61b7697f4676b73d46f10d092348effa957b9af16aef7fed036ba740eadb9e3ee518700351dd63fd54a7853c6aae180e9cf7e71660178ac8a82b590104827daf9bd1ef078ad56cd393d8c3d0b0c042d27ae4b6f531d02c9f464272a71426d588471c2a6159b36ee76e16585340d1a1831da941556a84eb7684547bba0040dc4198e768c09e38a67562612de6eff630ff92f3c885cc41d31f54b802e6b3b47d51c387d9b3c20b7680dcf0ce71aaa46bfec60eab7f750a534cdb02cfabde84968002558ad22157b0528d13558d2aefcfc47302ef05778e71003c19645d84a511571093fdf67623cde36bc8ca16689b7788841d9f3e0bc1fde3d6a72a98a64aa8b67bf1775b012575dae015b4b0e3a3f96d862f3e75997314bb7ad1e00ede8ba53160eaee9d75f6813ba0a600156e01c1b9ae8cfcf4bf39fbacbc8764cc5656bc812b2541cec7d86c180f5bb38a124427c6966522eeef27ab3ceca125d5a34c832319eb76ca834f09629102c8304a02edc41707e794927c35ac31d6b6c006acd8524dc692878843a291a5d9dec9420aa7fb4d2a7191a5c2e81f6132094391b9ed0f61b0e44a3c2c96fb1309594c37d1a5ab89736e88643add4e2b8c7d9a33eda3d438248597dd2e578eb937874f5b91386511e9f96a8cdd430fb5cb30548cb64380a964356a5205eaaa188e97caced0fc678e6e6b5508614db1a9af942061035338ba7251dd4cd787f7e5465c07121ef8f98da151186ee0c727def8c68885ec3a74a5b69efdaabc97465351b421417c1b79147c9889b39eaf733c4e6b370cc468cde4611e77ee9f29f8cef457b2afdc832d22ee9f01afa23a69ffee441a8e0e02887e00e56864a764f12dfaaa481e9347199fb4dce1ba023d0ccd3843b30ce940d3dd870a3971f5798a53b713216e1ebb754935ddf39e130b4bbdfedae24bbfb943cd3d32fc6711967cf72503ba04d48b68f418a5151b68ccdd3d85b06d720c5aecc7b3d4c83cd3214b6483dfbd6bd571c17e7979f01bc8a5dce334f1888f37d2d04c7aaa97a33252a670e2b11f4bbcb5d67371e902ab26253e621b744a7f4c21c0ee68222e607fe129a178203ec5cc02194666f1c6e7a02462fab4f23b8ca99efa4e177373701f33553b3385f07854b0ae7695bc168b1bbcd360b7af39c752d32c0c12720eac81811b3c0765d4d3844ceceb84a02a39eb83ff9ff98cfdfd5892fe1f9949a027257d1b7fb49e28be877b89b7bc757edc7962dfc20d0888d4c4c4a7038d5151d73c3eddb3ce4eb1b4cda2ef60d97cca726da23611b8836a772ba0e79a8b04a5cc0b2b1aa67089ed27728650a9ef2b2123124d821d1cfaa70787f7a5536ae2286524cb5ddf06b6fb6f60d071f4af476744717f53221b44e66a4428be8710010233be5a4ab5c1fd3392373320fbbe0c4f5a8b52b4d87a2543d838cc178657bc262e42213847bb67ab1c24f7aa335df186683ecd0cb51f12542b69a13b3dccfdcff43f2fdd9a82034dccc50eb0e447820050b32ee8206b8812a6bbd55a12acff0f1b76c5d561f7827d09c4ba629b77677b70f9322bcad028c6d826bd075f3c62ed02c0e26845fc009f1cf5511f9f70b2b881ee4c5b13453d2414f9fc213f56b91f3a73c0b530772f4a05f03dd8239c1605ef87af7b2c1e065b761d9b87517e516a6a9b65712a696b3246fa58c2d53a8cb34706752b08eb8b18fb2afa05518e578fc887047b7cc865193a4ea096592f4b9c2ba330999622b9c2e4b033adf9fee8b95dbefbd30a353cb20525b972f46504a0153e0a174990a448f34c7a015e2eba7361f00849d9dc352a1764a0c02f2b6dd78ffa205ebdf829dab87611bf5e08252d598a89329095dd7e299c2b20b4b7bd1998991b12118b0a93849f955b2b8edf2533a3599fcbd28bd3cf5c9248cbfcafab3540b428f0d54201ca2a84a8cabda5c8fa5122d3a4", &(0x7f0000012340)=[r2, r2], &(0x7f0000012380)=""/81, &(0x7f0000012400)=[0x0, 0x0, 0x0, 0x0, 0x0], 0x1000, 0x2, 0x51, 0x5}, &(0x7f0000012480), &(0x7f00000124c0)) zx_channel_read$fuchsia_io_DirectoryAdminOnOpen(r3, 0x0, &(0x7f0000012500), 0x10000, &(0x7f0000022500), 0x0, &(0x7f0000022540), &(0x7f0000022580)) zx_pager_create_vmo(r4, 0x0, r4, 0x3, 0x7fb, &(0x7f00000225c0)=0x0) zx_stream_seek(r5, 0x0, 0x401, &(0x7f0000022600)) syz_execute_func(&(0x7f0000000000)="c4a149c2da0b0f18d23e26f33667dbe2c4c1d1163bc4c1b4c6850a00000000f340ac852f470ff24a004479a526f2ad") syz_future_time(0x1) syz_job_default() syz_mmap(&(0x7f0000ffb000/0x4000)=nil, 0x4000) syz_process_self() syz_thread_self() syz_vmar_root_self() csource_test.go:151: failed to build program: // autogenerated by syzkaller (https://github.com/google/syzkaller) #define _GNU_SOURCE #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include static void use_temporary_dir(void) { char tmpdir_template[] = "/tmp/syzkaller.XXXXXX"; char* tmpdir = mkdtemp(tmpdir_template); if (!tmpdir) exit(1); if (chmod(tmpdir, 0777)) exit(1); if (chdir(tmpdir)) exit(1); } static int inject_fault(int nth) { return 0; } static void setup_fault() { } long syz_mmap(size_t addr, size_t size) { zx_handle_t root = zx_vmar_root_self(); zx_info_vmar_t info; zx_status_t status = zx_object_get_info(root, ZX_INFO_VMAR, &info, sizeof(info), 0, 0); if (status != ZX_OK) { return status; } zx_handle_t vmo; status = zx_vmo_create(size, 0, &vmo); if (status != ZX_OK) { return status; } uintptr_t mapped_addr; status = zx_vmar_map(root, ZX_VM_FLAG_SPECIFIC_OVERWRITE | ZX_VM_FLAG_PERM_READ | ZX_VM_FLAG_PERM_WRITE, addr - info.base, vmo, 0, size, &mapped_addr); zx_status_t close_vmo_status = zx_handle_close(vmo); if (close_vmo_status != ZX_OK) { } return status; } static long syz_process_self(void) { return zx_process_self(); } static long syz_thread_self(void) { return zx_thread_self(); } static long syz_vmar_root_self(void) { return zx_vmar_root_self(); } static long syz_job_default(void) { return zx_job_default(); } static long syz_future_time(volatile long when) { zx_time_t delta_ms = 10000; switch (when) { case 0: delta_ms = 5; break; case 1: delta_ms = 30; break; } zx_time_t now = 0; zx_clock_read(ZX_CLOCK_MONOTONIC, &now); return now + delta_ms * 1000 * 1000; } static void loop(); static int do_sandbox_none(void) { loop(); return 0; } #define CAST(f) ({void* p = (void*)f; p; }) static long syz_execute_func(volatile long text) { ((void (*)(void))(text))(); return 0; } static void execute_one(void); static void loop(void) { execute_one(); } uint64_t r[6] = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0}; void execute_one(void) { intptr_t res = 0; inject_fault(1); ((intptr_t(*)(intptr_t,intptr_t,intptr_t,intptr_t,intptr_t))CAST(zx_system_get_performance_info))(/*res=*/0, /*topic=*/0, /*count=*/4, /*info=*/0x20000000, /*output_count=*/0x20000040); res = -1; res = syz_future_time(/*when=*/1); if ((int)res != -1) r[0] = res; *(uint64_t*)0x20010140 = 0x20000080; *(uint32_t*)0x20000080 = 0; memset((void*)0x20000084, 0, 3); *(uint8_t*)0x20000087 = 1; *(uint64_t*)0x20000088 = 0x782a774500000000; *(uint64_t*)0x20000090 = -1; *(uint32_t*)0x20000098 = 2; *(uint64_t*)0x20010148 = 0x200000c0; *(uint64_t*)0x20010150 = 0x20000100; *(uint64_t*)0x20010158 = 0x20010100; *(uint32_t*)0x20010160 = 0x1c; *(uint32_t*)0x20010164 = 0; *(uint32_t*)0x20010168 = 0x10000; *(uint32_t*)0x2001016c = 0; ((intptr_t(*)(intptr_t,intptr_t,intptr_t,intptr_t,intptr_t,intptr_t))CAST(zx_channel_call))(/*handle=*/0, /*options=*/0, /*deadline=*/r[0], /*args=*/0x20010140, /*actual_bytes=*/0x20010180, /*actual_handles=*/0x200101c0); { int i; for(i = 0; i < 4; i++) { ((intptr_t(*)(intptr_t,intptr_t,intptr_t,intptr_t,intptr_t,intptr_t))CAST(zx_channel_call))(/*handle=*/0, /*options=*/0, /*deadline=*/r[0], /*args=*/0x20010140, /*actual_bytes=*/0x20010180, /*actual_handles=*/0x200101c0); } } memset((void*)0x20010200, 0, 1); res = -1; res = ((intptr_t(*)(intptr_t,intptr_t,intptr_t,intptr_t,intptr_t,intptr_t))CAST(zx_process_create))(/*job=*/0, /*name=*/0x20010200, /*name_len=*/1, /*options=*/0, /*proc_handle=*/0x20010240, /*vmar_handle=*/0x20010280); if (res == ZX_OK) r[1] = *(uint32_t*)0x20010240; res = -1; res = ((intptr_t(*)(intptr_t,intptr_t,intptr_t,intptr_t))CAST(zx_object_get_child))(/*handle=*/0, /*koid=*/0, /*rights=*/0x800, /*out=*/0x200102c0); if (res == ZX_OK) r[2] = *(uint32_t*)0x200102c0; memcpy((void*)0x20010300, "\xc4\x81\x7d\x29\x0e\x80\x51\xbf\x00\x65\x67\x36\x66\x45\x0f\xf7\xfd\xc4\x01\xa1\xc4\x00\x09\xc4\x82\xf9\x35\xf1\xc4\x41\xfc\x52\xd0\x66\x0f\xc5\xf3\x98\xc4\x83\x79\x09\xc6\xb1\x66\x4b\x0f\x6e\xe5\xf3\x41\xd8\xcd", 53); ((intptr_t(*)(intptr_t,intptr_t,intptr_t,intptr_t,intptr_t,intptr_t))CAST(zx_process_start))(/*process=*/r[1], /*thread=*/r[2], /*entry=*/0x20010300, /*stack=*/0x20010340, /*arg1=*/0, /*arg2=*/0); *(uint64_t*)0x20012440 = 0x20011340; memcpy((void*)0x20011340, "\x68\xb9\x2e\x90\xe8\x1a\x0a\x65\xab\xa6\x8a\xc3\x03\x90\x07\xc4\x06\x63\xfe\xc3\x16\xf1\xd3\xf0\x30\xeb\x37\xcd\x0f\x8d\x9e\x05\x6b\xc9\x3c\xbf\x88\x11\xc6\xec\x84\xbd\x43\xee\x1d\xbc\x4e\xb9\xf2\x91\xb1\xff\x62\x96\xbf\x0f\x22\x9b\x82\x3c\xf7\x50\x21\xec\xdd\x1d\x84\x3a\xbe\xce\x20\xab\x3e\x28\x78\x01\xd8\xa7\x82\xd9\x94\x7b\x00\x86\x14\xb2\x21\xe1\x7c\x64\x1a\xe2\xb5\xb0\x30\x7c\xc6\x59\x47\x59\xaa\xdd\xde\x5b\x89\xea\xd9\xc0\x32\xe8\x75\x4a\xb9\x8f\x09\xb0\x3c\x80\x29\x34\xcf\x4f\x75\xa4\xb1\x53\xae\x62\x6a\x37\x33\x3e\x7f\x35\xd1\x66\x31\x53\x11\xf3\x95\x3e\xcf\x02\xf6\x15\x82\x2c\x58\xac\x20\x5d\x4d\xa7\x5d\x43\x4f\xf3\x6d\xa5\x05\x2a\x2f\x5d\x6c\x2a\x15\x47\x7e\xb5\x53\x6c\x80\xee\x07\x6e\x98\x94\xe6\xc6\x3c\x0b\xf3\xd3\x00\x4c\xe2\x10\x73\x85\x91\x9f\xcb\x77\x1b\xee\xbd\x38\x98\x24\x68\x9f\xbd\x28\x80\x4b\x23\xcd\x93\x3a\x3a\xb8\xd8\x62\xc1\xf3\xca\xc7\x35\x2f\xe4\xfc\xcf\xc2\x2d\x38\x77\x7d\x69\xba\x0f\xa2\xc8\x20\x16\x6a\xe8\xd3\x51\xe1\x16\xf0\xca\x3d\xcf\xe6\xfc\x6d\x38\xf5\x26\x41\x1d\x40\x7d\x0b\x2f\x97\xd8\x22\xa0\x54\xf4\x40\xb0\x5b\x75\x98\xb6\x6e\x18\x48\xb0\xf2\xa8\xc2\x71\x8f\x62\xc2\xc5\x03\xfb\x28\xc8\x82\x06\x26\xd9\xf4\x63\x00\xf4\x74\xfe\xda\x0c\x81\x6e\x43\xd9\xed\x96\x34\x47\xe0\xcd\x3d\x47\x3a\xc3\xf0\x63\x3d\x3d\x1f\xe4\xb4\x3e\x58\x7c\x3b\xfb\x5d\x3b\x9c\x3f\xb9\x47\x2f\x75\x93\xc1\x9a\x2d\x57\x3f\x04\x79\x6a\x76\x55\xff\x5a\x1c\x09\x95\x83\x4b\x07\xb6\x2b\x79\x51\x19\x46\x21\x6d\x6c\x41\x8a\xf8\xec\x08\x45\x78\x2f\x11\x2d\xfe\x0b\x7e\x4b\x6b\x0f\xb3\x60\x4b\x4b\x2d\xf3\x11\x77\xa7\xc1\x97\x6d\xe2\x55\x17\x95\x53\xbf\xf2\x54\x4a\xa5\x57\xa4\x54\xb2\x65\x7c\x5b\x3f\x0f\x71\xcf\xf8\x3c\x0b\x92\xd3\x02\xd2\x20\x1b\x7d\xb3\x6e\x9d\x86\x77\xdf\xad\x29\xac\x43\x2c\x25\xea\x3b\x12\x3d\xb4\xf9\x24\x0e\x92\x02\xc2\x19\xa6\x47\x9f\x05\x32\x2a\xeb\x7d\xa4\x9f\x19\x88\x93\xbd\xbf\xa0\xbf\x19\xa8\x15\xe6\x3a\xab\x70\xd4\xbc\xf3\xcb\x8b\x38\xf9\xee\x91\x4b\x43\xee\x33\xe0\x06\xd8\x27\x91\x9c\xe0\x84\xd8\x42\x57\xcb\x13\x99\x79\xbb\x14\x4e\x19\xcc\x87\x45\x47\x8e\xa0\xff\xde\x10\xd3\xcf\x59\x03\x86\x49\x7b\x43\xf4\xbc\x27\x25\xec\x2d\x0d\xf9\x4f\x1a\x53\x4a\x1e\xe8\xc4\x29\x40\x0e\x10\x78\xcc\x58\xa7\xbd\x8d\x1d\xed\x2c\xf4\x96\x67\x66\xf2\x1b\x4c\x07\xce\x40\xd8\x55\x93\xf8\x64\x2b\x29\x65\x24\x24\xa8\x5a\xeb\xdc\xcd\xd8\xbe\xba\x9f\xbf\xe6\xb1\x41\x4c\xd3\x16\x45\x52\xe7\xe4\x9b\xb9\x30\x01\x99\x90\xda\xc4\x75\x1a\x65\xbe\x85\x3b\x95\x3b\x88\xec\xca\xc9\x2c\x88\x9c\x4d\x95\x11\x6e\x94\x62\x84\x80\xba\xab\x01\xa6\xcd\x99\x13\x53\xcc\xbc\x8e\x78\x15\x30\x38\xf4\x5d\x9d\x2d\xc2\xc6\xfb\x96\xe3\x7d\x9b\xdb\x69\xbe\x94\x8f\x12\x57\x93\x71\xa4\x39\x69\xe9\x42\xca\x69\x38\x72\x96\xcf\x78\x15\x26\xb7\xef\x42\x2f\x4c\x9b\xc6\x44\x82\x72\x37\xa0\x3b\x2a\x60\xba\xaf\xf7\x70\x3e\xe3\x39\x56\xdc\x66\x9b\x1c\x04\xc7\x21\xbf\x68\xf3\x43\xc8\x0b\x61\xf3\x5c\xa1\xb1\x95\x59\x96\x5f\xd7\x02\x6a\x1c\xec\x9b\xd9\xd9\x2f\x14\x50\xec\xba\xf4\x2d\xe1\x20\x42\xbd\x63\x0d\x34\x45\x70\x6c\x56\x77\x50\x71\xde\xae\x54\xf2\xc5\x31\xbc\x8c\x0b\xe2\x26\x8a\x13\xf1\x2a\xf5\x88\x05\x7f\x3e\xbd\x3e\xd1\x7f\xa0\x9a\x1a\x06\x07\x1e\xc1\x3e\x7e\x76\x38\xb1\x5a\x8e\x0c\x55\x52\x4a\x90\xc2\xd7\xc7\x9c\x1b\x2f\x42\x7f\xff\xaf\xfa\x26\x39\x0f\x1d\x6c\xd4\xab\xf2\x16\x96\x04\xb2\xe7\x79\xa7\x34\xe0\x6b\x15\xd0\x3e\xd9\x40\xbb\xc0\x2e\xd1\x20\x3f\x55\xdd\x3f\xd2\x95\x76\x08\x39\x8f\xc7\x26\x59\x61\xdd\xa2\x8d\x62\x6a\x8e\xa5\xed\xee\x28\xa3\x72\x10\xc8\xc7\x32\x16\x11\xe5\x2b\x4e\x54\x1c\x90\xe0\x72\x1e\xda\x0d\xe5\xf3\x0c\xf3\x88\x5e\xda\x30\xd6\xec\xe4\x62\x63\x80\x9a\xa1\xe5\xfe\x88\xb9\x31\x06\xf1\xe7\x43\x7f\xae\xfc\xce\x95\x1b\x19\x7a\xa5\xb1\xf2\x78\x0a\xa4\x37\xcf\x6a\x1f\x9c\x06\x9f\xe8\x2d\x18\xc5\x7c\xa9\xa7\x05\xcf\x52\x02\xbb\xd1\xaf\xc4\x1e\x1d\x28\x9a\x46\xa4\x34\xcf\xd1\x6b\xb7\xce\x6e\xe7\x64\xd5\xf0\xe6\xc8\x1e\x84\x86\xec\xa1\x16\x90\x2a\xba\xd6\xb9\x8d\xf3\x89\xea\xef\x81\x56\xb8\xb5\x63\x25\x35\x8e\x01\xf3\xec\x30\xd0\x50\xd9\x22\x6e\xcf\xb0\xa1\xd7\xe2\xca\xe6\xb5\xca\x67\x38\xc8\xcd\xeb\xa6\xbc\x11\x83\x27\xd6\x82\xf8\xb5\x95\x7c\x55\x61\x7f\xea\xc8\x11\xab\x2a\xb6\xee\x3a\xee\x63\x63\x94\x29\xf9\x97\x9d\xb5\x28\x5c\x33\x0d\xa8\xa9\xf6\xa3\x06\xb6\x9c\xec\xfb\x2b\xe3\xc6\x40\xf0\x43\x31\xff\xf3\x78\x9a\x47\x44\x5c\x51\x25\xfb\x99\xe9\x96\xf4\x01\xb3\x19\xbf\xce\x5b\x08\x93\x6d\xb9\xc6\xf8\x28\xc6\x82\xbb\xe6\x9e\x86\x6a\xc0\xa6\xb2\x04\xe0\x2e\xce\xfd\x61\x14\x2d\x0c\x20\xc1\x99\x55\x62\xbc\x1f\xda\xb5\x82\x29\x61\x89\xa1\xb3\x4b\xdb\x75\x72\x2e\x64\xe7\xd4\xf0\x0b\x8d\x83\xfd\xc2\xf8\xfc\x76\x97\x11\x43\x75\x0a\xcd\x0d\x51\x3b\x81\x29\x8a\x2f\x8c\x72\x25\x2c\xce\xb7\x36\x33\x97\x6f\x52\xfc\x2e\x93\xa1\xef\x80\x6e\xc7\x95\x7c\x66\xee\xac\x4c\x52\xf9\xb5\x84\x58\x03\x90\xc6\xfa\x46\x43\xe0\xca\xd5\x9a\xd3\xf5\x81\x04\xa7\x28\xd9\x3b\xc6\x86\x9a\x6f\x64\x98\x92\xee\xf9\xec\xb3\xee\xbc\xeb\xd3\x48\x54\xf8\xe1\x9d\xb5\xac\x62\xba\x0b\x67\xa7\x40\xbb\x39\xb1\x90\x5e\x8d\x34\x5e\x2f\xf2\x1b\x4e\x25\x97\x4b\xd5\xbc\x7c\x86\x26\x07\xdd\xb6\xac\x10\xce\xcd\xe5\x9c\x1a\x93\x2b\x2f\xb5\xb2\x2c\x67\x34\x57\xbd\x4a\x39\x6e\x36\x67\xf4\x22\x7a\x27\x6f\xa1\xa1\xb2\x0f\xb6\x0f\xf5\x84\x1a\xf6\x4e\x98\x1f\x6c\x84\xbe\x84\xad\x1b\xb1\x0d\x94\x1d\x61\x56\x29\x65\x4e\x1d\x12\x8c\x9a\x37\x7a\xd6\x0b\x04\xc3\xcf\x2a\xad\x71\x18\x62\x6e\xaa\xe0\xb4\x06\x8d\xd6\x23\xe1\xa2\xd9\x8b\x95\x52\x4f\x9d\xb1\x60\x49\xec\xff\xd5\xc8\xfe\xe7\xe1\xbb\xa7\x47\xa1\xee\x9e\xc5\xf6\x7a\xee\x0b\x69\x95\x1d\xfa\x0b\x58\x7c\x34\xbe\xb3\x6b\xe3\xc1\x6c\x3a\xb0\x24\xeb\x27\x1f\x37\x16\x49\x9e\xd5\xa1\x79\x5e\xac\x34\x23\xc3\x7b\x8f\xa9\xd2\x0d\x1a\xf4\xe9\x67\x16\x42\x63\xfc\x60\xe0\xcd\x8e\x84\xcf\xc3\x12\xb3\x41\x85\xf4\x0a\x7d\x07\x77\x74\x91\x47\xf6\x04\x38\x65\x3b\xc3\xd3\x6a\x1d\xad\x3e\xa4\x33\x68\x44\x64\xe0\xc9\xc1\x2a\x88\xc4\x4d\x86\x2e\x02\x29\x92\xcb\x4b\xfa\x60\x3d\x1f\x8d\x21\xa0\xa5\xbd\x6c\x62\xfc\x3e\x84\x27\xf1\x96\x50\x7d\xae\xd7\x4f\x62\xa1\x7b\xa9\x78\x1a\x47\x40\xcf\x7f\x9c\x5d\xf1\x23\x62\xde\xd5\xaa\xa8\x35\xc1\x94\x3c\x3d\x93\x24\x1e\x9c\x31\x2b\xff\x72\x32\xe6\xe9\x23\x21\x40\x0d\xda\xcb\x84\xb8\x4b\x1c\x41\x20\x57\x5c\x5d\x02\x46\xd7\x8a\xd3\xe9\xfd\x4a\xcb\xbb\x51\x15\x94\x4d\x1c\x39\xf3\xe0\x74\x05\xba\xf7\xdd\x4b\xd6\x33\xc0\xbf\xdb\xaa\xfd\xb4\x29\x54\xeb\x62\x06\x66\x8d\x53\xe9\x94\x75\x94\xe4\xd0\x91\x1b\x09\x03\x6c\xba\x8f\x09\xf4\xcc\x19\x8d\xc0\x64\xc6\x8d\x5a\x7b\x84\x8d\xd2\xa6\xa6\x64\x61\x96\x11\x84\x57\x67\xf9\x92\xb1\x52\x7a\x62\x77\x1d\x36\x52\x7c\xc8\x81\xb5\xcc\xc0\x6f\xbb\xf8\x64\xe2\x7d\xca\x99\xa4\x33\x42\x4b\xdb\x6e\xf6\x31\xa7\xc8\x24\xc2\x46\xb7\x22\x22\x16\x00\x0d\xba\x03\xd7\x66\x4c\x48\x5a\x2c\xdf\xc0\x40\x42\xdb\x57\x16\x4a\xa7\x60\x07\x8a\xbb\x80\xed\x03\x0c\x0e\x6c\x83\xae\x5b\x9f\xb4\x22\x5c\x7a\xb7\x24\x79\xd1\x76\x2c\x73\x0f\xe1\xfd\x9d\xea\xc1\x3d\x6c\xba\x0d\x78\xc0\x1e\x03\xc1\x2d\x94\x10\xcf\xb1\x1e\xd2\x01\x66\xa5\x78\x0d\xd5\xe2\xeb\x22\x1a\xaf\x42\x4e\xdd\xde\x14\xf4\xac\x83\x02\xf1\x6b\x69\x97\x13\xd3\x22\x54\x36\xed\x49\x12\xaa\xef\x58\x49\x79\x24\x6f\x60\xa5\x16\x85\x77\x85\x6b\x82\xc2\xf8\x09\xcc\xea\x64\x48\x8f\xad\x8d\xe0\xdc\xcc\x30\xe7\x39\x6c\x27\xc6\x0d\x1d\xa0\xf2\x94\xef\x98\xd5\x96\x70\x74\x39\xc3\x5e\x24\x88\x49\x12\x17\x88\x64\x37\x26\x32\x9c\x1a\xcd\x0b\xd7\x91\x25\x24\x07\x82\xd8\xaf\x03\xb2\xb5\xcc\xe2\xd9\x60\xb8\xa9\xb3\xc8\x1e\x1f\x88\xb9\xa0\x78\x60\xa9\x16\xe4\x60\x53\x09\x46\x22\xc6\x05\x7a\xf2\x03\xc8\x42\xff\x84\x37\x57\x29\x03\x06\x65\xc5\x70\x52\x40\x94\x9e\x1b\x72\x9d\x29\x49\x6a\x29\xed\x39\xd2\x93\x17\x48\x3e\xec\x8c\xbf\xb7\xdc\xea\xc0\xb0\xca\x6c\x3f\xb0\x7a\xeb\x6a\x23\x68\xdc\x76\x7e\xb0\x7d\x7e\xd9\xcc\x62\xb9\x10\xb8\x01\xd0\x89\x89\xa8\x3f\x3b\xe5\x86\x18\x70\x1c\x71\x3f\x29\x8c\xa7\xf1\x7e\xae\x72\x51\x0b\x29\x56\x8c\x31\x59\xa4\x4a\x01\xf7\xff\xae\xed\xde\xae\x9d\x22\xc6\x8e\xa2\x61\xbc\x20\x60\xbc\xe8\xa1\x21\x31\x42\xb6\x0b\x5a\x8d\x1e\x73\x14\xfe\x7f\xc3\x93\x64\xb0\x49\xd5\x4f\x2a\x73\xcc\x77\x80\xf6\xec\x47\x7c\xb2\x73\x8a\x0c\xb2\x8a\x91\x9f\x2c\x0c\xf9\x35\xc1\xef\x51\xbb\xac\x89\x13\x38\xb7\x28\x13\xac\xc3\x79\x84\x8b\xfc\x3b\x39\x96\x9a\xea\xa9\xf2\x78\x7d\xdd\x18\x3c\x37\x22\xa1\x2b\x0b\x90\xf4\x8c\xe2\xf7\x53\x3f\x00\xd1\x22\xc9\x83\x52\x80\xf7\xfd\x8a\x0a\xd4\x1a\xa1\xb0\x8b\xa6\xd7\xdf\xca\x7b\x58\x3c\x1e\x03\x98\x99\x06\x04\x0f\x59\x84\xc6\x69\x9f\x38\x29\x09\xf5\x93\x95\x99\x58\x52\x32\xc9\x27\x76\xa1\xb5\x59\x27\x12\xa4\x2d\x5f\x44\xfc\x21\xa1\x88\x28\x50\x26\x10\x42\xea\x98\x76\x23\x09\xde\xd8\x79\x9d\x90\x9d\x6a\x40\x63\x36\xa5\xf2\x76\xfb\x29\xe9\xa8\x58\x97\x36\xde\xd2\xe9\x7e\xbc\x6f\x82\xb5\xf5\x77\xd0\xa0\x70\x21\xf4\xfc\xd6\x37\x1c\x5e\xd2\x9a\x53\x80\xd9\xdb\xf0\xd0\xca\x34\xb6\x84\x63\x1d\xfb\x50\x1e\x2a\xe2\x43\x87\x74\x32\xda\xd2\x6a\x3c\xd3\xc9\x46\x64\xa2\x95\x46\x1d\x6e\x78\xd0\x57\xef\x89\x84\x2b\xac\x7a\x33\xf6\xa6\x34\xb2\xe3\x74\xff\xac\x86\xae\xe3\x5f\xd8\x00\x08\xab\x98\x09\x83\x05\x54\xd7\x40\x4e\x75\x40\xf1\x1a\x7e\xf2\x73\xdc\x84\x6a\x57\xee\xf2\xb2\x72\x04\xbe\x70\x9c\x3e\xae\xa2\xb3\x05\xdf\x40\x1e\x40\x07\xf7\xf2\x97\x8e\xbd\x37\x19\x0e\x5e\x7c\xbf\x2d\x8e\xe4\x18\xd6\xd9\xfa\x59\xec\xba\x76\x03\xcb\xa8\xd2\xf7\x31\x73\x3f\x42\xe4\x94\x99\xc6\x85\x92\xf8\x7f\xea\x94\x35\x4e\x0c\x06\x6c\x30\xa2\x56\xea\xb3\x64\x95\xb1\x0d\x08\x2e\xde\x4e\x20\x63\x0e\x4d\x79\x91\x41\xcc\x44\x80\x14\x08\xcd\x3b\x28\xa7\x1c\x07\x55\x04\xb3\xac\xc1\xb6\x9d\x72\xec\x61\x52\x75\x78\x1b\xf9\xbb\xdd\x87\xb7\xd4\x09\xcf\x3c\xdd\x18\xe7\xcc\x86\xa1\x64\xdd\xb9\x80\xbf\x1a\xda\xc8\x88\xb7\xba\xb3\xd7\xc9\x68\xa4\x64\x81\x32\x1c\x10\x74\x8b\x79\x45\x03\x03\xe5\xaa\x08\x60\xd6\xfc\xc4\x30\x4e\x80\xd6\x98\x86\x65\x93\xff\x7f\x18\xcd\xd1\xf9\x3d\xf6\x72\xc7\xce\x86\x0b\x19\x2d\x9e\x03\x3d\x8a\xef\x00\xd4\x68\x5c\x41\x65\x54\x73\x03\x84\x8b\x91\xbc\xb2\xa3\x95\x6e\x2d\x17\xe5\x1a\x70\xa6\xe3\x83\xbc\xe7\x1d\x49\xbe\x32\xbd\x46\x1a\xec\x0d\x69\x1c\x88\x49\xe6\xb1\x78\x55\x8e\x47\xb2\x88\x31\x11\x3f\xa4\x48\xe7\xc9\x50\xfe\xe7\x9d\xd5\xd0\x19\x0d\x4c\x11\xd2\x9b\xc2\xe0\x47\x70\x91\x13\x8e\x1d\x38\x36\xf1\xbb\x86\xbe\xa2\xed\xc7\xee\x8e\xbf\xca\x69\x30\x22\x82\x3d\x49\x68\xa0\x67\xb3\x6c\x06\xb0\xca\xa8\xe8\x46\x33\xd8\x1e\xa6\x2e\x54\x8a\x4e\x87\x09\x67\x1f\x0c\x92\x8a\x28\xe5\x24\xaf\x78\xeb\xd0\xa8\x15\xaa\xc9\xf6\xdf\x61\x1d\xf0\x81\xb7\x5f\x55\x27\xf3\xb5\xa0\x4a\x50\x1e\xf0\x2e\x37\xaf\xe7\xae\xb0\x77\xd2\xd7\xaa\xb0\x8c\xcb\xc2\x43\xfe\x69\x39\x5d\x77\xec\x5d\xb8\x4c\x3b\x6c\x5c\x84\x80\xaf\xb3\xb3\xce\x91\xe6\xa4\xdf\xb9\xbb\xeb\x5e\x62\x3d\x1c\xfe\xff\x8b\x53\xb1\xe4\xf0\x33\x7a\x4d\x8d\x5b\x38\x18\x51\x7d\x66\x70\x4b\x57\x56\x37\x5d\xd8\x57\x12\xea\x2a\xe3\xc6\x43\xcb\x56\x4a\x9b\xb8\xc0\x32\xee\x33\x3d\x0e\xcc\xc6\xfa\x01\x70\xb5\xdd\x7a\x78\xad\x50\xd7\x25\x5f\xa1\x13\xdf\xa1\xb2\x03\x17\xb1\xd4\xd5\x08\x96\x7a\x38\x30\x6e\xbe\x34\x23\x23\x31\x98\xd6\xe3\x41\x33\x9e\x90\xd3\xe3\x1b\xae\x9a\x15\x28\xb8\xf1\x00\xae\xc4\x37\xf6\x56\x67\x0c\x2b\xb3\x91\x7b\xf9\xdf\xf0\xfc\x21\x38\xcf\x4d\xe3\x85\x2c\x71\xa0\xc2\x7a\xc0\xe1\xda\x61\xfd\xe7\xdf\xe9\x66\x03\xfb\xbe\x61\xb7\x69\x7f\x46\x76\xb7\x3d\x46\xf1\x0d\x09\x23\x48\xef\xfa\x95\x7b\x9a\xf1\x6a\xef\x7f\xed\x03\x6b\xa7\x40\xea\xdb\x9e\x3e\xe5\x18\x70\x03\x51\xdd\x63\xfd\x54\xa7\x85\x3c\x6a\xae\x18\x0e\x9c\xf7\xe7\x16\x60\x17\x8a\xc8\xa8\x2b\x59\x01\x04\x82\x7d\xaf\x9b\xd1\xef\x07\x8a\xd5\x6c\xd3\x93\xd8\xc3\xd0\xb0\xc0\x42\xd2\x7a\xe4\xb6\xf5\x31\xd0\x2c\x9f\x46\x42\x72\xa7\x14\x26\xd5\x88\x47\x1c\x2a\x61\x59\xb3\x6e\xe7\x6e\x16\x58\x53\x40\xd1\xa1\x83\x1d\xa9\x41\x55\x6a\x84\xeb\x76\x84\x54\x7b\xba\x00\x40\xdc\x41\x98\xe7\x68\xc0\x9e\x38\xa6\x75\x62\x61\x2d\xe6\xef\xf6\x30\xff\x92\xf3\xc8\x85\xcc\x41\xd3\x1f\x54\xb8\x02\xe6\xb3\xb4\x7d\x51\xc3\x87\xd9\xb3\xc2\x0b\x76\x80\xdc\xf0\xce\x71\xaa\xa4\x6b\xfe\xc6\x0e\xab\x7f\x75\x0a\x53\x4c\xdb\x02\xcf\xab\xde\x84\x96\x80\x02\x55\x8a\xd2\x21\x57\xb0\x52\x8d\x13\x55\x8d\x2a\xef\xcf\xc4\x73\x02\xef\x05\x77\x8e\x71\x00\x3c\x19\x64\x5d\x84\xa5\x11\x57\x10\x93\xfd\xf6\x76\x23\xcd\xe3\x6b\xc8\xca\x16\x68\x9b\x77\x88\x84\x1d\x9f\x3e\x0b\xc1\xfd\xe3\xd6\xa7\x2a\x98\xa6\x4a\xa8\xb6\x7b\xf1\x77\x5b\x01\x25\x75\xda\xe0\x15\xb4\xb0\xe3\xa3\xf9\x6d\x86\x2f\x3e\x75\x99\x73\x14\xbb\x7a\xd1\xe0\x0e\xde\x8b\xa5\x31\x60\xea\xee\x9d\x75\xf6\x81\x3b\xa0\xa6\x00\x15\x6e\x01\xc1\xb9\xae\x8c\xfc\xf4\xbf\x39\xfb\xac\xbc\x87\x64\xcc\x56\x56\xbc\x81\x2b\x25\x41\xce\xc7\xd8\x6c\x18\x0f\x5b\xb3\x8a\x12\x44\x27\xc6\x96\x65\x22\xee\xef\x27\xab\x3c\xec\xa1\x25\xd5\xa3\x4c\x83\x23\x19\xeb\x76\xca\x83\x4f\x09\x62\x91\x02\xc8\x30\x4a\x02\xed\xc4\x17\x07\xe7\x94\x92\x7c\x35\xac\x31\xd6\xb6\xc0\x06\xac\xd8\x52\x4d\xc6\x92\x87\x88\x43\xa2\x91\xa5\xd9\xde\xc9\x42\x0a\xa7\xfb\x4d\x2a\x71\x91\xa5\xc2\xe8\x1f\x61\x32\x09\x43\x91\xb9\xed\x0f\x61\xb0\xe4\x4a\x3c\x2c\x96\xfb\x13\x09\x59\x4c\x37\xd1\xa5\xab\x89\x73\x6e\x88\x64\x3a\xdd\x4e\x2b\x8c\x7d\x9a\x33\xed\xa3\xd4\x38\x24\x85\x97\xdd\x2e\x57\x8e\xb9\x37\x87\x4f\x5b\x91\x38\x65\x11\xe9\xf9\x6a\x8c\xdd\x43\x0f\xb5\xcb\x30\x54\x8c\xb6\x43\x80\xa9\x64\x35\x6a\x52\x05\xea\xaa\x18\x8e\x97\xca\xce\xd0\xfc\x67\x8e\x6e\x6b\x55\x08\x61\x4d\xb1\xa9\xaf\x94\x20\x61\x03\x53\x38\xba\x72\x51\xdd\x4c\xd7\x87\xf7\xe5\x46\x5c\x07\x12\x1e\xf8\xf9\x8d\xa1\x51\x18\x6e\xe0\xc7\x27\xde\xf8\xc6\x88\x85\xec\x3a\x74\xa5\xb6\x9e\xfd\xaa\xbc\x97\x46\x53\x51\xb4\x21\x41\x7c\x1b\x79\x14\x7c\x98\x89\xb3\x9e\xaf\x73\x3c\x4e\x6b\x37\x0c\xc4\x68\xcd\xe4\x61\x1e\x77\xee\x9f\x29\xf8\xce\xf4\x57\xb2\xaf\xdc\x83\x2d\x22\xee\x9f\x01\xaf\xa2\x3a\x69\xff\xee\x44\x1a\x8e\x0e\x02\x88\x7e\x00\xe5\x68\x64\xa7\x64\xf1\x2d\xfa\xaa\x48\x1e\x93\x47\x19\x9f\xb4\xdc\xe1\xba\x02\x3d\x0c\xcd\x38\x43\xb3\x0c\xe9\x40\xd3\xdd\x87\x0a\x39\x71\xf5\x79\x8a\x53\xb7\x13\x21\x6e\x1e\xbb\x75\x49\x35\xdd\xf3\x9e\x13\x0b\x4b\xbd\xfe\xda\xe2\x4b\xbf\xb9\x43\xcd\x3d\x32\xfc\x67\x11\x96\x7c\xf7\x25\x03\xba\x04\xd4\x8b\x68\xf4\x18\xa5\x15\x1b\x68\xcc\xdd\x3d\x85\xb0\x6d\x72\x0c\x5a\xec\xc7\xb3\xd4\xc8\x3c\xd3\x21\x4b\x64\x83\xdf\xbd\x6b\xd5\x71\xc1\x7e\x79\x79\xf0\x1b\xc8\xa5\xdc\xe3\x34\xf1\x88\x8f\x37\xd2\xd0\x4c\x7a\xaa\x97\xa3\x32\x52\xa6\x70\xe2\xb1\x1f\x4b\xbc\xb5\xd6\x73\x71\xe9\x02\xab\x26\x25\x3e\x62\x1b\x74\x4a\x7f\x4c\x21\xc0\xee\x68\x22\x2e\x60\x7f\xe1\x29\xa1\x78\x20\x3e\xc5\xcc\x02\x19\x46\x66\xf1\xc6\xe7\xa0\x24\x62\xfa\xb4\xf2\x3b\x8c\xa9\x9e\xfa\x4e\x17\x73\x73\x70\x1f\x33\x55\x3b\x33\x85\xf0\x78\x54\xb0\xae\x76\x95\xbc\x16\x8b\x1b\xbc\xd3\x60\xb7\xaf\x39\xc7\x52\xd3\x2c\x0c\x12\x72\x0e\xac\x81\x81\x1b\x3c\x07\x65\xd4\xd3\x84\x4c\xec\xeb\x84\xa0\x2a\x39\xeb\x83\xff\x9f\xf9\x8c\xfd\xfd\x58\x92\xfe\x1f\x99\x49\xa0\x27\x25\x7d\x1b\x7f\xb4\x9e\x28\xbe\x87\x7b\x89\xb7\xbc\x75\x7e\xdc\x79\x62\xdf\xc2\x0d\x08\x88\xd4\xc4\xc4\xa7\x03\x8d\x51\x51\xd7\x3c\x3e\xdd\xb3\xce\x4e\xb1\xb4\xcd\xa2\xef\x60\xd9\x7c\xca\x72\x6d\xa2\x36\x11\xb8\x83\x6a\x77\x2b\xa0\xe7\x9a\x8b\x04\xa5\xcc\x0b\x2b\x1a\xa6\x70\x89\xed\x27\x72\x86\x50\xa9\xef\x2b\x21\x23\x12\x4d\x82\x1d\x1c\xfa\xa7\x07\x87\xf7\xa5\x53\x6a\xe2\x28\x65\x24\xcb\x5d\xdf\x06\xb6\xfb\x6f\x60\xd0\x71\xf4\xaf\x47\x67\x44\x71\x7f\x53\x22\x1b\x44\xe6\x6a\x44\x28\xbe\x87\x10\x01\x02\x33\xbe\x5a\x4a\xb5\xc1\xfd\x33\x92\x37\x33\x20\xfb\xbe\x0c\x4f\x5a\x8b\x52\xb4\xd8\x7a\x25\x43\xd8\x38\xcc\x17\x86\x57\xbc\x26\x2e\x42\x21\x38\x47\xbb\x67\xab\x1c\x24\xf7\xaa\x33\x5d\xf1\x86\x68\x3e\xcd\x0c\xb5\x1f\x12\x54\x2b\x69\xa1\x3b\x3d\xcc\xfd\xcf\xf4\x3f\x2f\xdd\x9a\x82\x03\x4d\xcc\xc5\x0e\xb0\xe4\x47\x82\x00\x50\xb3\x2e\xe8\x20\x6b\x88\x12\xa6\xbb\xd5\x5a\x12\xac\xff\x0f\x1b\x76\xc5\xd5\x61\xf7\x82\x7d\x09\xc4\xba\x62\x9b\x77\x67\x7b\x70\xf9\x32\x2b\xca\xd0\x28\xc6\xd8\x26\xbd\x07\x5f\x3c\x62\xed\x02\xc0\xe2\x68\x45\xfc\x00\x9f\x1c\xf5\x51\x1f\x9f\x70\xb2\xb8\x81\xee\x4c\x5b\x13\x45\x3d\x24\x14\xf9\xfc\x21\x3f\x56\xb9\x1f\x3a\x73\xc0\xb5\x30\x77\x2f\x4a\x05\xf0\x3d\xd8\x23\x9c\x16\x05\xef\x87\xaf\x7b\x2c\x1e\x06\x5b\x76\x1d\x9b\x87\x51\x7e\x51\x6a\x6a\x9b\x65\x71\x2a\x69\x6b\x32\x46\xfa\x58\xc2\xd5\x3a\x8c\xb3\x47\x06\x75\x2b\x08\xeb\x8b\x18\xfb\x2a\xfa\x05\x51\x8e\x57\x8f\xc8\x87\x04\x7b\x7c\xc8\x65\x19\x3a\x4e\xa0\x96\x59\x2f\x4b\x9c\x2b\xa3\x30\x99\x96\x22\xb9\xc2\xe4\xb0\x33\xad\xf9\xfe\xe8\xb9\x5d\xbe\xfb\xd3\x0a\x35\x3c\xb2\x05\x25\xb9\x72\xf4\x65\x04\xa0\x15\x3e\x0a\x17\x49\x90\xa4\x48\xf3\x4c\x7a\x01\x5e\x2e\xba\x73\x61\xf0\x08\x49\xd9\xdc\x35\x2a\x17\x64\xa0\xc0\x2f\x2b\x6d\xd7\x8f\xfa\x20\x5e\xbd\xf8\x29\xda\xb8\x76\x11\xbf\x5e\x08\x25\x2d\x59\x8a\x89\x32\x90\x95\xdd\x7e\x29\x9c\x2b\x20\xb4\xb7\xbd\x19\x98\x99\x1b\x12\x11\x8b\x0a\x93\x84\x9f\x95\x5b\x2b\x8e\xdf\x25\x33\xa3\x59\x9f\xcb\xd2\x8b\xd3\xcf\x5c\x92\x48\xcb\xfc\xaf\xab\x35\x40\xb4\x28\xf0\xd5\x42\x01\xca\x2a\x84\xa8\xca\xbd\xa5\xc8\xfa\x51\x22\xd3\xa4", 4096); *(uint64_t*)0x20012448 = 0x20012340; *(uint32_t*)0x20012340 = r[2]; *(uint32_t*)0x20012344 = r[2]; *(uint64_t*)0x20012450 = 0x20012380; *(uint64_t*)0x20012458 = 0x20012400; *(uint32_t*)0x20012460 = 0x1000; *(uint32_t*)0x20012464 = 2; *(uint32_t*)0x20012468 = 0x51; *(uint32_t*)0x2001246c = 5; res = -1; res = ((intptr_t(*)(intptr_t,intptr_t,intptr_t,intptr_t,intptr_t,intptr_t))CAST(zx_channel_call))(/*handle=*/r[2], /*options=*/0, /*deadline=*/r[0], /*args=*/0x20012440, /*actual_bytes=*/0x20012480, /*actual_handles=*/0x200124c0); if (res == ZX_OK) { r[3] = *(uint32_t*)0x2001240c; r[4] = *(uint32_t*)0x20012410; } ((intptr_t(*)(intptr_t,intptr_t,intptr_t,intptr_t,intptr_t,intptr_t,intptr_t,intptr_t))CAST(zx_channel_read))(/*handle=*/r[3], /*options=*/0, /*bytes=*/0x20012500, /*num_bytes=*/0x10000, /*handles=*/0x20022500, /*num_handles=*/0, /*actual_bytes=*/0x20022540, /*actual_handles=*/0x20022580); res = -1; res = ((intptr_t(*)(intptr_t,intptr_t,intptr_t,intptr_t,intptr_t,intptr_t))CAST(zx_pager_create_vmo))(/*pager=*/r[4], /*options=*/0, /*port=*/r[4], /*key=*/0x3eb, /*size=*/0x7fb, /*out=*/0x200225c0); if (res == ZX_OK) r[5] = *(uint32_t*)0x200225c0; ((intptr_t(*)(intptr_t,intptr_t,intptr_t,intptr_t))CAST(zx_stream_seek))(/*handle=*/r[5], /*whence=*/0, /*offset=*/0x401, /*out_seek=*/0x20022600); memcpy((void*)0x20000000, "\xc4\xa1\x49\xc2\xda\x0b\x0f\x18\xd2\x3e\x26\xf3\x36\x67\xdb\xe2\xc4\xc1\xd1\x16\x3b\xc4\xc1\xb4\xc6\x85\x0a\x00\x00\x00\x00\xf3\x40\xac\x85\x2f\x47\x0f\xf2\x4a\x00\x44\x79\xa5\x26\xf2\xad", 47); syz_execute_func(/*text=*/0x20000000); syz_future_time(/*when=*/1); syz_job_default(); syz_mmap(/*addr=*/0x20ffb000, /*len=*/0x4000); syz_process_self(); syz_thread_self(); syz_vmar_root_self(); } int main(void) { syz_mmap(/*addr=*/0x20000000, /*len=*/0x1000000); setup_fault(); use_temporary_dir(); do_sandbox_none(); return 0; } :134:66: error: use of undeclared identifier 'zx_system_get_performance_info' ((intptr_t(*)(intptr_t,intptr_t,intptr_t,intptr_t,intptr_t))CAST(zx_system_get_performance_info))(/*res=*/0, /*topic=*/0, /*count=*/4, /*info=*/0x20000000, /*output_count=*/0x20000040); ^ 1 error generated. compiler invocation: /syzkaller/shared/fuchsia/prebuilt/third_party/clang/linux-x64/bin/clang [-o /tmp/syz-executor229755943 -DGOOS_fuchsia=1 -DGOARCH_amd64=1 -DHOSTGOOS_linux=1 -x c - -Wno-deprecated -target x86_64-fuchsia -ldriver -lfdio -lzircon --sysroot /syzkaller/shared/fuchsia/out/x64/zircon_toolchain/obj/zircon/public/sysroot/sysroot -I /syzkaller/shared/fuchsia/sdk/lib/fdio/include -I /syzkaller/shared/fuchsia/zircon/system/ulib/fidl/include -I /syzkaller/shared/fuchsia/src/lib/ddk/include -I /syzkaller/shared/fuchsia/out/x64/fidling/gen/sdk/fidl/fuchsia.device -I /syzkaller/shared/fuchsia/out/x64/fidling/gen/sdk/fidl/fuchsia.device.manager -I /syzkaller/shared/fuchsia/out/x64/fidling/gen/sdk/fidl/fuchsia.hardware.nand -I /syzkaller/shared/fuchsia/out/x64/fidling/gen/sdk/fidl/fuchsia.hardware.power.statecontrol -I /syzkaller/shared/fuchsia/out/x64/fidling/gen/sdk/fidl/fuchsia.hardware.usb.peripheral -I /syzkaller/shared/fuchsia/out/x64/fidling/gen/zircon/vdso/zx -L /syzkaller/shared/fuchsia/out/x64/x64-shared -O2 -pthread -Wall -Werror -Wparentheses -Wunused-const-variable -Wframe-larger-than=16384 -Wno-array-bounds -Wno-unused-command-line-argument] --- FAIL: TestGenerate/fuchsia/amd64/12 (0.84s) csource_test.go:150: opts: {Threaded:true Repeat:true RepeatTimes:0 Procs:0 Slowdown:1 Sandbox:none SandboxArg:0 Leak:false NetInjection:false NetDevices:false NetReset:false Cgroups:false BinfmtMisc:false CloseFDs:false KCSAN:false DevlinkPCI:false NicVF:false USB:false VhciInjection:false Wifi:false IEEE802154:false Sysctl:false Swap:false UseTmpDir:true HandleSegv:false Repro:true Trace:false LegacyOptions:{Collide:false Fault:false FaultCall:0 FaultNth:0}} program: zx_system_get_performance_info(0x0, 0x0, 0x4, &(0x7f0000000000)=""/1, &(0x7f0000000040)) (fail_nth: 1) r0 = syz_future_time(0x1) (async) zx_channel_call$fuchsia_io_FileSeek(0x0, 0x0, r0, &(0x7f0000010140)={&(0x7f0000000080)={{}, 0xffffffffffffffff, 0x2}, &(0x7f00000000c0), &(0x7f0000000100), &(0x7f0000010100), 0x1c, 0x0, 0x10000}, &(0x7f0000010180), &(0x7f00000101c0)) (rerun: 4) zx_process_create(0x0, &(0x7f0000010200)='\x00', 0x1, 0x0, &(0x7f0000010240)=0x0, &(0x7f0000010280)) zx_object_get_child(0x0, 0x0, 0x800, &(0x7f00000102c0)=0x0) zx_process_start(r1, r2, &(0x7f0000010300)="c4817d290e8051bf0065673666450ff7fdc401a1c40009c482f935f1c441fc52d0660fc5f398c4837909c6b1664b0f6ee5f341d8cd", &(0x7f0000010340)=""/4096, 0x0, 0x0) zx_channel_call(r2, 0x0, r0, &(0x7f0000012440)={&(0x7f0000011340)="68b92e90e81a0a65aba68ac3039007c40663fec316f1d3f030eb37cd0f8d9e056bc93cbf8811c6ec84bd43ee1dbc4eb9f291b1ff6296bf0f229b823cf75021ecdd1d843abece20ab3e287801d8a782d9947b008614b221e17c641ae2b5b0307cc6594759aaddde5b89ead9c032e8754ab98f09b03c802934cf4f75a4b153ae626a37333e7f35d166315311f3953ecf02f615822c58ac205d4da75d434ff36da5052a2f5d6c2a15477eb5536c80ee076e9894e6c63c0bf3d3004ce2107385919fcb771beebd389824689fbd28804b23cd933a3ab8d862c1f3cac7352fe4fccfc22d38777d69ba0fa2c820166ae8d351e116f0ca3dcfe6fc6d38f526411d407d0b2f97d822a054f440b05b7598b66e1848b0f2a8c2718f62c2c503fb28c8820626d9f46300f474feda0c816e43d9ed963447e0cd3d473ac3f0633d3d1fe4b43e587c3bfb5d3b9c3fb9472f7593c19a2d573f04796a7655ff5a1c0995834b07b62b79511946216d6c418af8ec0845782f112dfe0b7e4b6b0fb3604b4b2df31177a7c1976de255179553bff2544aa557a454b2657c5b3f0f71cff83c0b92d302d2201b7db36e9d8677dfad29ac432c25ea3b123db4f9240e9202c219a6479f05322aeb7da49f198893bdbfa0bf19a815e63aab70d4bcf3cb8b38f9ee914b43ee33e006d827919ce084d84257cb139979bb144e19cc8745478ea0ffde10d3cf590386497b43f4bc2725ec2d0df94f1a534a1ee8c429400e1078cc58a7bd8d1ded2cf4966766f21b4c07ce40d85593f8642b29652424a85aebdccdd8beba9fbfe6b1414cd3164552e7e49bb930019990dac4751a65be853b953b88eccac92c889c4d95116e94628480baab01a6cd991353ccbc8e78153038f45d9d2dc2c6fb96e37d9bdb69be948f12579371a43969e942ca69387296cf781526b7ef422f4c9bc644827237a03b2a60baaff7703ee33956dc669b1c04c721bf68f343c80b61f35ca1b19559965fd7026a1cec9bd9d92f1450ecbaf42de12042bd630d3445706c56775071deae54f2c531bc8c0be2268a13f12af588057f3ebd3ed17fa09a1a06071ec13e7e7638b15a8e0c55524a90c2d7c79c1b2f427fffaffa26390f1d6cd4abf2169604b2e779a734e06b15d03ed940bbc02ed1203f55dd3fd2957608398fc7265961dda28d626a8ea5edee28a37210c8c7321611e52b4e541c90e0721eda0de5f30cf3885eda30d6ece46263809aa1e5fe88b93106f1e7437faefcce951b197aa5b1f2780aa437cf6a1f9c069fe82d18c57ca9a705cf5202bbd1afc41e1d289a46a434cfd16bb7ce6ee764d5f0e6c81e8486eca116902abad6b98df389eaef8156b8b56325358e01f3ec30d050d9226ecfb0a1d7e2cae6b5ca6738c8cdeba6bc118327d682f8b5957c55617feac811ab2ab6ee3aee63639429f9979db5285c330da8a9f6a306b69cecfb2be3c640f04331fff3789a47445c5125fb99e996f401b319bfce5b08936db9c6f828c682bbe69e866ac0a6b204e02ecefd61142d0c20c1995562bc1fdab582296189a1b34bdb75722e64e7d4f00b8d83fdc2f8fc76971143750acd0d513b81298a2f8c72252cceb73633976f52fc2e93a1ef806ec7957c66eeac4c52f9b584580390c6fa4643e0cad59ad3f58104a728d93bc6869a6f649892eef9ecb3eebcebd34854f8e19db5ac62ba0b67a740bb39b1905e8d345e2ff21b4e25974bd5bc7c862607ddb6ac10cecde59c1a932b2fb5b22c673457bd4a396e3667f4227a276fa1a1b20fb60ff5841af64e981f6c84be84ad1bb10d941d615629654e1d128c9a377ad60b04c3cf2aad7118626eaae0b4068dd623e1a2d98b95524f9db16049ecffd5c8fee7e1bba747a1ee9ec5f67aee0b69951dfa0b587c34beb36be3c16c3ab024eb271f3716499ed5a1795eac3423c37b8fa9d20d1af4e967164263fc60e0cd8e84cfc312b34185f40a7d0777749147f60438653bc3d36a1dad3ea433684464e0c9c12a88c44d862e022992cb4bfa603d1f8d21a0a5bd6c62fc3e8427f196507daed74f62a17ba9781a4740cf7f9c5df12362ded5aaa835c1943c3d93241e9c312bff7232e6e92321400ddacb84b84b1c4120575c5d0246d78ad3e9fd4acbbb5115944d1c39f3e07405baf7dd4bd633c0bfdbaafdb42954eb6206668d53e9947594e4d0911b09036cba8f09f4cc198dc064c68d5a7b848dd2a6a664619611845767f992b1527a62771d36527cc881b5ccc06fbbf864e27dca99a433424bdb6ef631a7c824c246b7222216000dba03d7664c485a2cdfc04042db57164aa760078abb80ed030c0e6c83ae5b9fb4225c7ab72479d1762c730fe1fd9deac13d6cba0d78c01e03c12d9410cfb11ed20166a5780dd5e2eb221aaf424eddde14f4ac8302f16b699713d3225436ed4912aaef584979246f60a5168577856b82c2f809ccea64488fad8de0dccc30e7396c27c60d1da0f294ef98d596707439c35e248849121788643726329c1acd0bd79125240782d8af03b2b5cce2d960b8a9b3c81e1f88b9a07860a916e46053094622c6057af203c842ff84375729030665c5705240949e1b729d29496a29ed39d29317483eec8cbfb7dceac0b0ca6c3fb07aeb6a2368dc767eb07d7ed9cc62b910b801d08989a83f3be58618701c713f298ca7f17eae72510b29568c3159a44a01f7ffaeeddeae9d22c68ea261bc2060bce8a1213142b60b5a8d1e7314fe7fc39364b049d54f2a73cc7780f6ec477cb2738a0cb28a919f2c0cf935c1ef51bbac891338b72813acc379848bfc3b39969aeaa9f2787ddd183c3722a12b0b90f48ce2f7533f00d122c9835280f7fd8a0ad41aa1b08ba6d7dfca7b583c1e03989906040f5984c6699f382909f5939599585232c92776a1b5592712a42d5f44fc21a1882850261042ea98762309ded8799d909d6a406336a5f276fb29e9a8589736ded2e97ebc6f82b5f577d0a07021f4fcd6371c5ed29a5380d9dbf0d0ca34b684631dfb501e2ae243877432dad26a3cd3c94664a295461d6e78d057ef89842bac7a33f6a634b2e374ffac86aee35fd80008ab9809830554d7404e7540f11a7ef273dc846a57eef2b27204be709c3eaea2b305df401e4007f7f2978ebd37190e5e7cbf2d8ee418d6d9fa59ecba7603cba8d2f731733f42e49499c68592f87fea94354e0c066c30a256eab36495b10d082ede4e20630e4d799141cc44801408cd3b28a71c075504b3acc1b69d72ec615275781bf9bbdd87b7d409cf3cdd18e7cc86a164ddb980bf1adac888b7bab3d7c968a46481321c10748b79450303e5aa0860d6fcc4304e80d698866593ff7f18cdd1f93df672c7ce860b192d9e033d8aef00d4685c4165547303848b91bcb2a3956e2d17e51a70a6e383bce71d49be32bd461aec0d691c8849e6b178558e47b28831113fa448e7c950fee79dd5d0190d4c11d29bc2e0477091138e1d3836f1bb86bea2edc7ee8ebfca693022823d4968a067b36c06b0caa8e84633d81ea62e548a4e8709671f0c928a28e524af78ebd0a815aac9f6df611df081b75f5527f3b5a04a501ef02e37afe7aeb077d2d7aab08ccbc243fe69395d77ec5db84c3b6c5c8480afb3b3ce91e6a4dfb9bbeb5e623d1cfeff8b53b1e4f0337a4d8d5b3818517d66704b5756375dd85712ea2ae3c643cb564a9bb8c032ee333d0eccc6fa0170b5dd7a78ad50d7255fa113dfa1b20317b1d4d508967a38306ebe3423233198d6e341339e90d3e31bae9a1528b8f100aec437f656670c2bb3917bf9dff0fc2138cf4de3852c71a0c27ac0e1da61fde7dfe96603fbbe61b7697f4676b73d46f10d092348effa957b9af16aef7fed036ba740eadb9e3ee518700351dd63fd54a7853c6aae180e9cf7e71660178ac8a82b590104827daf9bd1ef078ad56cd393d8c3d0b0c042d27ae4b6f531d02c9f464272a71426d588471c2a6159b36ee76e16585340d1a1831da941556a84eb7684547bba0040dc4198e768c09e38a67562612de6eff630ff92f3c885cc41d31f54b802e6b3b47d51c387d9b3c20b7680dcf0ce71aaa46bfec60eab7f750a534cdb02cfabde84968002558ad22157b0528d13558d2aefcfc47302ef05778e71003c19645d84a511571093fdf67623cde36bc8ca16689b7788841d9f3e0bc1fde3d6a72a98a64aa8b67bf1775b012575dae015b4b0e3a3f96d862f3e75997314bb7ad1e00ede8ba53160eaee9d75f6813ba0a600156e01c1b9ae8cfcf4bf39fbacbc8764cc5656bc812b2541cec7d86c180f5bb38a124427c6966522eeef27ab3ceca125d5a34c832319eb76ca834f09629102c8304a02edc41707e794927c35ac31d6b6c006acd8524dc692878843a291a5d9dec9420aa7fb4d2a7191a5c2e81f6132094391b9ed0f61b0e44a3c2c96fb1309594c37d1a5ab89736e88643add4e2b8c7d9a33eda3d438248597dd2e578eb937874f5b91386511e9f96a8cdd430fb5cb30548cb64380a964356a5205eaaa188e97caced0fc678e6e6b5508614db1a9af942061035338ba7251dd4cd787f7e5465c07121ef8f98da151186ee0c727def8c68885ec3a74a5b69efdaabc97465351b421417c1b79147c9889b39eaf733c4e6b370cc468cde4611e77ee9f29f8cef457b2afdc832d22ee9f01afa23a69ffee441a8e0e02887e00e56864a764f12dfaaa481e9347199fb4dce1ba023d0ccd3843b30ce940d3dd870a3971f5798a53b713216e1ebb754935ddf39e130b4bbdfedae24bbfb943cd3d32fc6711967cf72503ba04d48b68f418a5151b68ccdd3d85b06d720c5aecc7b3d4c83cd3214b6483dfbd6bd571c17e7979f01bc8a5dce334f1888f37d2d04c7aaa97a33252a670e2b11f4bbcb5d67371e902ab26253e621b744a7f4c21c0ee68222e607fe129a178203ec5cc02194666f1c6e7a02462fab4f23b8ca99efa4e177373701f33553b3385f07854b0ae7695bc168b1bbcd360b7af39c752d32c0c12720eac81811b3c0765d4d3844ceceb84a02a39eb83ff9ff98cfdfd5892fe1f9949a027257d1b7fb49e28be877b89b7bc757edc7962dfc20d0888d4c4c4a7038d5151d73c3eddb3ce4eb1b4cda2ef60d97cca726da23611b8836a772ba0e79a8b04a5cc0b2b1aa67089ed27728650a9ef2b2123124d821d1cfaa70787f7a5536ae2286524cb5ddf06b6fb6f60d071f4af476744717f53221b44e66a4428be8710010233be5a4ab5c1fd3392373320fbbe0c4f5a8b52b4d87a2543d838cc178657bc262e42213847bb67ab1c24f7aa335df186683ecd0cb51f12542b69a13b3dccfdcff43f2fdd9a82034dccc50eb0e447820050b32ee8206b8812a6bbd55a12acff0f1b76c5d561f7827d09c4ba629b77677b70f9322bcad028c6d826bd075f3c62ed02c0e26845fc009f1cf5511f9f70b2b881ee4c5b13453d2414f9fc213f56b91f3a73c0b530772f4a05f03dd8239c1605ef87af7b2c1e065b761d9b87517e516a6a9b65712a696b3246fa58c2d53a8cb34706752b08eb8b18fb2afa05518e578fc887047b7cc865193a4ea096592f4b9c2ba330999622b9c2e4b033adf9fee8b95dbefbd30a353cb20525b972f46504a0153e0a174990a448f34c7a015e2eba7361f00849d9dc352a1764a0c02f2b6dd78ffa205ebdf829dab87611bf5e08252d598a89329095dd7e299c2b20b4b7bd1998991b12118b0a93849f955b2b8edf2533a3599fcbd28bd3cf5c9248cbfcafab3540b428f0d54201ca2a84a8cabda5c8fa5122d3a4", &(0x7f0000012340)=[r2, r2], &(0x7f0000012380)=""/81, &(0x7f0000012400)=[0x0, 0x0, 0x0, 0x0, 0x0], 0x1000, 0x2, 0x51, 0x5}, &(0x7f0000012480), &(0x7f00000124c0)) zx_channel_read$fuchsia_io_DirectoryAdminOnOpen(r3, 0x0, &(0x7f0000012500), 0x10000, &(0x7f0000022500), 0x0, &(0x7f0000022540), &(0x7f0000022580)) zx_pager_create_vmo(r4, 0x0, r4, 0x3, 0x7fb, &(0x7f00000225c0)=0x0) zx_stream_seek(r5, 0x0, 0x401, &(0x7f0000022600)) syz_execute_func(&(0x7f0000000000)="c4a149c2da0b0f18d23e26f33667dbe2c4c1d1163bc4c1b4c6850a00000000f340ac852f470ff24a004479a526f2ad") syz_future_time(0x1) syz_job_default() syz_mmap(&(0x7f0000ffb000/0x4000)=nil, 0x4000) syz_process_self() syz_thread_self() syz_vmar_root_self() csource_test.go:151: failed to build program: // autogenerated by syzkaller (https://github.com/google/syzkaller) #define _GNU_SOURCE #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include static void sleep_ms(uint64_t ms) { usleep(ms * 1000); } static uint64_t current_time_ms(void) { struct timespec ts; if (clock_gettime(CLOCK_MONOTONIC, &ts)) exit(1); return (uint64_t)ts.tv_sec * 1000 + (uint64_t)ts.tv_nsec / 1000000; } static void use_temporary_dir(void) { char tmpdir_template[] = "/tmp/syzkaller.XXXXXX"; char* tmpdir = mkdtemp(tmpdir_template); if (!tmpdir) exit(1); if (chmod(tmpdir, 0777)) exit(1); if (chdir(tmpdir)) exit(1); } static int inject_fault(int nth) { return 0; } static void setup_fault() { } static void thread_start(void* (*fn)(void*), void* arg) { pthread_t th; pthread_attr_t attr; pthread_attr_init(&attr); pthread_attr_setstacksize(&attr, 128 << 10); int i = 0; for (; i < 100; i++) { if (pthread_create(&th, &attr, fn, arg) == 0) { pthread_attr_destroy(&attr); return; } if (errno == EAGAIN) { usleep(50); continue; } break; } exit(1); } typedef struct { int state; } event_t; static void event_init(event_t* ev) { ev->state = 0; } static void event_reset(event_t* ev) { ev->state = 0; } static void event_set(event_t* ev) { if (ev->state) exit(1); __atomic_store_n(&ev->state, 1, __ATOMIC_RELEASE); } static void event_wait(event_t* ev) { while (!__atomic_load_n(&ev->state, __ATOMIC_ACQUIRE)) usleep(200); } static int event_isset(event_t* ev) { return __atomic_load_n(&ev->state, __ATOMIC_ACQUIRE); } static int event_timedwait(event_t* ev, uint64_t timeout_ms) { uint64_t start = current_time_ms(); for (;;) { if (__atomic_load_n(&ev->state, __ATOMIC_RELAXED)) return 1; if (current_time_ms() - start > timeout_ms) return 0; usleep(200); } } long syz_mmap(size_t addr, size_t size) { zx_handle_t root = zx_vmar_root_self(); zx_info_vmar_t info; zx_status_t status = zx_object_get_info(root, ZX_INFO_VMAR, &info, sizeof(info), 0, 0); if (status != ZX_OK) { return status; } zx_handle_t vmo; status = zx_vmo_create(size, 0, &vmo); if (status != ZX_OK) { return status; } uintptr_t mapped_addr; status = zx_vmar_map(root, ZX_VM_FLAG_SPECIFIC_OVERWRITE | ZX_VM_FLAG_PERM_READ | ZX_VM_FLAG_PERM_WRITE, addr - info.base, vmo, 0, size, &mapped_addr); zx_status_t close_vmo_status = zx_handle_close(vmo); if (close_vmo_status != ZX_OK) { } return status; } static long syz_process_self(void) { return zx_process_self(); } static long syz_thread_self(void) { return zx_thread_self(); } static long syz_vmar_root_self(void) { return zx_vmar_root_self(); } static long syz_job_default(void) { return zx_job_default(); } static long syz_future_time(volatile long when) { zx_time_t delta_ms = 10000; switch (when) { case 0: delta_ms = 5; break; case 1: delta_ms = 30; break; } zx_time_t now = 0; zx_clock_read(ZX_CLOCK_MONOTONIC, &now); return now + delta_ms * 1000 * 1000; } static void loop(); static int do_sandbox_none(void) { loop(); return 0; } #define CAST(f) ({void* p = (void*)f; p; }) static long syz_execute_func(volatile long text) { ((void (*)(void))(text))(); return 0; } struct thread_t { int created, call; event_t ready, done; }; static struct thread_t threads[16]; static void execute_call(int call); static int running; static void* thr(void* arg) { struct thread_t* th = (struct thread_t*)arg; for (;;) { event_wait(&th->ready); event_reset(&th->ready); execute_call(th->call); __atomic_fetch_sub(&running, 1, __ATOMIC_RELAXED); event_set(&th->done); } return 0; } static void execute_one(void) { if (write(1, "executing program\n", sizeof("executing program\n") - 1)) { } int i, call, thread; for (call = 0; call < 17; call++) { for (thread = 0; thread < (int)(sizeof(threads) / sizeof(threads[0])); thread++) { struct thread_t* th = &threads[thread]; if (!th->created) { th->created = 1; event_init(&th->ready); event_init(&th->done); event_set(&th->done); thread_start(thr, th); } if (!event_isset(&th->done)) continue; event_reset(&th->done); th->call = call; __atomic_fetch_add(&running, 1, __ATOMIC_RELAXED); event_set(&th->ready); if (call == 1) break; event_timedwait(&th->done, 50); break; } } for (i = 0; i < 100 && __atomic_load_n(&running, __ATOMIC_RELAXED); i++) sleep_ms(1); } static void execute_one(void); static void loop(void) { execute_one(); } uint64_t r[6] = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0}; void execute_call(int call) { intptr_t res = 0; switch (call) { case 0: inject_fault(1); ((intptr_t(*)(intptr_t,intptr_t,intptr_t,intptr_t,intptr_t))CAST(zx_system_get_performance_info))(/*res=*/0, /*topic=*/0, /*count=*/4, /*info=*/0x20000000, /*output_count=*/0x20000040); break; case 1: res = -1; res = syz_future_time(/*when=*/1); if ((int)res != -1) r[0] = res; break; case 2: *(uint64_t*)0x20010140 = 0x20000080; *(uint32_t*)0x20000080 = 0; memset((void*)0x20000084, 0, 3); *(uint8_t*)0x20000087 = 1; *(uint64_t*)0x20000088 = 0x782a774500000000; *(uint64_t*)0x20000090 = -1; *(uint32_t*)0x20000098 = 2; *(uint64_t*)0x20010148 = 0x200000c0; *(uint64_t*)0x20010150 = 0x20000100; *(uint64_t*)0x20010158 = 0x20010100; *(uint32_t*)0x20010160 = 0x1c; *(uint32_t*)0x20010164 = 0; *(uint32_t*)0x20010168 = 0x10000; *(uint32_t*)0x2001016c = 0; ((intptr_t(*)(intptr_t,intptr_t,intptr_t,intptr_t,intptr_t,intptr_t))CAST(zx_channel_call))(/*handle=*/0, /*options=*/0, /*deadline=*/r[0], /*args=*/0x20010140, /*actual_bytes=*/0x20010180, /*actual_handles=*/0x200101c0); { int i; for(i = 0; i < 4; i++) { ((intptr_t(*)(intptr_t,intptr_t,intptr_t,intptr_t,intptr_t,intptr_t))CAST(zx_channel_call))(/*handle=*/0, /*options=*/0, /*deadline=*/r[0], /*args=*/0x20010140, /*actual_bytes=*/0x20010180, /*actual_handles=*/0x200101c0); } } break; case 3: memset((void*)0x20010200, 0, 1); res = -1; res = ((intptr_t(*)(intptr_t,intptr_t,intptr_t,intptr_t,intptr_t,intptr_t))CAST(zx_process_create))(/*job=*/0, /*name=*/0x20010200, /*name_len=*/1, /*options=*/0, /*proc_handle=*/0x20010240, /*vmar_handle=*/0x20010280); if (res == ZX_OK) r[1] = *(uint32_t*)0x20010240; break; case 4: res = -1; res = ((intptr_t(*)(intptr_t,intptr_t,intptr_t,intptr_t))CAST(zx_object_get_child))(/*handle=*/0, /*koid=*/0, /*rights=*/0x800, /*out=*/0x200102c0); if (res == ZX_OK) r[2] = *(uint32_t*)0x200102c0; break; case 5: memcpy((void*)0x20010300, "\xc4\x81\x7d\x29\x0e\x80\x51\xbf\x00\x65\x67\x36\x66\x45\x0f\xf7\xfd\xc4\x01\xa1\xc4\x00\x09\xc4\x82\xf9\x35\xf1\xc4\x41\xfc\x52\xd0\x66\x0f\xc5\xf3\x98\xc4\x83\x79\x09\xc6\xb1\x66\x4b\x0f\x6e\xe5\xf3\x41\xd8\xcd", 53); ((intptr_t(*)(intptr_t,intptr_t,intptr_t,intptr_t,intptr_t,intptr_t))CAST(zx_process_start))(/*process=*/r[1], /*thread=*/r[2], /*entry=*/0x20010300, /*stack=*/0x20010340, /*arg1=*/0, /*arg2=*/0); break; case 6: *(uint64_t*)0x20012440 = 0x20011340; memcpy((void*)0x20011340, "\x68\xb9\x2e\x90\xe8\x1a\x0a\x65\xab\xa6\x8a\xc3\x03\x90\x07\xc4\x06\x63\xfe\xc3\x16\xf1\xd3\xf0\x30\xeb\x37\xcd\x0f\x8d\x9e\x05\x6b\xc9\x3c\xbf\x88\x11\xc6\xec\x84\xbd\x43\xee\x1d\xbc\x4e\xb9\xf2\x91\xb1\xff\x62\x96\xbf\x0f\x22\x9b\x82\x3c\xf7\x50\x21\xec\xdd\x1d\x84\x3a\xbe\xce\x20\xab\x3e\x28\x78\x01\xd8\xa7\x82\xd9\x94\x7b\x00\x86\x14\xb2\x21\xe1\x7c\x64\x1a\xe2\xb5\xb0\x30\x7c\xc6\x59\x47\x59\xaa\xdd\xde\x5b\x89\xea\xd9\xc0\x32\xe8\x75\x4a\xb9\x8f\x09\xb0\x3c\x80\x29\x34\xcf\x4f\x75\xa4\xb1\x53\xae\x62\x6a\x37\x33\x3e\x7f\x35\xd1\x66\x31\x53\x11\xf3\x95\x3e\xcf\x02\xf6\x15\x82\x2c\x58\xac\x20\x5d\x4d\xa7\x5d\x43\x4f\xf3\x6d\xa5\x05\x2a\x2f\x5d\x6c\x2a\x15\x47\x7e\xb5\x53\x6c\x80\xee\x07\x6e\x98\x94\xe6\xc6\x3c\x0b\xf3\xd3\x00\x4c\xe2\x10\x73\x85\x91\x9f\xcb\x77\x1b\xee\xbd\x38\x98\x24\x68\x9f\xbd\x28\x80\x4b\x23\xcd\x93\x3a\x3a\xb8\xd8\x62\xc1\xf3\xca\xc7\x35\x2f\xe4\xfc\xcf\xc2\x2d\x38\x77\x7d\x69\xba\x0f\xa2\xc8\x20\x16\x6a\xe8\xd3\x51\xe1\x16\xf0\xca\x3d\xcf\xe6\xfc\x6d\x38\xf5\x26\x41\x1d\x40\x7d\x0b\x2f\x97\xd8\x22\xa0\x54\xf4\x40\xb0\x5b\x75\x98\xb6\x6e\x18\x48\xb0\xf2\xa8\xc2\x71\x8f\x62\xc2\xc5\x03\xfb\x28\xc8\x82\x06\x26\xd9\xf4\x63\x00\xf4\x74\xfe\xda\x0c\x81\x6e\x43\xd9\xed\x96\x34\x47\xe0\xcd\x3d\x47\x3a\xc3\xf0\x63\x3d\x3d\x1f\xe4\xb4\x3e\x58\x7c\x3b\xfb\x5d\x3b\x9c\x3f\xb9\x47\x2f\x75\x93\xc1\x9a\x2d\x57\x3f\x04\x79\x6a\x76\x55\xff\x5a\x1c\x09\x95\x83\x4b\x07\xb6\x2b\x79\x51\x19\x46\x21\x6d\x6c\x41\x8a\xf8\xec\x08\x45\x78\x2f\x11\x2d\xfe\x0b\x7e\x4b\x6b\x0f\xb3\x60\x4b\x4b\x2d\xf3\x11\x77\xa7\xc1\x97\x6d\xe2\x55\x17\x95\x53\xbf\xf2\x54\x4a\xa5\x57\xa4\x54\xb2\x65\x7c\x5b\x3f\x0f\x71\xcf\xf8\x3c\x0b\x92\xd3\x02\xd2\x20\x1b\x7d\xb3\x6e\x9d\x86\x77\xdf\xad\x29\xac\x43\x2c\x25\xea\x3b\x12\x3d\xb4\xf9\x24\x0e\x92\x02\xc2\x19\xa6\x47\x9f\x05\x32\x2a\xeb\x7d\xa4\x9f\x19\x88\x93\xbd\xbf\xa0\xbf\x19\xa8\x15\xe6\x3a\xab\x70\xd4\xbc\xf3\xcb\x8b\x38\xf9\xee\x91\x4b\x43\xee\x33\xe0\x06\xd8\x27\x91\x9c\xe0\x84\xd8\x42\x57\xcb\x13\x99\x79\xbb\x14\x4e\x19\xcc\x87\x45\x47\x8e\xa0\xff\xde\x10\xd3\xcf\x59\x03\x86\x49\x7b\x43\xf4\xbc\x27\x25\xec\x2d\x0d\xf9\x4f\x1a\x53\x4a\x1e\xe8\xc4\x29\x40\x0e\x10\x78\xcc\x58\xa7\xbd\x8d\x1d\xed\x2c\xf4\x96\x67\x66\xf2\x1b\x4c\x07\xce\x40\xd8\x55\x93\xf8\x64\x2b\x29\x65\x24\x24\xa8\x5a\xeb\xdc\xcd\xd8\xbe\xba\x9f\xbf\xe6\xb1\x41\x4c\xd3\x16\x45\x52\xe7\xe4\x9b\xb9\x30\x01\x99\x90\xda\xc4\x75\x1a\x65\xbe\x85\x3b\x95\x3b\x88\xec\xca\xc9\x2c\x88\x9c\x4d\x95\x11\x6e\x94\x62\x84\x80\xba\xab\x01\xa6\xcd\x99\x13\x53\xcc\xbc\x8e\x78\x15\x30\x38\xf4\x5d\x9d\x2d\xc2\xc6\xfb\x96\xe3\x7d\x9b\xdb\x69\xbe\x94\x8f\x12\x57\x93\x71\xa4\x39\x69\xe9\x42\xca\x69\x38\x72\x96\xcf\x78\x15\x26\xb7\xef\x42\x2f\x4c\x9b\xc6\x44\x82\x72\x37\xa0\x3b\x2a\x60\xba\xaf\xf7\x70\x3e\xe3\x39\x56\xdc\x66\x9b\x1c\x04\xc7\x21\xbf\x68\xf3\x43\xc8\x0b\x61\xf3\x5c\xa1\xb1\x95\x59\x96\x5f\xd7\x02\x6a\x1c\xec\x9b\xd9\xd9\x2f\x14\x50\xec\xba\xf4\x2d\xe1\x20\x42\xbd\x63\x0d\x34\x45\x70\x6c\x56\x77\x50\x71\xde\xae\x54\xf2\xc5\x31\xbc\x8c\x0b\xe2\x26\x8a\x13\xf1\x2a\xf5\x88\x05\x7f\x3e\xbd\x3e\xd1\x7f\xa0\x9a\x1a\x06\x07\x1e\xc1\x3e\x7e\x76\x38\xb1\x5a\x8e\x0c\x55\x52\x4a\x90\xc2\xd7\xc7\x9c\x1b\x2f\x42\x7f\xff\xaf\xfa\x26\x39\x0f\x1d\x6c\xd4\xab\xf2\x16\x96\x04\xb2\xe7\x79\xa7\x34\xe0\x6b\x15\xd0\x3e\xd9\x40\xbb\xc0\x2e\xd1\x20\x3f\x55\xdd\x3f\xd2\x95\x76\x08\x39\x8f\xc7\x26\x59\x61\xdd\xa2\x8d\x62\x6a\x8e\xa5\xed\xee\x28\xa3\x72\x10\xc8\xc7\x32\x16\x11\xe5\x2b\x4e\x54\x1c\x90\xe0\x72\x1e\xda\x0d\xe5\xf3\x0c\xf3\x88\x5e\xda\x30\xd6\xec\xe4\x62\x63\x80\x9a\xa1\xe5\xfe\x88\xb9\x31\x06\xf1\xe7\x43\x7f\xae\xfc\xce\x95\x1b\x19\x7a\xa5\xb1\xf2\x78\x0a\xa4\x37\xcf\x6a\x1f\x9c\x06\x9f\xe8\x2d\x18\xc5\x7c\xa9\xa7\x05\xcf\x52\x02\xbb\xd1\xaf\xc4\x1e\x1d\x28\x9a\x46\xa4\x34\xcf\xd1\x6b\xb7\xce\x6e\xe7\x64\xd5\xf0\xe6\xc8\x1e\x84\x86\xec\xa1\x16\x90\x2a\xba\xd6\xb9\x8d\xf3\x89\xea\xef\x81\x56\xb8\xb5\x63\x25\x35\x8e\x01\xf3\xec\x30\xd0\x50\xd9\x22\x6e\xcf\xb0\xa1\xd7\xe2\xca\xe6\xb5\xca\x67\x38\xc8\xcd\xeb\xa6\xbc\x11\x83\x27\xd6\x82\xf8\xb5\x95\x7c\x55\x61\x7f\xea\xc8\x11\xab\x2a\xb6\xee\x3a\xee\x63\x63\x94\x29\xf9\x97\x9d\xb5\x28\x5c\x33\x0d\xa8\xa9\xf6\xa3\x06\xb6\x9c\xec\xfb\x2b\xe3\xc6\x40\xf0\x43\x31\xff\xf3\x78\x9a\x47\x44\x5c\x51\x25\xfb\x99\xe9\x96\xf4\x01\xb3\x19\xbf\xce\x5b\x08\x93\x6d\xb9\xc6\xf8\x28\xc6\x82\xbb\xe6\x9e\x86\x6a\xc0\xa6\xb2\x04\xe0\x2e\xce\xfd\x61\x14\x2d\x0c\x20\xc1\x99\x55\x62\xbc\x1f\xda\xb5\x82\x29\x61\x89\xa1\xb3\x4b\xdb\x75\x72\x2e\x64\xe7\xd4\xf0\x0b\x8d\x83\xfd\xc2\xf8\xfc\x76\x97\x11\x43\x75\x0a\xcd\x0d\x51\x3b\x81\x29\x8a\x2f\x8c\x72\x25\x2c\xce\xb7\x36\x33\x97\x6f\x52\xfc\x2e\x93\xa1\xef\x80\x6e\xc7\x95\x7c\x66\xee\xac\x4c\x52\xf9\xb5\x84\x58\x03\x90\xc6\xfa\x46\x43\xe0\xca\xd5\x9a\xd3\xf5\x81\x04\xa7\x28\xd9\x3b\xc6\x86\x9a\x6f\x64\x98\x92\xee\xf9\xec\xb3\xee\xbc\xeb\xd3\x48\x54\xf8\xe1\x9d\xb5\xac\x62\xba\x0b\x67\xa7\x40\xbb\x39\xb1\x90\x5e\x8d\x34\x5e\x2f\xf2\x1b\x4e\x25\x97\x4b\xd5\xbc\x7c\x86\x26\x07\xdd\xb6\xac\x10\xce\xcd\xe5\x9c\x1a\x93\x2b\x2f\xb5\xb2\x2c\x67\x34\x57\xbd\x4a\x39\x6e\x36\x67\xf4\x22\x7a\x27\x6f\xa1\xa1\xb2\x0f\xb6\x0f\xf5\x84\x1a\xf6\x4e\x98\x1f\x6c\x84\xbe\x84\xad\x1b\xb1\x0d\x94\x1d\x61\x56\x29\x65\x4e\x1d\x12\x8c\x9a\x37\x7a\xd6\x0b\x04\xc3\xcf\x2a\xad\x71\x18\x62\x6e\xaa\xe0\xb4\x06\x8d\xd6\x23\xe1\xa2\xd9\x8b\x95\x52\x4f\x9d\xb1\x60\x49\xec\xff\xd5\xc8\xfe\xe7\xe1\xbb\xa7\x47\xa1\xee\x9e\xc5\xf6\x7a\xee\x0b\x69\x95\x1d\xfa\x0b\x58\x7c\x34\xbe\xb3\x6b\xe3\xc1\x6c\x3a\xb0\x24\xeb\x27\x1f\x37\x16\x49\x9e\xd5\xa1\x79\x5e\xac\x34\x23\xc3\x7b\x8f\xa9\xd2\x0d\x1a\xf4\xe9\x67\x16\x42\x63\xfc\x60\xe0\xcd\x8e\x84\xcf\xc3\x12\xb3\x41\x85\xf4\x0a\x7d\x07\x77\x74\x91\x47\xf6\x04\x38\x65\x3b\xc3\xd3\x6a\x1d\xad\x3e\xa4\x33\x68\x44\x64\xe0\xc9\xc1\x2a\x88\xc4\x4d\x86\x2e\x02\x29\x92\xcb\x4b\xfa\x60\x3d\x1f\x8d\x21\xa0\xa5\xbd\x6c\x62\xfc\x3e\x84\x27\xf1\x96\x50\x7d\xae\xd7\x4f\x62\xa1\x7b\xa9\x78\x1a\x47\x40\xcf\x7f\x9c\x5d\xf1\x23\x62\xde\xd5\xaa\xa8\x35\xc1\x94\x3c\x3d\x93\x24\x1e\x9c\x31\x2b\xff\x72\x32\xe6\xe9\x23\x21\x40\x0d\xda\xcb\x84\xb8\x4b\x1c\x41\x20\x57\x5c\x5d\x02\x46\xd7\x8a\xd3\xe9\xfd\x4a\xcb\xbb\x51\x15\x94\x4d\x1c\x39\xf3\xe0\x74\x05\xba\xf7\xdd\x4b\xd6\x33\xc0\xbf\xdb\xaa\xfd\xb4\x29\x54\xeb\x62\x06\x66\x8d\x53\xe9\x94\x75\x94\xe4\xd0\x91\x1b\x09\x03\x6c\xba\x8f\x09\xf4\xcc\x19\x8d\xc0\x64\xc6\x8d\x5a\x7b\x84\x8d\xd2\xa6\xa6\x64\x61\x96\x11\x84\x57\x67\xf9\x92\xb1\x52\x7a\x62\x77\x1d\x36\x52\x7c\xc8\x81\xb5\xcc\xc0\x6f\xbb\xf8\x64\xe2\x7d\xca\x99\xa4\x33\x42\x4b\xdb\x6e\xf6\x31\xa7\xc8\x24\xc2\x46\xb7\x22\x22\x16\x00\x0d\xba\x03\xd7\x66\x4c\x48\x5a\x2c\xdf\xc0\x40\x42\xdb\x57\x16\x4a\xa7\x60\x07\x8a\xbb\x80\xed\x03\x0c\x0e\x6c\x83\xae\x5b\x9f\xb4\x22\x5c\x7a\xb7\x24\x79\xd1\x76\x2c\x73\x0f\xe1\xfd\x9d\xea\xc1\x3d\x6c\xba\x0d\x78\xc0\x1e\x03\xc1\x2d\x94\x10\xcf\xb1\x1e\xd2\x01\x66\xa5\x78\x0d\xd5\xe2\xeb\x22\x1a\xaf\x42\x4e\xdd\xde\x14\xf4\xac\x83\x02\xf1\x6b\x69\x97\x13\xd3\x22\x54\x36\xed\x49\x12\xaa\xef\x58\x49\x79\x24\x6f\x60\xa5\x16\x85\x77\x85\x6b\x82\xc2\xf8\x09\xcc\xea\x64\x48\x8f\xad\x8d\xe0\xdc\xcc\x30\xe7\x39\x6c\x27\xc6\x0d\x1d\xa0\xf2\x94\xef\x98\xd5\x96\x70\x74\x39\xc3\x5e\x24\x88\x49\x12\x17\x88\x64\x37\x26\x32\x9c\x1a\xcd\x0b\xd7\x91\x25\x24\x07\x82\xd8\xaf\x03\xb2\xb5\xcc\xe2\xd9\x60\xb8\xa9\xb3\xc8\x1e\x1f\x88\xb9\xa0\x78\x60\xa9\x16\xe4\x60\x53\x09\x46\x22\xc6\x05\x7a\xf2\x03\xc8\x42\xff\x84\x37\x57\x29\x03\x06\x65\xc5\x70\x52\x40\x94\x9e\x1b\x72\x9d\x29\x49\x6a\x29\xed\x39\xd2\x93\x17\x48\x3e\xec\x8c\xbf\xb7\xdc\xea\xc0\xb0\xca\x6c\x3f\xb0\x7a\xeb\x6a\x23\x68\xdc\x76\x7e\xb0\x7d\x7e\xd9\xcc\x62\xb9\x10\xb8\x01\xd0\x89\x89\xa8\x3f\x3b\xe5\x86\x18\x70\x1c\x71\x3f\x29\x8c\xa7\xf1\x7e\xae\x72\x51\x0b\x29\x56\x8c\x31\x59\xa4\x4a\x01\xf7\xff\xae\xed\xde\xae\x9d\x22\xc6\x8e\xa2\x61\xbc\x20\x60\xbc\xe8\xa1\x21\x31\x42\xb6\x0b\x5a\x8d\x1e\x73\x14\xfe\x7f\xc3\x93\x64\xb0\x49\xd5\x4f\x2a\x73\xcc\x77\x80\xf6\xec\x47\x7c\xb2\x73\x8a\x0c\xb2\x8a\x91\x9f\x2c\x0c\xf9\x35\xc1\xef\x51\xbb\xac\x89\x13\x38\xb7\x28\x13\xac\xc3\x79\x84\x8b\xfc\x3b\x39\x96\x9a\xea\xa9\xf2\x78\x7d\xdd\x18\x3c\x37\x22\xa1\x2b\x0b\x90\xf4\x8c\xe2\xf7\x53\x3f\x00\xd1\x22\xc9\x83\x52\x80\xf7\xfd\x8a\x0a\xd4\x1a\xa1\xb0\x8b\xa6\xd7\xdf\xca\x7b\x58\x3c\x1e\x03\x98\x99\x06\x04\x0f\x59\x84\xc6\x69\x9f\x38\x29\x09\xf5\x93\x95\x99\x58\x52\x32\xc9\x27\x76\xa1\xb5\x59\x27\x12\xa4\x2d\x5f\x44\xfc\x21\xa1\x88\x28\x50\x26\x10\x42\xea\x98\x76\x23\x09\xde\xd8\x79\x9d\x90\x9d\x6a\x40\x63\x36\xa5\xf2\x76\xfb\x29\xe9\xa8\x58\x97\x36\xde\xd2\xe9\x7e\xbc\x6f\x82\xb5\xf5\x77\xd0\xa0\x70\x21\xf4\xfc\xd6\x37\x1c\x5e\xd2\x9a\x53\x80\xd9\xdb\xf0\xd0\xca\x34\xb6\x84\x63\x1d\xfb\x50\x1e\x2a\xe2\x43\x87\x74\x32\xda\xd2\x6a\x3c\xd3\xc9\x46\x64\xa2\x95\x46\x1d\x6e\x78\xd0\x57\xef\x89\x84\x2b\xac\x7a\x33\xf6\xa6\x34\xb2\xe3\x74\xff\xac\x86\xae\xe3\x5f\xd8\x00\x08\xab\x98\x09\x83\x05\x54\xd7\x40\x4e\x75\x40\xf1\x1a\x7e\xf2\x73\xdc\x84\x6a\x57\xee\xf2\xb2\x72\x04\xbe\x70\x9c\x3e\xae\xa2\xb3\x05\xdf\x40\x1e\x40\x07\xf7\xf2\x97\x8e\xbd\x37\x19\x0e\x5e\x7c\xbf\x2d\x8e\xe4\x18\xd6\xd9\xfa\x59\xec\xba\x76\x03\xcb\xa8\xd2\xf7\x31\x73\x3f\x42\xe4\x94\x99\xc6\x85\x92\xf8\x7f\xea\x94\x35\x4e\x0c\x06\x6c\x30\xa2\x56\xea\xb3\x64\x95\xb1\x0d\x08\x2e\xde\x4e\x20\x63\x0e\x4d\x79\x91\x41\xcc\x44\x80\x14\x08\xcd\x3b\x28\xa7\x1c\x07\x55\x04\xb3\xac\xc1\xb6\x9d\x72\xec\x61\x52\x75\x78\x1b\xf9\xbb\xdd\x87\xb7\xd4\x09\xcf\x3c\xdd\x18\xe7\xcc\x86\xa1\x64\xdd\xb9\x80\xbf\x1a\xda\xc8\x88\xb7\xba\xb3\xd7\xc9\x68\xa4\x64\x81\x32\x1c\x10\x74\x8b\x79\x45\x03\x03\xe5\xaa\x08\x60\xd6\xfc\xc4\x30\x4e\x80\xd6\x98\x86\x65\x93\xff\x7f\x18\xcd\xd1\xf9\x3d\xf6\x72\xc7\xce\x86\x0b\x19\x2d\x9e\x03\x3d\x8a\xef\x00\xd4\x68\x5c\x41\x65\x54\x73\x03\x84\x8b\x91\xbc\xb2\xa3\x95\x6e\x2d\x17\xe5\x1a\x70\xa6\xe3\x83\xbc\xe7\x1d\x49\xbe\x32\xbd\x46\x1a\xec\x0d\x69\x1c\x88\x49\xe6\xb1\x78\x55\x8e\x47\xb2\x88\x31\x11\x3f\xa4\x48\xe7\xc9\x50\xfe\xe7\x9d\xd5\xd0\x19\x0d\x4c\x11\xd2\x9b\xc2\xe0\x47\x70\x91\x13\x8e\x1d\x38\x36\xf1\xbb\x86\xbe\xa2\xed\xc7\xee\x8e\xbf\xca\x69\x30\x22\x82\x3d\x49\x68\xa0\x67\xb3\x6c\x06\xb0\xca\xa8\xe8\x46\x33\xd8\x1e\xa6\x2e\x54\x8a\x4e\x87\x09\x67\x1f\x0c\x92\x8a\x28\xe5\x24\xaf\x78\xeb\xd0\xa8\x15\xaa\xc9\xf6\xdf\x61\x1d\xf0\x81\xb7\x5f\x55\x27\xf3\xb5\xa0\x4a\x50\x1e\xf0\x2e\x37\xaf\xe7\xae\xb0\x77\xd2\xd7\xaa\xb0\x8c\xcb\xc2\x43\xfe\x69\x39\x5d\x77\xec\x5d\xb8\x4c\x3b\x6c\x5c\x84\x80\xaf\xb3\xb3\xce\x91\xe6\xa4\xdf\xb9\xbb\xeb\x5e\x62\x3d\x1c\xfe\xff\x8b\x53\xb1\xe4\xf0\x33\x7a\x4d\x8d\x5b\x38\x18\x51\x7d\x66\x70\x4b\x57\x56\x37\x5d\xd8\x57\x12\xea\x2a\xe3\xc6\x43\xcb\x56\x4a\x9b\xb8\xc0\x32\xee\x33\x3d\x0e\xcc\xc6\xfa\x01\x70\xb5\xdd\x7a\x78\xad\x50\xd7\x25\x5f\xa1\x13\xdf\xa1\xb2\x03\x17\xb1\xd4\xd5\x08\x96\x7a\x38\x30\x6e\xbe\x34\x23\x23\x31\x98\xd6\xe3\x41\x33\x9e\x90\xd3\xe3\x1b\xae\x9a\x15\x28\xb8\xf1\x00\xae\xc4\x37\xf6\x56\x67\x0c\x2b\xb3\x91\x7b\xf9\xdf\xf0\xfc\x21\x38\xcf\x4d\xe3\x85\x2c\x71\xa0\xc2\x7a\xc0\xe1\xda\x61\xfd\xe7\xdf\xe9\x66\x03\xfb\xbe\x61\xb7\x69\x7f\x46\x76\xb7\x3d\x46\xf1\x0d\x09\x23\x48\xef\xfa\x95\x7b\x9a\xf1\x6a\xef\x7f\xed\x03\x6b\xa7\x40\xea\xdb\x9e\x3e\xe5\x18\x70\x03\x51\xdd\x63\xfd\x54\xa7\x85\x3c\x6a\xae\x18\x0e\x9c\xf7\xe7\x16\x60\x17\x8a\xc8\xa8\x2b\x59\x01\x04\x82\x7d\xaf\x9b\xd1\xef\x07\x8a\xd5\x6c\xd3\x93\xd8\xc3\xd0\xb0\xc0\x42\xd2\x7a\xe4\xb6\xf5\x31\xd0\x2c\x9f\x46\x42\x72\xa7\x14\x26\xd5\x88\x47\x1c\x2a\x61\x59\xb3\x6e\xe7\x6e\x16\x58\x53\x40\xd1\xa1\x83\x1d\xa9\x41\x55\x6a\x84\xeb\x76\x84\x54\x7b\xba\x00\x40\xdc\x41\x98\xe7\x68\xc0\x9e\x38\xa6\x75\x62\x61\x2d\xe6\xef\xf6\x30\xff\x92\xf3\xc8\x85\xcc\x41\xd3\x1f\x54\xb8\x02\xe6\xb3\xb4\x7d\x51\xc3\x87\xd9\xb3\xc2\x0b\x76\x80\xdc\xf0\xce\x71\xaa\xa4\x6b\xfe\xc6\x0e\xab\x7f\x75\x0a\x53\x4c\xdb\x02\xcf\xab\xde\x84\x96\x80\x02\x55\x8a\xd2\x21\x57\xb0\x52\x8d\x13\x55\x8d\x2a\xef\xcf\xc4\x73\x02\xef\x05\x77\x8e\x71\x00\x3c\x19\x64\x5d\x84\xa5\x11\x57\x10\x93\xfd\xf6\x76\x23\xcd\xe3\x6b\xc8\xca\x16\x68\x9b\x77\x88\x84\x1d\x9f\x3e\x0b\xc1\xfd\xe3\xd6\xa7\x2a\x98\xa6\x4a\xa8\xb6\x7b\xf1\x77\x5b\x01\x25\x75\xda\xe0\x15\xb4\xb0\xe3\xa3\xf9\x6d\x86\x2f\x3e\x75\x99\x73\x14\xbb\x7a\xd1\xe0\x0e\xde\x8b\xa5\x31\x60\xea\xee\x9d\x75\xf6\x81\x3b\xa0\xa6\x00\x15\x6e\x01\xc1\xb9\xae\x8c\xfc\xf4\xbf\x39\xfb\xac\xbc\x87\x64\xcc\x56\x56\xbc\x81\x2b\x25\x41\xce\xc7\xd8\x6c\x18\x0f\x5b\xb3\x8a\x12\x44\x27\xc6\x96\x65\x22\xee\xef\x27\xab\x3c\xec\xa1\x25\xd5\xa3\x4c\x83\x23\x19\xeb\x76\xca\x83\x4f\x09\x62\x91\x02\xc8\x30\x4a\x02\xed\xc4\x17\x07\xe7\x94\x92\x7c\x35\xac\x31\xd6\xb6\xc0\x06\xac\xd8\x52\x4d\xc6\x92\x87\x88\x43\xa2\x91\xa5\xd9\xde\xc9\x42\x0a\xa7\xfb\x4d\x2a\x71\x91\xa5\xc2\xe8\x1f\x61\x32\x09\x43\x91\xb9\xed\x0f\x61\xb0\xe4\x4a\x3c\x2c\x96\xfb\x13\x09\x59\x4c\x37\xd1\xa5\xab\x89\x73\x6e\x88\x64\x3a\xdd\x4e\x2b\x8c\x7d\x9a\x33\xed\xa3\xd4\x38\x24\x85\x97\xdd\x2e\x57\x8e\xb9\x37\x87\x4f\x5b\x91\x38\x65\x11\xe9\xf9\x6a\x8c\xdd\x43\x0f\xb5\xcb\x30\x54\x8c\xb6\x43\x80\xa9\x64\x35\x6a\x52\x05\xea\xaa\x18\x8e\x97\xca\xce\xd0\xfc\x67\x8e\x6e\x6b\x55\x08\x61\x4d\xb1\xa9\xaf\x94\x20\x61\x03\x53\x38\xba\x72\x51\xdd\x4c\xd7\x87\xf7\xe5\x46\x5c\x07\x12\x1e\xf8\xf9\x8d\xa1\x51\x18\x6e\xe0\xc7\x27\xde\xf8\xc6\x88\x85\xec\x3a\x74\xa5\xb6\x9e\xfd\xaa\xbc\x97\x46\x53\x51\xb4\x21\x41\x7c\x1b\x79\x14\x7c\x98\x89\xb3\x9e\xaf\x73\x3c\x4e\x6b\x37\x0c\xc4\x68\xcd\xe4\x61\x1e\x77\xee\x9f\x29\xf8\xce\xf4\x57\xb2\xaf\xdc\x83\x2d\x22\xee\x9f\x01\xaf\xa2\x3a\x69\xff\xee\x44\x1a\x8e\x0e\x02\x88\x7e\x00\xe5\x68\x64\xa7\x64\xf1\x2d\xfa\xaa\x48\x1e\x93\x47\x19\x9f\xb4\xdc\xe1\xba\x02\x3d\x0c\xcd\x38\x43\xb3\x0c\xe9\x40\xd3\xdd\x87\x0a\x39\x71\xf5\x79\x8a\x53\xb7\x13\x21\x6e\x1e\xbb\x75\x49\x35\xdd\xf3\x9e\x13\x0b\x4b\xbd\xfe\xda\xe2\x4b\xbf\xb9\x43\xcd\x3d\x32\xfc\x67\x11\x96\x7c\xf7\x25\x03\xba\x04\xd4\x8b\x68\xf4\x18\xa5\x15\x1b\x68\xcc\xdd\x3d\x85\xb0\x6d\x72\x0c\x5a\xec\xc7\xb3\xd4\xc8\x3c\xd3\x21\x4b\x64\x83\xdf\xbd\x6b\xd5\x71\xc1\x7e\x79\x79\xf0\x1b\xc8\xa5\xdc\xe3\x34\xf1\x88\x8f\x37\xd2\xd0\x4c\x7a\xaa\x97\xa3\x32\x52\xa6\x70\xe2\xb1\x1f\x4b\xbc\xb5\xd6\x73\x71\xe9\x02\xab\x26\x25\x3e\x62\x1b\x74\x4a\x7f\x4c\x21\xc0\xee\x68\x22\x2e\x60\x7f\xe1\x29\xa1\x78\x20\x3e\xc5\xcc\x02\x19\x46\x66\xf1\xc6\xe7\xa0\x24\x62\xfa\xb4\xf2\x3b\x8c\xa9\x9e\xfa\x4e\x17\x73\x73\x70\x1f\x33\x55\x3b\x33\x85\xf0\x78\x54\xb0\xae\x76\x95\xbc\x16\x8b\x1b\xbc\xd3\x60\xb7\xaf\x39\xc7\x52\xd3\x2c\x0c\x12\x72\x0e\xac\x81\x81\x1b\x3c\x07\x65\xd4\xd3\x84\x4c\xec\xeb\x84\xa0\x2a\x39\xeb\x83\xff\x9f\xf9\x8c\xfd\xfd\x58\x92\xfe\x1f\x99\x49\xa0\x27\x25\x7d\x1b\x7f\xb4\x9e\x28\xbe\x87\x7b\x89\xb7\xbc\x75\x7e\xdc\x79\x62\xdf\xc2\x0d\x08\x88\xd4\xc4\xc4\xa7\x03\x8d\x51\x51\xd7\x3c\x3e\xdd\xb3\xce\x4e\xb1\xb4\xcd\xa2\xef\x60\xd9\x7c\xca\x72\x6d\xa2\x36\x11\xb8\x83\x6a\x77\x2b\xa0\xe7\x9a\x8b\x04\xa5\xcc\x0b\x2b\x1a\xa6\x70\x89\xed\x27\x72\x86\x50\xa9\xef\x2b\x21\x23\x12\x4d\x82\x1d\x1c\xfa\xa7\x07\x87\xf7\xa5\x53\x6a\xe2\x28\x65\x24\xcb\x5d\xdf\x06\xb6\xfb\x6f\x60\xd0\x71\xf4\xaf\x47\x67\x44\x71\x7f\x53\x22\x1b\x44\xe6\x6a\x44\x28\xbe\x87\x10\x01\x02\x33\xbe\x5a\x4a\xb5\xc1\xfd\x33\x92\x37\x33\x20\xfb\xbe\x0c\x4f\x5a\x8b\x52\xb4\xd8\x7a\x25\x43\xd8\x38\xcc\x17\x86\x57\xbc\x26\x2e\x42\x21\x38\x47\xbb\x67\xab\x1c\x24\xf7\xaa\x33\x5d\xf1\x86\x68\x3e\xcd\x0c\xb5\x1f\x12\x54\x2b\x69\xa1\x3b\x3d\xcc\xfd\xcf\xf4\x3f\x2f\xdd\x9a\x82\x03\x4d\xcc\xc5\x0e\xb0\xe4\x47\x82\x00\x50\xb3\x2e\xe8\x20\x6b\x88\x12\xa6\xbb\xd5\x5a\x12\xac\xff\x0f\x1b\x76\xc5\xd5\x61\xf7\x82\x7d\x09\xc4\xba\x62\x9b\x77\x67\x7b\x70\xf9\x32\x2b\xca\xd0\x28\xc6\xd8\x26\xbd\x07\x5f\x3c\x62\xed\x02\xc0\xe2\x68\x45\xfc\x00\x9f\x1c\xf5\x51\x1f\x9f\x70\xb2\xb8\x81\xee\x4c\x5b\x13\x45\x3d\x24\x14\xf9\xfc\x21\x3f\x56\xb9\x1f\x3a\x73\xc0\xb5\x30\x77\x2f\x4a\x05\xf0\x3d\xd8\x23\x9c\x16\x05\xef\x87\xaf\x7b\x2c\x1e\x06\x5b\x76\x1d\x9b\x87\x51\x7e\x51\x6a\x6a\x9b\x65\x71\x2a\x69\x6b\x32\x46\xfa\x58\xc2\xd5\x3a\x8c\xb3\x47\x06\x75\x2b\x08\xeb\x8b\x18\xfb\x2a\xfa\x05\x51\x8e\x57\x8f\xc8\x87\x04\x7b\x7c\xc8\x65\x19\x3a\x4e\xa0\x96\x59\x2f\x4b\x9c\x2b\xa3\x30\x99\x96\x22\xb9\xc2\xe4\xb0\x33\xad\xf9\xfe\xe8\xb9\x5d\xbe\xfb\xd3\x0a\x35\x3c\xb2\x05\x25\xb9\x72\xf4\x65\x04\xa0\x15\x3e\x0a\x17\x49\x90\xa4\x48\xf3\x4c\x7a\x01\x5e\x2e\xba\x73\x61\xf0\x08\x49\xd9\xdc\x35\x2a\x17\x64\xa0\xc0\x2f\x2b\x6d\xd7\x8f\xfa\x20\x5e\xbd\xf8\x29\xda\xb8\x76\x11\xbf\x5e\x08\x25\x2d\x59\x8a\x89\x32\x90\x95\xdd\x7e\x29\x9c\x2b\x20\xb4\xb7\xbd\x19\x98\x99\x1b\x12\x11\x8b\x0a\x93\x84\x9f\x95\x5b\x2b\x8e\xdf\x25\x33\xa3\x59\x9f\xcb\xd2\x8b\xd3\xcf\x5c\x92\x48\xcb\xfc\xaf\xab\x35\x40\xb4\x28\xf0\xd5\x42\x01\xca\x2a\x84\xa8\xca\xbd\xa5\xc8\xfa\x51\x22\xd3\xa4", 4096); *(uint64_t*)0x20012448 = 0x20012340; *(uint32_t*)0x20012340 = r[2]; *(uint32_t*)0x20012344 = r[2]; *(uint64_t*)0x20012450 = 0x20012380; *(uint64_t*)0x20012458 = 0x20012400; *(uint32_t*)0x20012460 = 0x1000; *(uint32_t*)0x20012464 = 2; *(uint32_t*)0x20012468 = 0x51; *(uint32_t*)0x2001246c = 5; res = -1; res = ((intptr_t(*)(intptr_t,intptr_t,intptr_t,intptr_t,intptr_t,intptr_t))CAST(zx_channel_call))(/*handle=*/r[2], /*options=*/0, /*deadline=*/r[0], /*args=*/0x20012440, /*actual_bytes=*/0x20012480, /*actual_handles=*/0x200124c0); if (res == ZX_OK) { r[3] = *(uint32_t*)0x2001240c; r[4] = *(uint32_t*)0x20012410; } break; case 7: ((intptr_t(*)(intptr_t,intptr_t,intptr_t,intptr_t,intptr_t,intptr_t,intptr_t,intptr_t))CAST(zx_channel_read))(/*handle=*/r[3], /*options=*/0, /*bytes=*/0x20012500, /*num_bytes=*/0x10000, /*handles=*/0x20022500, /*num_handles=*/0, /*actual_bytes=*/0x20022540, /*actual_handles=*/0x20022580); break; case 8: res = -1; res = ((intptr_t(*)(intptr_t,intptr_t,intptr_t,intptr_t,intptr_t,intptr_t))CAST(zx_pager_create_vmo))(/*pager=*/r[4], /*options=*/0, /*port=*/r[4], /*key=*/0x3eb, /*size=*/0x7fb, /*out=*/0x200225c0); if (res == ZX_OK) r[5] = *(uint32_t*)0x200225c0; break; case 9: ((intptr_t(*)(intptr_t,intptr_t,intptr_t,intptr_t))CAST(zx_stream_seek))(/*handle=*/r[5], /*whence=*/0, /*offset=*/0x401, /*out_seek=*/0x20022600); break; case 10: memcpy((void*)0x20000000, "\xc4\xa1\x49\xc2\xda\x0b\x0f\x18\xd2\x3e\x26\xf3\x36\x67\xdb\xe2\xc4\xc1\xd1\x16\x3b\xc4\xc1\xb4\xc6\x85\x0a\x00\x00\x00\x00\xf3\x40\xac\x85\x2f\x47\x0f\xf2\x4a\x00\x44\x79\xa5\x26\xf2\xad", 47); syz_execute_func(/*text=*/0x20000000); break; case 11: syz_future_time(/*when=*/1); break; case 12: syz_job_default(); break; case 13: syz_mmap(/*addr=*/0x20ffb000, /*len=*/0x4000); break; case 14: syz_process_self(); break; case 15: syz_thread_self(); break; case 16: syz_vmar_root_self(); break; } } int main(void) { syz_mmap(/*addr=*/0x20000000, /*len=*/0x1000000); setup_fault(); use_temporary_dir(); do_sandbox_none(); return 0; } :269:66: error: use of undeclared identifier 'zx_system_get_performance_info' ((intptr_t(*)(intptr_t,intptr_t,intptr_t,intptr_t,intptr_t))CAST(zx_system_get_performance_info))(/*res=*/0, /*topic=*/0, /*count=*/4, /*info=*/0x20000000, /*output_count=*/0x20000040); ^ 1 error generated. compiler invocation: /syzkaller/shared/fuchsia/prebuilt/third_party/clang/linux-x64/bin/clang [-o /tmp/syz-executor301034996 -DGOOS_fuchsia=1 -DGOARCH_amd64=1 -DHOSTGOOS_linux=1 -x c - -Wno-deprecated -target x86_64-fuchsia -ldriver -lfdio -lzircon --sysroot /syzkaller/shared/fuchsia/out/x64/zircon_toolchain/obj/zircon/public/sysroot/sysroot -I /syzkaller/shared/fuchsia/sdk/lib/fdio/include -I /syzkaller/shared/fuchsia/zircon/system/ulib/fidl/include -I /syzkaller/shared/fuchsia/src/lib/ddk/include -I /syzkaller/shared/fuchsia/out/x64/fidling/gen/sdk/fidl/fuchsia.device -I /syzkaller/shared/fuchsia/out/x64/fidling/gen/sdk/fidl/fuchsia.device.manager -I /syzkaller/shared/fuchsia/out/x64/fidling/gen/sdk/fidl/fuchsia.hardware.nand -I /syzkaller/shared/fuchsia/out/x64/fidling/gen/sdk/fidl/fuchsia.hardware.power.statecontrol -I /syzkaller/shared/fuchsia/out/x64/fidling/gen/sdk/fidl/fuchsia.hardware.usb.peripheral -I /syzkaller/shared/fuchsia/out/x64/fidling/gen/zircon/vdso/zx -L /syzkaller/shared/fuchsia/out/x64/x64-shared -O2 -pthread -Wall -Werror -Wparentheses -Wunused-const-variable -Wframe-larger-than=16384 -Wno-array-bounds -Wno-unused-command-line-argument] --- FAIL: TestGenerate/fuchsia/amd64/14 (0.63s) csource_test.go:150: opts: {Threaded:true Repeat:true RepeatTimes:0 Procs:2 Slowdown:1 Sandbox:none SandboxArg:0 Leak:false NetInjection:false NetDevices:false NetReset:false Cgroups:false BinfmtMisc:false CloseFDs:false KCSAN:false DevlinkPCI:false NicVF:false USB:false VhciInjection:false Wifi:false IEEE802154:false Sysctl:false Swap:false UseTmpDir:true HandleSegv:false Repro:true Trace:false LegacyOptions:{Collide:false Fault:false FaultCall:0 FaultNth:0}} program: zx_system_get_performance_info(0x0, 0x0, 0x4, &(0x7f0000000000)=""/1, &(0x7f0000000040)) (fail_nth: 1) r0 = syz_future_time(0x1) (async) zx_channel_call$fuchsia_io_FileSeek(0x0, 0x0, r0, &(0x7f0000010140)={&(0x7f0000000080)={{}, 0xffffffffffffffff, 0x2}, &(0x7f00000000c0), &(0x7f0000000100), &(0x7f0000010100), 0x1c, 0x0, 0x10000}, &(0x7f0000010180), &(0x7f00000101c0)) (rerun: 4) zx_process_create(0x0, &(0x7f0000010200)='\x00', 0x1, 0x0, &(0x7f0000010240)=0x0, &(0x7f0000010280)) zx_object_get_child(0x0, 0x0, 0x800, &(0x7f00000102c0)=0x0) zx_process_start(r1, r2, &(0x7f0000010300)="c4817d290e8051bf0065673666450ff7fdc401a1c40009c482f935f1c441fc52d0660fc5f398c4837909c6b1664b0f6ee5f341d8cd", &(0x7f0000010340)=""/4096, 0x0, 0x0) zx_channel_call(r2, 0x0, r0, &(0x7f0000012440)={&(0x7f0000011340)="68b92e90e81a0a65aba68ac3039007c40663fec316f1d3f030eb37cd0f8d9e056bc93cbf8811c6ec84bd43ee1dbc4eb9f291b1ff6296bf0f229b823cf75021ecdd1d843abece20ab3e287801d8a782d9947b008614b221e17c641ae2b5b0307cc6594759aaddde5b89ead9c032e8754ab98f09b03c802934cf4f75a4b153ae626a37333e7f35d166315311f3953ecf02f615822c58ac205d4da75d434ff36da5052a2f5d6c2a15477eb5536c80ee076e9894e6c63c0bf3d3004ce2107385919fcb771beebd389824689fbd28804b23cd933a3ab8d862c1f3cac7352fe4fccfc22d38777d69ba0fa2c820166ae8d351e116f0ca3dcfe6fc6d38f526411d407d0b2f97d822a054f440b05b7598b66e1848b0f2a8c2718f62c2c503fb28c8820626d9f46300f474feda0c816e43d9ed963447e0cd3d473ac3f0633d3d1fe4b43e587c3bfb5d3b9c3fb9472f7593c19a2d573f04796a7655ff5a1c0995834b07b62b79511946216d6c418af8ec0845782f112dfe0b7e4b6b0fb3604b4b2df31177a7c1976de255179553bff2544aa557a454b2657c5b3f0f71cff83c0b92d302d2201b7db36e9d8677dfad29ac432c25ea3b123db4f9240e9202c219a6479f05322aeb7da49f198893bdbfa0bf19a815e63aab70d4bcf3cb8b38f9ee914b43ee33e006d827919ce084d84257cb139979bb144e19cc8745478ea0ffde10d3cf590386497b43f4bc2725ec2d0df94f1a534a1ee8c429400e1078cc58a7bd8d1ded2cf4966766f21b4c07ce40d85593f8642b29652424a85aebdccdd8beba9fbfe6b1414cd3164552e7e49bb930019990dac4751a65be853b953b88eccac92c889c4d95116e94628480baab01a6cd991353ccbc8e78153038f45d9d2dc2c6fb96e37d9bdb69be948f12579371a43969e942ca69387296cf781526b7ef422f4c9bc644827237a03b2a60baaff7703ee33956dc669b1c04c721bf68f343c80b61f35ca1b19559965fd7026a1cec9bd9d92f1450ecbaf42de12042bd630d3445706c56775071deae54f2c531bc8c0be2268a13f12af588057f3ebd3ed17fa09a1a06071ec13e7e7638b15a8e0c55524a90c2d7c79c1b2f427fffaffa26390f1d6cd4abf2169604b2e779a734e06b15d03ed940bbc02ed1203f55dd3fd2957608398fc7265961dda28d626a8ea5edee28a37210c8c7321611e52b4e541c90e0721eda0de5f30cf3885eda30d6ece46263809aa1e5fe88b93106f1e7437faefcce951b197aa5b1f2780aa437cf6a1f9c069fe82d18c57ca9a705cf5202bbd1afc41e1d289a46a434cfd16bb7ce6ee764d5f0e6c81e8486eca116902abad6b98df389eaef8156b8b56325358e01f3ec30d050d9226ecfb0a1d7e2cae6b5ca6738c8cdeba6bc118327d682f8b5957c55617feac811ab2ab6ee3aee63639429f9979db5285c330da8a9f6a306b69cecfb2be3c640f04331fff3789a47445c5125fb99e996f401b319bfce5b08936db9c6f828c682bbe69e866ac0a6b204e02ecefd61142d0c20c1995562bc1fdab582296189a1b34bdb75722e64e7d4f00b8d83fdc2f8fc76971143750acd0d513b81298a2f8c72252cceb73633976f52fc2e93a1ef806ec7957c66eeac4c52f9b584580390c6fa4643e0cad59ad3f58104a728d93bc6869a6f649892eef9ecb3eebcebd34854f8e19db5ac62ba0b67a740bb39b1905e8d345e2ff21b4e25974bd5bc7c862607ddb6ac10cecde59c1a932b2fb5b22c673457bd4a396e3667f4227a276fa1a1b20fb60ff5841af64e981f6c84be84ad1bb10d941d615629654e1d128c9a377ad60b04c3cf2aad7118626eaae0b4068dd623e1a2d98b95524f9db16049ecffd5c8fee7e1bba747a1ee9ec5f67aee0b69951dfa0b587c34beb36be3c16c3ab024eb271f3716499ed5a1795eac3423c37b8fa9d20d1af4e967164263fc60e0cd8e84cfc312b34185f40a7d0777749147f60438653bc3d36a1dad3ea433684464e0c9c12a88c44d862e022992cb4bfa603d1f8d21a0a5bd6c62fc3e8427f196507daed74f62a17ba9781a4740cf7f9c5df12362ded5aaa835c1943c3d93241e9c312bff7232e6e92321400ddacb84b84b1c4120575c5d0246d78ad3e9fd4acbbb5115944d1c39f3e07405baf7dd4bd633c0bfdbaafdb42954eb6206668d53e9947594e4d0911b09036cba8f09f4cc198dc064c68d5a7b848dd2a6a664619611845767f992b1527a62771d36527cc881b5ccc06fbbf864e27dca99a433424bdb6ef631a7c824c246b7222216000dba03d7664c485a2cdfc04042db57164aa760078abb80ed030c0e6c83ae5b9fb4225c7ab72479d1762c730fe1fd9deac13d6cba0d78c01e03c12d9410cfb11ed20166a5780dd5e2eb221aaf424eddde14f4ac8302f16b699713d3225436ed4912aaef584979246f60a5168577856b82c2f809ccea64488fad8de0dccc30e7396c27c60d1da0f294ef98d596707439c35e248849121788643726329c1acd0bd79125240782d8af03b2b5cce2d960b8a9b3c81e1f88b9a07860a916e46053094622c6057af203c842ff84375729030665c5705240949e1b729d29496a29ed39d29317483eec8cbfb7dceac0b0ca6c3fb07aeb6a2368dc767eb07d7ed9cc62b910b801d08989a83f3be58618701c713f298ca7f17eae72510b29568c3159a44a01f7ffaeeddeae9d22c68ea261bc2060bce8a1213142b60b5a8d1e7314fe7fc39364b049d54f2a73cc7780f6ec477cb2738a0cb28a919f2c0cf935c1ef51bbac891338b72813acc379848bfc3b39969aeaa9f2787ddd183c3722a12b0b90f48ce2f7533f00d122c9835280f7fd8a0ad41aa1b08ba6d7dfca7b583c1e03989906040f5984c6699f382909f5939599585232c92776a1b5592712a42d5f44fc21a1882850261042ea98762309ded8799d909d6a406336a5f276fb29e9a8589736ded2e97ebc6f82b5f577d0a07021f4fcd6371c5ed29a5380d9dbf0d0ca34b684631dfb501e2ae243877432dad26a3cd3c94664a295461d6e78d057ef89842bac7a33f6a634b2e374ffac86aee35fd80008ab9809830554d7404e7540f11a7ef273dc846a57eef2b27204be709c3eaea2b305df401e4007f7f2978ebd37190e5e7cbf2d8ee418d6d9fa59ecba7603cba8d2f731733f42e49499c68592f87fea94354e0c066c30a256eab36495b10d082ede4e20630e4d799141cc44801408cd3b28a71c075504b3acc1b69d72ec615275781bf9bbdd87b7d409cf3cdd18e7cc86a164ddb980bf1adac888b7bab3d7c968a46481321c10748b79450303e5aa0860d6fcc4304e80d698866593ff7f18cdd1f93df672c7ce860b192d9e033d8aef00d4685c4165547303848b91bcb2a3956e2d17e51a70a6e383bce71d49be32bd461aec0d691c8849e6b178558e47b28831113fa448e7c950fee79dd5d0190d4c11d29bc2e0477091138e1d3836f1bb86bea2edc7ee8ebfca693022823d4968a067b36c06b0caa8e84633d81ea62e548a4e8709671f0c928a28e524af78ebd0a815aac9f6df611df081b75f5527f3b5a04a501ef02e37afe7aeb077d2d7aab08ccbc243fe69395d77ec5db84c3b6c5c8480afb3b3ce91e6a4dfb9bbeb5e623d1cfeff8b53b1e4f0337a4d8d5b3818517d66704b5756375dd85712ea2ae3c643cb564a9bb8c032ee333d0eccc6fa0170b5dd7a78ad50d7255fa113dfa1b20317b1d4d508967a38306ebe3423233198d6e341339e90d3e31bae9a1528b8f100aec437f656670c2bb3917bf9dff0fc2138cf4de3852c71a0c27ac0e1da61fde7dfe96603fbbe61b7697f4676b73d46f10d092348effa957b9af16aef7fed036ba740eadb9e3ee518700351dd63fd54a7853c6aae180e9cf7e71660178ac8a82b590104827daf9bd1ef078ad56cd393d8c3d0b0c042d27ae4b6f531d02c9f464272a71426d588471c2a6159b36ee76e16585340d1a1831da941556a84eb7684547bba0040dc4198e768c09e38a67562612de6eff630ff92f3c885cc41d31f54b802e6b3b47d51c387d9b3c20b7680dcf0ce71aaa46bfec60eab7f750a534cdb02cfabde84968002558ad22157b0528d13558d2aefcfc47302ef05778e71003c19645d84a511571093fdf67623cde36bc8ca16689b7788841d9f3e0bc1fde3d6a72a98a64aa8b67bf1775b012575dae015b4b0e3a3f96d862f3e75997314bb7ad1e00ede8ba53160eaee9d75f6813ba0a600156e01c1b9ae8cfcf4bf39fbacbc8764cc5656bc812b2541cec7d86c180f5bb38a124427c6966522eeef27ab3ceca125d5a34c832319eb76ca834f09629102c8304a02edc41707e794927c35ac31d6b6c006acd8524dc692878843a291a5d9dec9420aa7fb4d2a7191a5c2e81f6132094391b9ed0f61b0e44a3c2c96fb1309594c37d1a5ab89736e88643add4e2b8c7d9a33eda3d438248597dd2e578eb937874f5b91386511e9f96a8cdd430fb5cb30548cb64380a964356a5205eaaa188e97caced0fc678e6e6b5508614db1a9af942061035338ba7251dd4cd787f7e5465c07121ef8f98da151186ee0c727def8c68885ec3a74a5b69efdaabc97465351b421417c1b79147c9889b39eaf733c4e6b370cc468cde4611e77ee9f29f8cef457b2afdc832d22ee9f01afa23a69ffee441a8e0e02887e00e56864a764f12dfaaa481e9347199fb4dce1ba023d0ccd3843b30ce940d3dd870a3971f5798a53b713216e1ebb754935ddf39e130b4bbdfedae24bbfb943cd3d32fc6711967cf72503ba04d48b68f418a5151b68ccdd3d85b06d720c5aecc7b3d4c83cd3214b6483dfbd6bd571c17e7979f01bc8a5dce334f1888f37d2d04c7aaa97a33252a670e2b11f4bbcb5d67371e902ab26253e621b744a7f4c21c0ee68222e607fe129a178203ec5cc02194666f1c6e7a02462fab4f23b8ca99efa4e177373701f33553b3385f07854b0ae7695bc168b1bbcd360b7af39c752d32c0c12720eac81811b3c0765d4d3844ceceb84a02a39eb83ff9ff98cfdfd5892fe1f9949a027257d1b7fb49e28be877b89b7bc757edc7962dfc20d0888d4c4c4a7038d5151d73c3eddb3ce4eb1b4cda2ef60d97cca726da23611b8836a772ba0e79a8b04a5cc0b2b1aa67089ed27728650a9ef2b2123124d821d1cfaa70787f7a5536ae2286524cb5ddf06b6fb6f60d071f4af476744717f53221b44e66a4428be8710010233be5a4ab5c1fd3392373320fbbe0c4f5a8b52b4d87a2543d838cc178657bc262e42213847bb67ab1c24f7aa335df186683ecd0cb51f12542b69a13b3dccfdcff43f2fdd9a82034dccc50eb0e447820050b32ee8206b8812a6bbd55a12acff0f1b76c5d561f7827d09c4ba629b77677b70f9322bcad028c6d826bd075f3c62ed02c0e26845fc009f1cf5511f9f70b2b881ee4c5b13453d2414f9fc213f56b91f3a73c0b530772f4a05f03dd8239c1605ef87af7b2c1e065b761d9b87517e516a6a9b65712a696b3246fa58c2d53a8cb34706752b08eb8b18fb2afa05518e578fc887047b7cc865193a4ea096592f4b9c2ba330999622b9c2e4b033adf9fee8b95dbefbd30a353cb20525b972f46504a0153e0a174990a448f34c7a015e2eba7361f00849d9dc352a1764a0c02f2b6dd78ffa205ebdf829dab87611bf5e08252d598a89329095dd7e299c2b20b4b7bd1998991b12118b0a93849f955b2b8edf2533a3599fcbd28bd3cf5c9248cbfcafab3540b428f0d54201ca2a84a8cabda5c8fa5122d3a4", &(0x7f0000012340)=[r2, r2], &(0x7f0000012380)=""/81, &(0x7f0000012400)=[0x0, 0x0, 0x0, 0x0, 0x0], 0x1000, 0x2, 0x51, 0x5}, &(0x7f0000012480), &(0x7f00000124c0)) zx_channel_read$fuchsia_io_DirectoryAdminOnOpen(r3, 0x0, &(0x7f0000012500), 0x10000, &(0x7f0000022500), 0x0, &(0x7f0000022540), &(0x7f0000022580)) zx_pager_create_vmo(r4, 0x0, r4, 0x3, 0x7fb, &(0x7f00000225c0)=0x0) zx_stream_seek(r5, 0x0, 0x401, &(0x7f0000022600)) syz_execute_func(&(0x7f0000000000)="c4a149c2da0b0f18d23e26f33667dbe2c4c1d1163bc4c1b4c6850a00000000f340ac852f470ff24a004479a526f2ad") syz_future_time(0x1) syz_job_default() syz_mmap(&(0x7f0000ffb000/0x4000)=nil, 0x4000) syz_process_self() syz_thread_self() syz_vmar_root_self() csource_test.go:151: failed to build program: // autogenerated by syzkaller (https://github.com/google/syzkaller) #define _GNU_SOURCE #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include static unsigned long long procid; static void sleep_ms(uint64_t ms) { usleep(ms * 1000); } static uint64_t current_time_ms(void) { struct timespec ts; if (clock_gettime(CLOCK_MONOTONIC, &ts)) exit(1); return (uint64_t)ts.tv_sec * 1000 + (uint64_t)ts.tv_nsec / 1000000; } static void use_temporary_dir(void) { char tmpdir_template[] = "/tmp/syzkaller.XXXXXX"; char* tmpdir = mkdtemp(tmpdir_template); if (!tmpdir) exit(1); if (chmod(tmpdir, 0777)) exit(1); if (chdir(tmpdir)) exit(1); } static int inject_fault(int nth) { return 0; } static void setup_fault() { } static void thread_start(void* (*fn)(void*), void* arg) { pthread_t th; pthread_attr_t attr; pthread_attr_init(&attr); pthread_attr_setstacksize(&attr, 128 << 10); int i = 0; for (; i < 100; i++) { if (pthread_create(&th, &attr, fn, arg) == 0) { pthread_attr_destroy(&attr); return; } if (errno == EAGAIN) { usleep(50); continue; } break; } exit(1); } typedef struct { int state; } event_t; static void event_init(event_t* ev) { ev->state = 0; } static void event_reset(event_t* ev) { ev->state = 0; } static void event_set(event_t* ev) { if (ev->state) exit(1); __atomic_store_n(&ev->state, 1, __ATOMIC_RELEASE); } static void event_wait(event_t* ev) { while (!__atomic_load_n(&ev->state, __ATOMIC_ACQUIRE)) usleep(200); } static int event_isset(event_t* ev) { return __atomic_load_n(&ev->state, __ATOMIC_ACQUIRE); } static int event_timedwait(event_t* ev, uint64_t timeout_ms) { uint64_t start = current_time_ms(); for (;;) { if (__atomic_load_n(&ev->state, __ATOMIC_RELAXED)) return 1; if (current_time_ms() - start > timeout_ms) return 0; usleep(200); } } long syz_mmap(size_t addr, size_t size) { zx_handle_t root = zx_vmar_root_self(); zx_info_vmar_t info; zx_status_t status = zx_object_get_info(root, ZX_INFO_VMAR, &info, sizeof(info), 0, 0); if (status != ZX_OK) { return status; } zx_handle_t vmo; status = zx_vmo_create(size, 0, &vmo); if (status != ZX_OK) { return status; } uintptr_t mapped_addr; status = zx_vmar_map(root, ZX_VM_FLAG_SPECIFIC_OVERWRITE | ZX_VM_FLAG_PERM_READ | ZX_VM_FLAG_PERM_WRITE, addr - info.base, vmo, 0, size, &mapped_addr); zx_status_t close_vmo_status = zx_handle_close(vmo); if (close_vmo_status != ZX_OK) { } return status; } static long syz_process_self(void) { return zx_process_self(); } static long syz_thread_self(void) { return zx_thread_self(); } static long syz_vmar_root_self(void) { return zx_vmar_root_self(); } static long syz_job_default(void) { return zx_job_default(); } static long syz_future_time(volatile long when) { zx_time_t delta_ms = 10000; switch (when) { case 0: delta_ms = 5; break; case 1: delta_ms = 30; break; } zx_time_t now = 0; zx_clock_read(ZX_CLOCK_MONOTONIC, &now); return now + delta_ms * 1000 * 1000; } static void loop(); static int do_sandbox_none(void) { loop(); return 0; } #define CAST(f) ({void* p = (void*)f; p; }) static long syz_execute_func(volatile long text) { ((void (*)(void))(text))(); return 0; } struct thread_t { int created, call; event_t ready, done; }; static struct thread_t threads[16]; static void execute_call(int call); static int running; static void* thr(void* arg) { struct thread_t* th = (struct thread_t*)arg; for (;;) { event_wait(&th->ready); event_reset(&th->ready); execute_call(th->call); __atomic_fetch_sub(&running, 1, __ATOMIC_RELAXED); event_set(&th->done); } return 0; } static void execute_one(void) { if (write(1, "executing program\n", sizeof("executing program\n") - 1)) { } int i, call, thread; for (call = 0; call < 17; call++) { for (thread = 0; thread < (int)(sizeof(threads) / sizeof(threads[0])); thread++) { struct thread_t* th = &threads[thread]; if (!th->created) { th->created = 1; event_init(&th->ready); event_init(&th->done); event_set(&th->done); thread_start(thr, th); } if (!event_isset(&th->done)) continue; event_reset(&th->done); th->call = call; __atomic_fetch_add(&running, 1, __ATOMIC_RELAXED); event_set(&th->ready); if (call == 1) break; event_timedwait(&th->done, 50); break; } } for (i = 0; i < 100 && __atomic_load_n(&running, __ATOMIC_RELAXED); i++) sleep_ms(1); } static void execute_one(void); static void loop(void) { execute_one(); } uint64_t r[6] = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0}; void execute_call(int call) { intptr_t res = 0; switch (call) { case 0: inject_fault(1); ((intptr_t(*)(intptr_t,intptr_t,intptr_t,intptr_t,intptr_t))CAST(zx_system_get_performance_info))(/*res=*/0, /*topic=*/0, /*count=*/4, /*info=*/0x20000000, /*output_count=*/0x20000040); break; case 1: res = -1; res = syz_future_time(/*when=*/1); if ((int)res != -1) r[0] = res; break; case 2: *(uint64_t*)0x20010140 = 0x20000080; *(uint32_t*)0x20000080 = 0; memset((void*)0x20000084, 0, 3); *(uint8_t*)0x20000087 = 1; *(uint64_t*)0x20000088 = 0x782a774500000000; *(uint64_t*)0x20000090 = -1; *(uint32_t*)0x20000098 = 2; *(uint64_t*)0x20010148 = 0x200000c0; *(uint64_t*)0x20010150 = 0x20000100; *(uint64_t*)0x20010158 = 0x20010100; *(uint32_t*)0x20010160 = 0x1c; *(uint32_t*)0x20010164 = 0; *(uint32_t*)0x20010168 = 0x10000; *(uint32_t*)0x2001016c = 0; ((intptr_t(*)(intptr_t,intptr_t,intptr_t,intptr_t,intptr_t,intptr_t))CAST(zx_channel_call))(/*handle=*/0, /*options=*/0, /*deadline=*/r[0], /*args=*/0x20010140, /*actual_bytes=*/0x20010180, /*actual_handles=*/0x200101c0); { int i; for(i = 0; i < 4; i++) { ((intptr_t(*)(intptr_t,intptr_t,intptr_t,intptr_t,intptr_t,intptr_t))CAST(zx_channel_call))(/*handle=*/0, /*options=*/0, /*deadline=*/r[0], /*args=*/0x20010140, /*actual_bytes=*/0x20010180, /*actual_handles=*/0x200101c0); } } break; case 3: memset((void*)0x20010200, 0, 1); res = -1; res = ((intptr_t(*)(intptr_t,intptr_t,intptr_t,intptr_t,intptr_t,intptr_t))CAST(zx_process_create))(/*job=*/0, /*name=*/0x20010200, /*name_len=*/1, /*options=*/0, /*proc_handle=*/0x20010240, /*vmar_handle=*/0x20010280); if (res == ZX_OK) r[1] = *(uint32_t*)0x20010240; break; case 4: res = -1; res = ((intptr_t(*)(intptr_t,intptr_t,intptr_t,intptr_t))CAST(zx_object_get_child))(/*handle=*/0, /*koid=*/0, /*rights=*/0x800, /*out=*/0x200102c0); if (res == ZX_OK) r[2] = *(uint32_t*)0x200102c0; break; case 5: memcpy((void*)0x20010300, "\xc4\x81\x7d\x29\x0e\x80\x51\xbf\x00\x65\x67\x36\x66\x45\x0f\xf7\xfd\xc4\x01\xa1\xc4\x00\x09\xc4\x82\xf9\x35\xf1\xc4\x41\xfc\x52\xd0\x66\x0f\xc5\xf3\x98\xc4\x83\x79\x09\xc6\xb1\x66\x4b\x0f\x6e\xe5\xf3\x41\xd8\xcd", 53); ((intptr_t(*)(intptr_t,intptr_t,intptr_t,intptr_t,intptr_t,intptr_t))CAST(zx_process_start))(/*process=*/r[1], /*thread=*/r[2], /*entry=*/0x20010300, /*stack=*/0x20010340, /*arg1=*/0, /*arg2=*/0); break; case 6: *(uint64_t*)0x20012440 = 0x20011340; memcpy((void*)0x20011340, "\x68\xb9\x2e\x90\xe8\x1a\x0a\x65\xab\xa6\x8a\xc3\x03\x90\x07\xc4\x06\x63\xfe\xc3\x16\xf1\xd3\xf0\x30\xeb\x37\xcd\x0f\x8d\x9e\x05\x6b\xc9\x3c\xbf\x88\x11\xc6\xec\x84\xbd\x43\xee\x1d\xbc\x4e\xb9\xf2\x91\xb1\xff\x62\x96\xbf\x0f\x22\x9b\x82\x3c\xf7\x50\x21\xec\xdd\x1d\x84\x3a\xbe\xce\x20\xab\x3e\x28\x78\x01\xd8\xa7\x82\xd9\x94\x7b\x00\x86\x14\xb2\x21\xe1\x7c\x64\x1a\xe2\xb5\xb0\x30\x7c\xc6\x59\x47\x59\xaa\xdd\xde\x5b\x89\xea\xd9\xc0\x32\xe8\x75\x4a\xb9\x8f\x09\xb0\x3c\x80\x29\x34\xcf\x4f\x75\xa4\xb1\x53\xae\x62\x6a\x37\x33\x3e\x7f\x35\xd1\x66\x31\x53\x11\xf3\x95\x3e\xcf\x02\xf6\x15\x82\x2c\x58\xac\x20\x5d\x4d\xa7\x5d\x43\x4f\xf3\x6d\xa5\x05\x2a\x2f\x5d\x6c\x2a\x15\x47\x7e\xb5\x53\x6c\x80\xee\x07\x6e\x98\x94\xe6\xc6\x3c\x0b\xf3\xd3\x00\x4c\xe2\x10\x73\x85\x91\x9f\xcb\x77\x1b\xee\xbd\x38\x98\x24\x68\x9f\xbd\x28\x80\x4b\x23\xcd\x93\x3a\x3a\xb8\xd8\x62\xc1\xf3\xca\xc7\x35\x2f\xe4\xfc\xcf\xc2\x2d\x38\x77\x7d\x69\xba\x0f\xa2\xc8\x20\x16\x6a\xe8\xd3\x51\xe1\x16\xf0\xca\x3d\xcf\xe6\xfc\x6d\x38\xf5\x26\x41\x1d\x40\x7d\x0b\x2f\x97\xd8\x22\xa0\x54\xf4\x40\xb0\x5b\x75\x98\xb6\x6e\x18\x48\xb0\xf2\xa8\xc2\x71\x8f\x62\xc2\xc5\x03\xfb\x28\xc8\x82\x06\x26\xd9\xf4\x63\x00\xf4\x74\xfe\xda\x0c\x81\x6e\x43\xd9\xed\x96\x34\x47\xe0\xcd\x3d\x47\x3a\xc3\xf0\x63\x3d\x3d\x1f\xe4\xb4\x3e\x58\x7c\x3b\xfb\x5d\x3b\x9c\x3f\xb9\x47\x2f\x75\x93\xc1\x9a\x2d\x57\x3f\x04\x79\x6a\x76\x55\xff\x5a\x1c\x09\x95\x83\x4b\x07\xb6\x2b\x79\x51\x19\x46\x21\x6d\x6c\x41\x8a\xf8\xec\x08\x45\x78\x2f\x11\x2d\xfe\x0b\x7e\x4b\x6b\x0f\xb3\x60\x4b\x4b\x2d\xf3\x11\x77\xa7\xc1\x97\x6d\xe2\x55\x17\x95\x53\xbf\xf2\x54\x4a\xa5\x57\xa4\x54\xb2\x65\x7c\x5b\x3f\x0f\x71\xcf\xf8\x3c\x0b\x92\xd3\x02\xd2\x20\x1b\x7d\xb3\x6e\x9d\x86\x77\xdf\xad\x29\xac\x43\x2c\x25\xea\x3b\x12\x3d\xb4\xf9\x24\x0e\x92\x02\xc2\x19\xa6\x47\x9f\x05\x32\x2a\xeb\x7d\xa4\x9f\x19\x88\x93\xbd\xbf\xa0\xbf\x19\xa8\x15\xe6\x3a\xab\x70\xd4\xbc\xf3\xcb\x8b\x38\xf9\xee\x91\x4b\x43\xee\x33\xe0\x06\xd8\x27\x91\x9c\xe0\x84\xd8\x42\x57\xcb\x13\x99\x79\xbb\x14\x4e\x19\xcc\x87\x45\x47\x8e\xa0\xff\xde\x10\xd3\xcf\x59\x03\x86\x49\x7b\x43\xf4\xbc\x27\x25\xec\x2d\x0d\xf9\x4f\x1a\x53\x4a\x1e\xe8\xc4\x29\x40\x0e\x10\x78\xcc\x58\xa7\xbd\x8d\x1d\xed\x2c\xf4\x96\x67\x66\xf2\x1b\x4c\x07\xce\x40\xd8\x55\x93\xf8\x64\x2b\x29\x65\x24\x24\xa8\x5a\xeb\xdc\xcd\xd8\xbe\xba\x9f\xbf\xe6\xb1\x41\x4c\xd3\x16\x45\x52\xe7\xe4\x9b\xb9\x30\x01\x99\x90\xda\xc4\x75\x1a\x65\xbe\x85\x3b\x95\x3b\x88\xec\xca\xc9\x2c\x88\x9c\x4d\x95\x11\x6e\x94\x62\x84\x80\xba\xab\x01\xa6\xcd\x99\x13\x53\xcc\xbc\x8e\x78\x15\x30\x38\xf4\x5d\x9d\x2d\xc2\xc6\xfb\x96\xe3\x7d\x9b\xdb\x69\xbe\x94\x8f\x12\x57\x93\x71\xa4\x39\x69\xe9\x42\xca\x69\x38\x72\x96\xcf\x78\x15\x26\xb7\xef\x42\x2f\x4c\x9b\xc6\x44\x82\x72\x37\xa0\x3b\x2a\x60\xba\xaf\xf7\x70\x3e\xe3\x39\x56\xdc\x66\x9b\x1c\x04\xc7\x21\xbf\x68\xf3\x43\xc8\x0b\x61\xf3\x5c\xa1\xb1\x95\x59\x96\x5f\xd7\x02\x6a\x1c\xec\x9b\xd9\xd9\x2f\x14\x50\xec\xba\xf4\x2d\xe1\x20\x42\xbd\x63\x0d\x34\x45\x70\x6c\x56\x77\x50\x71\xde\xae\x54\xf2\xc5\x31\xbc\x8c\x0b\xe2\x26\x8a\x13\xf1\x2a\xf5\x88\x05\x7f\x3e\xbd\x3e\xd1\x7f\xa0\x9a\x1a\x06\x07\x1e\xc1\x3e\x7e\x76\x38\xb1\x5a\x8e\x0c\x55\x52\x4a\x90\xc2\xd7\xc7\x9c\x1b\x2f\x42\x7f\xff\xaf\xfa\x26\x39\x0f\x1d\x6c\xd4\xab\xf2\x16\x96\x04\xb2\xe7\x79\xa7\x34\xe0\x6b\x15\xd0\x3e\xd9\x40\xbb\xc0\x2e\xd1\x20\x3f\x55\xdd\x3f\xd2\x95\x76\x08\x39\x8f\xc7\x26\x59\x61\xdd\xa2\x8d\x62\x6a\x8e\xa5\xed\xee\x28\xa3\x72\x10\xc8\xc7\x32\x16\x11\xe5\x2b\x4e\x54\x1c\x90\xe0\x72\x1e\xda\x0d\xe5\xf3\x0c\xf3\x88\x5e\xda\x30\xd6\xec\xe4\x62\x63\x80\x9a\xa1\xe5\xfe\x88\xb9\x31\x06\xf1\xe7\x43\x7f\xae\xfc\xce\x95\x1b\x19\x7a\xa5\xb1\xf2\x78\x0a\xa4\x37\xcf\x6a\x1f\x9c\x06\x9f\xe8\x2d\x18\xc5\x7c\xa9\xa7\x05\xcf\x52\x02\xbb\xd1\xaf\xc4\x1e\x1d\x28\x9a\x46\xa4\x34\xcf\xd1\x6b\xb7\xce\x6e\xe7\x64\xd5\xf0\xe6\xc8\x1e\x84\x86\xec\xa1\x16\x90\x2a\xba\xd6\xb9\x8d\xf3\x89\xea\xef\x81\x56\xb8\xb5\x63\x25\x35\x8e\x01\xf3\xec\x30\xd0\x50\xd9\x22\x6e\xcf\xb0\xa1\xd7\xe2\xca\xe6\xb5\xca\x67\x38\xc8\xcd\xeb\xa6\xbc\x11\x83\x27\xd6\x82\xf8\xb5\x95\x7c\x55\x61\x7f\xea\xc8\x11\xab\x2a\xb6\xee\x3a\xee\x63\x63\x94\x29\xf9\x97\x9d\xb5\x28\x5c\x33\x0d\xa8\xa9\xf6\xa3\x06\xb6\x9c\xec\xfb\x2b\xe3\xc6\x40\xf0\x43\x31\xff\xf3\x78\x9a\x47\x44\x5c\x51\x25\xfb\x99\xe9\x96\xf4\x01\xb3\x19\xbf\xce\x5b\x08\x93\x6d\xb9\xc6\xf8\x28\xc6\x82\xbb\xe6\x9e\x86\x6a\xc0\xa6\xb2\x04\xe0\x2e\xce\xfd\x61\x14\x2d\x0c\x20\xc1\x99\x55\x62\xbc\x1f\xda\xb5\x82\x29\x61\x89\xa1\xb3\x4b\xdb\x75\x72\x2e\x64\xe7\xd4\xf0\x0b\x8d\x83\xfd\xc2\xf8\xfc\x76\x97\x11\x43\x75\x0a\xcd\x0d\x51\x3b\x81\x29\x8a\x2f\x8c\x72\x25\x2c\xce\xb7\x36\x33\x97\x6f\x52\xfc\x2e\x93\xa1\xef\x80\x6e\xc7\x95\x7c\x66\xee\xac\x4c\x52\xf9\xb5\x84\x58\x03\x90\xc6\xfa\x46\x43\xe0\xca\xd5\x9a\xd3\xf5\x81\x04\xa7\x28\xd9\x3b\xc6\x86\x9a\x6f\x64\x98\x92\xee\xf9\xec\xb3\xee\xbc\xeb\xd3\x48\x54\xf8\xe1\x9d\xb5\xac\x62\xba\x0b\x67\xa7\x40\xbb\x39\xb1\x90\x5e\x8d\x34\x5e\x2f\xf2\x1b\x4e\x25\x97\x4b\xd5\xbc\x7c\x86\x26\x07\xdd\xb6\xac\x10\xce\xcd\xe5\x9c\x1a\x93\x2b\x2f\xb5\xb2\x2c\x67\x34\x57\xbd\x4a\x39\x6e\x36\x67\xf4\x22\x7a\x27\x6f\xa1\xa1\xb2\x0f\xb6\x0f\xf5\x84\x1a\xf6\x4e\x98\x1f\x6c\x84\xbe\x84\xad\x1b\xb1\x0d\x94\x1d\x61\x56\x29\x65\x4e\x1d\x12\x8c\x9a\x37\x7a\xd6\x0b\x04\xc3\xcf\x2a\xad\x71\x18\x62\x6e\xaa\xe0\xb4\x06\x8d\xd6\x23\xe1\xa2\xd9\x8b\x95\x52\x4f\x9d\xb1\x60\x49\xec\xff\xd5\xc8\xfe\xe7\xe1\xbb\xa7\x47\xa1\xee\x9e\xc5\xf6\x7a\xee\x0b\x69\x95\x1d\xfa\x0b\x58\x7c\x34\xbe\xb3\x6b\xe3\xc1\x6c\x3a\xb0\x24\xeb\x27\x1f\x37\x16\x49\x9e\xd5\xa1\x79\x5e\xac\x34\x23\xc3\x7b\x8f\xa9\xd2\x0d\x1a\xf4\xe9\x67\x16\x42\x63\xfc\x60\xe0\xcd\x8e\x84\xcf\xc3\x12\xb3\x41\x85\xf4\x0a\x7d\x07\x77\x74\x91\x47\xf6\x04\x38\x65\x3b\xc3\xd3\x6a\x1d\xad\x3e\xa4\x33\x68\x44\x64\xe0\xc9\xc1\x2a\x88\xc4\x4d\x86\x2e\x02\x29\x92\xcb\x4b\xfa\x60\x3d\x1f\x8d\x21\xa0\xa5\xbd\x6c\x62\xfc\x3e\x84\x27\xf1\x96\x50\x7d\xae\xd7\x4f\x62\xa1\x7b\xa9\x78\x1a\x47\x40\xcf\x7f\x9c\x5d\xf1\x23\x62\xde\xd5\xaa\xa8\x35\xc1\x94\x3c\x3d\x93\x24\x1e\x9c\x31\x2b\xff\x72\x32\xe6\xe9\x23\x21\x40\x0d\xda\xcb\x84\xb8\x4b\x1c\x41\x20\x57\x5c\x5d\x02\x46\xd7\x8a\xd3\xe9\xfd\x4a\xcb\xbb\x51\x15\x94\x4d\x1c\x39\xf3\xe0\x74\x05\xba\xf7\xdd\x4b\xd6\x33\xc0\xbf\xdb\xaa\xfd\xb4\x29\x54\xeb\x62\x06\x66\x8d\x53\xe9\x94\x75\x94\xe4\xd0\x91\x1b\x09\x03\x6c\xba\x8f\x09\xf4\xcc\x19\x8d\xc0\x64\xc6\x8d\x5a\x7b\x84\x8d\xd2\xa6\xa6\x64\x61\x96\x11\x84\x57\x67\xf9\x92\xb1\x52\x7a\x62\x77\x1d\x36\x52\x7c\xc8\x81\xb5\xcc\xc0\x6f\xbb\xf8\x64\xe2\x7d\xca\x99\xa4\x33\x42\x4b\xdb\x6e\xf6\x31\xa7\xc8\x24\xc2\x46\xb7\x22\x22\x16\x00\x0d\xba\x03\xd7\x66\x4c\x48\x5a\x2c\xdf\xc0\x40\x42\xdb\x57\x16\x4a\xa7\x60\x07\x8a\xbb\x80\xed\x03\x0c\x0e\x6c\x83\xae\x5b\x9f\xb4\x22\x5c\x7a\xb7\x24\x79\xd1\x76\x2c\x73\x0f\xe1\xfd\x9d\xea\xc1\x3d\x6c\xba\x0d\x78\xc0\x1e\x03\xc1\x2d\x94\x10\xcf\xb1\x1e\xd2\x01\x66\xa5\x78\x0d\xd5\xe2\xeb\x22\x1a\xaf\x42\x4e\xdd\xde\x14\xf4\xac\x83\x02\xf1\x6b\x69\x97\x13\xd3\x22\x54\x36\xed\x49\x12\xaa\xef\x58\x49\x79\x24\x6f\x60\xa5\x16\x85\x77\x85\x6b\x82\xc2\xf8\x09\xcc\xea\x64\x48\x8f\xad\x8d\xe0\xdc\xcc\x30\xe7\x39\x6c\x27\xc6\x0d\x1d\xa0\xf2\x94\xef\x98\xd5\x96\x70\x74\x39\xc3\x5e\x24\x88\x49\x12\x17\x88\x64\x37\x26\x32\x9c\x1a\xcd\x0b\xd7\x91\x25\x24\x07\x82\xd8\xaf\x03\xb2\xb5\xcc\xe2\xd9\x60\xb8\xa9\xb3\xc8\x1e\x1f\x88\xb9\xa0\x78\x60\xa9\x16\xe4\x60\x53\x09\x46\x22\xc6\x05\x7a\xf2\x03\xc8\x42\xff\x84\x37\x57\x29\x03\x06\x65\xc5\x70\x52\x40\x94\x9e\x1b\x72\x9d\x29\x49\x6a\x29\xed\x39\xd2\x93\x17\x48\x3e\xec\x8c\xbf\xb7\xdc\xea\xc0\xb0\xca\x6c\x3f\xb0\x7a\xeb\x6a\x23\x68\xdc\x76\x7e\xb0\x7d\x7e\xd9\xcc\x62\xb9\x10\xb8\x01\xd0\x89\x89\xa8\x3f\x3b\xe5\x86\x18\x70\x1c\x71\x3f\x29\x8c\xa7\xf1\x7e\xae\x72\x51\x0b\x29\x56\x8c\x31\x59\xa4\x4a\x01\xf7\xff\xae\xed\xde\xae\x9d\x22\xc6\x8e\xa2\x61\xbc\x20\x60\xbc\xe8\xa1\x21\x31\x42\xb6\x0b\x5a\x8d\x1e\x73\x14\xfe\x7f\xc3\x93\x64\xb0\x49\xd5\x4f\x2a\x73\xcc\x77\x80\xf6\xec\x47\x7c\xb2\x73\x8a\x0c\xb2\x8a\x91\x9f\x2c\x0c\xf9\x35\xc1\xef\x51\xbb\xac\x89\x13\x38\xb7\x28\x13\xac\xc3\x79\x84\x8b\xfc\x3b\x39\x96\x9a\xea\xa9\xf2\x78\x7d\xdd\x18\x3c\x37\x22\xa1\x2b\x0b\x90\xf4\x8c\xe2\xf7\x53\x3f\x00\xd1\x22\xc9\x83\x52\x80\xf7\xfd\x8a\x0a\xd4\x1a\xa1\xb0\x8b\xa6\xd7\xdf\xca\x7b\x58\x3c\x1e\x03\x98\x99\x06\x04\x0f\x59\x84\xc6\x69\x9f\x38\x29\x09\xf5\x93\x95\x99\x58\x52\x32\xc9\x27\x76\xa1\xb5\x59\x27\x12\xa4\x2d\x5f\x44\xfc\x21\xa1\x88\x28\x50\x26\x10\x42\xea\x98\x76\x23\x09\xde\xd8\x79\x9d\x90\x9d\x6a\x40\x63\x36\xa5\xf2\x76\xfb\x29\xe9\xa8\x58\x97\x36\xde\xd2\xe9\x7e\xbc\x6f\x82\xb5\xf5\x77\xd0\xa0\x70\x21\xf4\xfc\xd6\x37\x1c\x5e\xd2\x9a\x53\x80\xd9\xdb\xf0\xd0\xca\x34\xb6\x84\x63\x1d\xfb\x50\x1e\x2a\xe2\x43\x87\x74\x32\xda\xd2\x6a\x3c\xd3\xc9\x46\x64\xa2\x95\x46\x1d\x6e\x78\xd0\x57\xef\x89\x84\x2b\xac\x7a\x33\xf6\xa6\x34\xb2\xe3\x74\xff\xac\x86\xae\xe3\x5f\xd8\x00\x08\xab\x98\x09\x83\x05\x54\xd7\x40\x4e\x75\x40\xf1\x1a\x7e\xf2\x73\xdc\x84\x6a\x57\xee\xf2\xb2\x72\x04\xbe\x70\x9c\x3e\xae\xa2\xb3\x05\xdf\x40\x1e\x40\x07\xf7\xf2\x97\x8e\xbd\x37\x19\x0e\x5e\x7c\xbf\x2d\x8e\xe4\x18\xd6\xd9\xfa\x59\xec\xba\x76\x03\xcb\xa8\xd2\xf7\x31\x73\x3f\x42\xe4\x94\x99\xc6\x85\x92\xf8\x7f\xea\x94\x35\x4e\x0c\x06\x6c\x30\xa2\x56\xea\xb3\x64\x95\xb1\x0d\x08\x2e\xde\x4e\x20\x63\x0e\x4d\x79\x91\x41\xcc\x44\x80\x14\x08\xcd\x3b\x28\xa7\x1c\x07\x55\x04\xb3\xac\xc1\xb6\x9d\x72\xec\x61\x52\x75\x78\x1b\xf9\xbb\xdd\x87\xb7\xd4\x09\xcf\x3c\xdd\x18\xe7\xcc\x86\xa1\x64\xdd\xb9\x80\xbf\x1a\xda\xc8\x88\xb7\xba\xb3\xd7\xc9\x68\xa4\x64\x81\x32\x1c\x10\x74\x8b\x79\x45\x03\x03\xe5\xaa\x08\x60\xd6\xfc\xc4\x30\x4e\x80\xd6\x98\x86\x65\x93\xff\x7f\x18\xcd\xd1\xf9\x3d\xf6\x72\xc7\xce\x86\x0b\x19\x2d\x9e\x03\x3d\x8a\xef\x00\xd4\x68\x5c\x41\x65\x54\x73\x03\x84\x8b\x91\xbc\xb2\xa3\x95\x6e\x2d\x17\xe5\x1a\x70\xa6\xe3\x83\xbc\xe7\x1d\x49\xbe\x32\xbd\x46\x1a\xec\x0d\x69\x1c\x88\x49\xe6\xb1\x78\x55\x8e\x47\xb2\x88\x31\x11\x3f\xa4\x48\xe7\xc9\x50\xfe\xe7\x9d\xd5\xd0\x19\x0d\x4c\x11\xd2\x9b\xc2\xe0\x47\x70\x91\x13\x8e\x1d\x38\x36\xf1\xbb\x86\xbe\xa2\xed\xc7\xee\x8e\xbf\xca\x69\x30\x22\x82\x3d\x49\x68\xa0\x67\xb3\x6c\x06\xb0\xca\xa8\xe8\x46\x33\xd8\x1e\xa6\x2e\x54\x8a\x4e\x87\x09\x67\x1f\x0c\x92\x8a\x28\xe5\x24\xaf\x78\xeb\xd0\xa8\x15\xaa\xc9\xf6\xdf\x61\x1d\xf0\x81\xb7\x5f\x55\x27\xf3\xb5\xa0\x4a\x50\x1e\xf0\x2e\x37\xaf\xe7\xae\xb0\x77\xd2\xd7\xaa\xb0\x8c\xcb\xc2\x43\xfe\x69\x39\x5d\x77\xec\x5d\xb8\x4c\x3b\x6c\x5c\x84\x80\xaf\xb3\xb3\xce\x91\xe6\xa4\xdf\xb9\xbb\xeb\x5e\x62\x3d\x1c\xfe\xff\x8b\x53\xb1\xe4\xf0\x33\x7a\x4d\x8d\x5b\x38\x18\x51\x7d\x66\x70\x4b\x57\x56\x37\x5d\xd8\x57\x12\xea\x2a\xe3\xc6\x43\xcb\x56\x4a\x9b\xb8\xc0\x32\xee\x33\x3d\x0e\xcc\xc6\xfa\x01\x70\xb5\xdd\x7a\x78\xad\x50\xd7\x25\x5f\xa1\x13\xdf\xa1\xb2\x03\x17\xb1\xd4\xd5\x08\x96\x7a\x38\x30\x6e\xbe\x34\x23\x23\x31\x98\xd6\xe3\x41\x33\x9e\x90\xd3\xe3\x1b\xae\x9a\x15\x28\xb8\xf1\x00\xae\xc4\x37\xf6\x56\x67\x0c\x2b\xb3\x91\x7b\xf9\xdf\xf0\xfc\x21\x38\xcf\x4d\xe3\x85\x2c\x71\xa0\xc2\x7a\xc0\xe1\xda\x61\xfd\xe7\xdf\xe9\x66\x03\xfb\xbe\x61\xb7\x69\x7f\x46\x76\xb7\x3d\x46\xf1\x0d\x09\x23\x48\xef\xfa\x95\x7b\x9a\xf1\x6a\xef\x7f\xed\x03\x6b\xa7\x40\xea\xdb\x9e\x3e\xe5\x18\x70\x03\x51\xdd\x63\xfd\x54\xa7\x85\x3c\x6a\xae\x18\x0e\x9c\xf7\xe7\x16\x60\x17\x8a\xc8\xa8\x2b\x59\x01\x04\x82\x7d\xaf\x9b\xd1\xef\x07\x8a\xd5\x6c\xd3\x93\xd8\xc3\xd0\xb0\xc0\x42\xd2\x7a\xe4\xb6\xf5\x31\xd0\x2c\x9f\x46\x42\x72\xa7\x14\x26\xd5\x88\x47\x1c\x2a\x61\x59\xb3\x6e\xe7\x6e\x16\x58\x53\x40\xd1\xa1\x83\x1d\xa9\x41\x55\x6a\x84\xeb\x76\x84\x54\x7b\xba\x00\x40\xdc\x41\x98\xe7\x68\xc0\x9e\x38\xa6\x75\x62\x61\x2d\xe6\xef\xf6\x30\xff\x92\xf3\xc8\x85\xcc\x41\xd3\x1f\x54\xb8\x02\xe6\xb3\xb4\x7d\x51\xc3\x87\xd9\xb3\xc2\x0b\x76\x80\xdc\xf0\xce\x71\xaa\xa4\x6b\xfe\xc6\x0e\xab\x7f\x75\x0a\x53\x4c\xdb\x02\xcf\xab\xde\x84\x96\x80\x02\x55\x8a\xd2\x21\x57\xb0\x52\x8d\x13\x55\x8d\x2a\xef\xcf\xc4\x73\x02\xef\x05\x77\x8e\x71\x00\x3c\x19\x64\x5d\x84\xa5\x11\x57\x10\x93\xfd\xf6\x76\x23\xcd\xe3\x6b\xc8\xca\x16\x68\x9b\x77\x88\x84\x1d\x9f\x3e\x0b\xc1\xfd\xe3\xd6\xa7\x2a\x98\xa6\x4a\xa8\xb6\x7b\xf1\x77\x5b\x01\x25\x75\xda\xe0\x15\xb4\xb0\xe3\xa3\xf9\x6d\x86\x2f\x3e\x75\x99\x73\x14\xbb\x7a\xd1\xe0\x0e\xde\x8b\xa5\x31\x60\xea\xee\x9d\x75\xf6\x81\x3b\xa0\xa6\x00\x15\x6e\x01\xc1\xb9\xae\x8c\xfc\xf4\xbf\x39\xfb\xac\xbc\x87\x64\xcc\x56\x56\xbc\x81\x2b\x25\x41\xce\xc7\xd8\x6c\x18\x0f\x5b\xb3\x8a\x12\x44\x27\xc6\x96\x65\x22\xee\xef\x27\xab\x3c\xec\xa1\x25\xd5\xa3\x4c\x83\x23\x19\xeb\x76\xca\x83\x4f\x09\x62\x91\x02\xc8\x30\x4a\x02\xed\xc4\x17\x07\xe7\x94\x92\x7c\x35\xac\x31\xd6\xb6\xc0\x06\xac\xd8\x52\x4d\xc6\x92\x87\x88\x43\xa2\x91\xa5\xd9\xde\xc9\x42\x0a\xa7\xfb\x4d\x2a\x71\x91\xa5\xc2\xe8\x1f\x61\x32\x09\x43\x91\xb9\xed\x0f\x61\xb0\xe4\x4a\x3c\x2c\x96\xfb\x13\x09\x59\x4c\x37\xd1\xa5\xab\x89\x73\x6e\x88\x64\x3a\xdd\x4e\x2b\x8c\x7d\x9a\x33\xed\xa3\xd4\x38\x24\x85\x97\xdd\x2e\x57\x8e\xb9\x37\x87\x4f\x5b\x91\x38\x65\x11\xe9\xf9\x6a\x8c\xdd\x43\x0f\xb5\xcb\x30\x54\x8c\xb6\x43\x80\xa9\x64\x35\x6a\x52\x05\xea\xaa\x18\x8e\x97\xca\xce\xd0\xfc\x67\x8e\x6e\x6b\x55\x08\x61\x4d\xb1\xa9\xaf\x94\x20\x61\x03\x53\x38\xba\x72\x51\xdd\x4c\xd7\x87\xf7\xe5\x46\x5c\x07\x12\x1e\xf8\xf9\x8d\xa1\x51\x18\x6e\xe0\xc7\x27\xde\xf8\xc6\x88\x85\xec\x3a\x74\xa5\xb6\x9e\xfd\xaa\xbc\x97\x46\x53\x51\xb4\x21\x41\x7c\x1b\x79\x14\x7c\x98\x89\xb3\x9e\xaf\x73\x3c\x4e\x6b\x37\x0c\xc4\x68\xcd\xe4\x61\x1e\x77\xee\x9f\x29\xf8\xce\xf4\x57\xb2\xaf\xdc\x83\x2d\x22\xee\x9f\x01\xaf\xa2\x3a\x69\xff\xee\x44\x1a\x8e\x0e\x02\x88\x7e\x00\xe5\x68\x64\xa7\x64\xf1\x2d\xfa\xaa\x48\x1e\x93\x47\x19\x9f\xb4\xdc\xe1\xba\x02\x3d\x0c\xcd\x38\x43\xb3\x0c\xe9\x40\xd3\xdd\x87\x0a\x39\x71\xf5\x79\x8a\x53\xb7\x13\x21\x6e\x1e\xbb\x75\x49\x35\xdd\xf3\x9e\x13\x0b\x4b\xbd\xfe\xda\xe2\x4b\xbf\xb9\x43\xcd\x3d\x32\xfc\x67\x11\x96\x7c\xf7\x25\x03\xba\x04\xd4\x8b\x68\xf4\x18\xa5\x15\x1b\x68\xcc\xdd\x3d\x85\xb0\x6d\x72\x0c\x5a\xec\xc7\xb3\xd4\xc8\x3c\xd3\x21\x4b\x64\x83\xdf\xbd\x6b\xd5\x71\xc1\x7e\x79\x79\xf0\x1b\xc8\xa5\xdc\xe3\x34\xf1\x88\x8f\x37\xd2\xd0\x4c\x7a\xaa\x97\xa3\x32\x52\xa6\x70\xe2\xb1\x1f\x4b\xbc\xb5\xd6\x73\x71\xe9\x02\xab\x26\x25\x3e\x62\x1b\x74\x4a\x7f\x4c\x21\xc0\xee\x68\x22\x2e\x60\x7f\xe1\x29\xa1\x78\x20\x3e\xc5\xcc\x02\x19\x46\x66\xf1\xc6\xe7\xa0\x24\x62\xfa\xb4\xf2\x3b\x8c\xa9\x9e\xfa\x4e\x17\x73\x73\x70\x1f\x33\x55\x3b\x33\x85\xf0\x78\x54\xb0\xae\x76\x95\xbc\x16\x8b\x1b\xbc\xd3\x60\xb7\xaf\x39\xc7\x52\xd3\x2c\x0c\x12\x72\x0e\xac\x81\x81\x1b\x3c\x07\x65\xd4\xd3\x84\x4c\xec\xeb\x84\xa0\x2a\x39\xeb\x83\xff\x9f\xf9\x8c\xfd\xfd\x58\x92\xfe\x1f\x99\x49\xa0\x27\x25\x7d\x1b\x7f\xb4\x9e\x28\xbe\x87\x7b\x89\xb7\xbc\x75\x7e\xdc\x79\x62\xdf\xc2\x0d\x08\x88\xd4\xc4\xc4\xa7\x03\x8d\x51\x51\xd7\x3c\x3e\xdd\xb3\xce\x4e\xb1\xb4\xcd\xa2\xef\x60\xd9\x7c\xca\x72\x6d\xa2\x36\x11\xb8\x83\x6a\x77\x2b\xa0\xe7\x9a\x8b\x04\xa5\xcc\x0b\x2b\x1a\xa6\x70\x89\xed\x27\x72\x86\x50\xa9\xef\x2b\x21\x23\x12\x4d\x82\x1d\x1c\xfa\xa7\x07\x87\xf7\xa5\x53\x6a\xe2\x28\x65\x24\xcb\x5d\xdf\x06\xb6\xfb\x6f\x60\xd0\x71\xf4\xaf\x47\x67\x44\x71\x7f\x53\x22\x1b\x44\xe6\x6a\x44\x28\xbe\x87\x10\x01\x02\x33\xbe\x5a\x4a\xb5\xc1\xfd\x33\x92\x37\x33\x20\xfb\xbe\x0c\x4f\x5a\x8b\x52\xb4\xd8\x7a\x25\x43\xd8\x38\xcc\x17\x86\x57\xbc\x26\x2e\x42\x21\x38\x47\xbb\x67\xab\x1c\x24\xf7\xaa\x33\x5d\xf1\x86\x68\x3e\xcd\x0c\xb5\x1f\x12\x54\x2b\x69\xa1\x3b\x3d\xcc\xfd\xcf\xf4\x3f\x2f\xdd\x9a\x82\x03\x4d\xcc\xc5\x0e\xb0\xe4\x47\x82\x00\x50\xb3\x2e\xe8\x20\x6b\x88\x12\xa6\xbb\xd5\x5a\x12\xac\xff\x0f\x1b\x76\xc5\xd5\x61\xf7\x82\x7d\x09\xc4\xba\x62\x9b\x77\x67\x7b\x70\xf9\x32\x2b\xca\xd0\x28\xc6\xd8\x26\xbd\x07\x5f\x3c\x62\xed\x02\xc0\xe2\x68\x45\xfc\x00\x9f\x1c\xf5\x51\x1f\x9f\x70\xb2\xb8\x81\xee\x4c\x5b\x13\x45\x3d\x24\x14\xf9\xfc\x21\x3f\x56\xb9\x1f\x3a\x73\xc0\xb5\x30\x77\x2f\x4a\x05\xf0\x3d\xd8\x23\x9c\x16\x05\xef\x87\xaf\x7b\x2c\x1e\x06\x5b\x76\x1d\x9b\x87\x51\x7e\x51\x6a\x6a\x9b\x65\x71\x2a\x69\x6b\x32\x46\xfa\x58\xc2\xd5\x3a\x8c\xb3\x47\x06\x75\x2b\x08\xeb\x8b\x18\xfb\x2a\xfa\x05\x51\x8e\x57\x8f\xc8\x87\x04\x7b\x7c\xc8\x65\x19\x3a\x4e\xa0\x96\x59\x2f\x4b\x9c\x2b\xa3\x30\x99\x96\x22\xb9\xc2\xe4\xb0\x33\xad\xf9\xfe\xe8\xb9\x5d\xbe\xfb\xd3\x0a\x35\x3c\xb2\x05\x25\xb9\x72\xf4\x65\x04\xa0\x15\x3e\x0a\x17\x49\x90\xa4\x48\xf3\x4c\x7a\x01\x5e\x2e\xba\x73\x61\xf0\x08\x49\xd9\xdc\x35\x2a\x17\x64\xa0\xc0\x2f\x2b\x6d\xd7\x8f\xfa\x20\x5e\xbd\xf8\x29\xda\xb8\x76\x11\xbf\x5e\x08\x25\x2d\x59\x8a\x89\x32\x90\x95\xdd\x7e\x29\x9c\x2b\x20\xb4\xb7\xbd\x19\x98\x99\x1b\x12\x11\x8b\x0a\x93\x84\x9f\x95\x5b\x2b\x8e\xdf\x25\x33\xa3\x59\x9f\xcb\xd2\x8b\xd3\xcf\x5c\x92\x48\xcb\xfc\xaf\xab\x35\x40\xb4\x28\xf0\xd5\x42\x01\xca\x2a\x84\xa8\xca\xbd\xa5\xc8\xfa\x51\x22\xd3\xa4", 4096); *(uint64_t*)0x20012448 = 0x20012340; *(uint32_t*)0x20012340 = r[2]; *(uint32_t*)0x20012344 = r[2]; *(uint64_t*)0x20012450 = 0x20012380; *(uint64_t*)0x20012458 = 0x20012400; *(uint32_t*)0x20012460 = 0x1000; *(uint32_t*)0x20012464 = 2; *(uint32_t*)0x20012468 = 0x51; *(uint32_t*)0x2001246c = 5; res = -1; res = ((intptr_t(*)(intptr_t,intptr_t,intptr_t,intptr_t,intptr_t,intptr_t))CAST(zx_channel_call))(/*handle=*/r[2], /*options=*/0, /*deadline=*/r[0], /*args=*/0x20012440, /*actual_bytes=*/0x20012480, /*actual_handles=*/0x200124c0); if (res == ZX_OK) { r[3] = *(uint32_t*)0x2001240c; r[4] = *(uint32_t*)0x20012410; } break; case 7: ((intptr_t(*)(intptr_t,intptr_t,intptr_t,intptr_t,intptr_t,intptr_t,intptr_t,intptr_t))CAST(zx_channel_read))(/*handle=*/r[3], /*options=*/0, /*bytes=*/0x20012500, /*num_bytes=*/0x10000, /*handles=*/0x20022500, /*num_handles=*/0, /*actual_bytes=*/0x20022540, /*actual_handles=*/0x20022580); break; case 8: res = -1; res = ((intptr_t(*)(intptr_t,intptr_t,intptr_t,intptr_t,intptr_t,intptr_t))CAST(zx_pager_create_vmo))(/*pager=*/r[4], /*options=*/0, /*port=*/r[4], /*key=*/0x3eb + procid*16, /*size=*/0x7fb, /*out=*/0x200225c0); if (res == ZX_OK) r[5] = *(uint32_t*)0x200225c0; break; case 9: ((intptr_t(*)(intptr_t,intptr_t,intptr_t,intptr_t))CAST(zx_stream_seek))(/*handle=*/r[5], /*whence=*/0, /*offset=*/0x401, /*out_seek=*/0x20022600); break; case 10: memcpy((void*)0x20000000, "\xc4\xa1\x49\xc2\xda\x0b\x0f\x18\xd2\x3e\x26\xf3\x36\x67\xdb\xe2\xc4\xc1\xd1\x16\x3b\xc4\xc1\xb4\xc6\x85\x0a\x00\x00\x00\x00\xf3\x40\xac\x85\x2f\x47\x0f\xf2\x4a\x00\x44\x79\xa5\x26\xf2\xad", 47); syz_execute_func(/*text=*/0x20000000); break; case 11: syz_future_time(/*when=*/1); break; case 12: syz_job_default(); break; case 13: syz_mmap(/*addr=*/0x20ffb000, /*len=*/0x4000); break; case 14: syz_process_self(); break; case 15: syz_thread_self(); break; case 16: syz_vmar_root_self(); break; } } int main(void) { syz_mmap(/*addr=*/0x20000000, /*len=*/0x1000000); setup_fault(); for (procid = 0; procid < 2; procid++) { if (fork() == 0) { use_temporary_dir(); do_sandbox_none(); } } sleep(1000000); return 0; } :271:66: error: use of undeclared identifier 'zx_system_get_performance_info' ((intptr_t(*)(intptr_t,intptr_t,intptr_t,intptr_t,intptr_t))CAST(zx_system_get_performance_info))(/*res=*/0, /*topic=*/0, /*count=*/4, /*info=*/0x20000000, /*output_count=*/0x20000040); ^ 1 error generated. compiler invocation: /syzkaller/shared/fuchsia/prebuilt/third_party/clang/linux-x64/bin/clang [-o /tmp/syz-executor2484170612 -DGOOS_fuchsia=1 -DGOARCH_amd64=1 -DHOSTGOOS_linux=1 -x c - -Wno-deprecated -target x86_64-fuchsia -ldriver -lfdio -lzircon --sysroot /syzkaller/shared/fuchsia/out/x64/zircon_toolchain/obj/zircon/public/sysroot/sysroot -I /syzkaller/shared/fuchsia/sdk/lib/fdio/include -I /syzkaller/shared/fuchsia/zircon/system/ulib/fidl/include -I /syzkaller/shared/fuchsia/src/lib/ddk/include -I /syzkaller/shared/fuchsia/out/x64/fidling/gen/sdk/fidl/fuchsia.device -I /syzkaller/shared/fuchsia/out/x64/fidling/gen/sdk/fidl/fuchsia.device.manager -I /syzkaller/shared/fuchsia/out/x64/fidling/gen/sdk/fidl/fuchsia.hardware.nand -I /syzkaller/shared/fuchsia/out/x64/fidling/gen/sdk/fidl/fuchsia.hardware.power.statecontrol -I /syzkaller/shared/fuchsia/out/x64/fidling/gen/sdk/fidl/fuchsia.hardware.usb.peripheral -I /syzkaller/shared/fuchsia/out/x64/fidling/gen/zircon/vdso/zx -L /syzkaller/shared/fuchsia/out/x64/x64-shared -O2 -pthread -Wall -Werror -Wparentheses -Wunused-const-variable -Wframe-larger-than=16384 -Wno-array-bounds -Wno-unused-command-line-argument] --- FAIL: TestGenerate/fuchsia/amd64/13 (0.64s) csource_test.go:150: opts: {Threaded:true Repeat:true RepeatTimes:0 Procs:0 Slowdown:1 Sandbox:none SandboxArg:0 Leak:false NetInjection:false NetDevices:false NetReset:false Cgroups:false BinfmtMisc:false CloseFDs:false KCSAN:false DevlinkPCI:false NicVF:false USB:false VhciInjection:false Wifi:false IEEE802154:false Sysctl:false Swap:false UseTmpDir:true HandleSegv:false Repro:false Trace:true LegacyOptions:{Collide:false Fault:false FaultCall:0 FaultNth:0}} program: zx_system_get_performance_info(0x0, 0x0, 0x4, &(0x7f0000000000)=""/1, &(0x7f0000000040)) (fail_nth: 1) r0 = syz_future_time(0x1) (async) zx_channel_call$fuchsia_io_FileSeek(0x0, 0x0, r0, &(0x7f0000010140)={&(0x7f0000000080)={{}, 0xffffffffffffffff, 0x2}, &(0x7f00000000c0), &(0x7f0000000100), &(0x7f0000010100), 0x1c, 0x0, 0x10000}, &(0x7f0000010180), &(0x7f00000101c0)) (rerun: 4) zx_process_create(0x0, &(0x7f0000010200)='\x00', 0x1, 0x0, &(0x7f0000010240)=0x0, &(0x7f0000010280)) zx_object_get_child(0x0, 0x0, 0x800, &(0x7f00000102c0)=0x0) zx_process_start(r1, r2, &(0x7f0000010300)="c4817d290e8051bf0065673666450ff7fdc401a1c40009c482f935f1c441fc52d0660fc5f398c4837909c6b1664b0f6ee5f341d8cd", &(0x7f0000010340)=""/4096, 0x0, 0x0) zx_channel_call(r2, 0x0, r0, &(0x7f0000012440)={&(0x7f0000011340)="68b92e90e81a0a65aba68ac3039007c40663fec316f1d3f030eb37cd0f8d9e056bc93cbf8811c6ec84bd43ee1dbc4eb9f291b1ff6296bf0f229b823cf75021ecdd1d843abece20ab3e287801d8a782d9947b008614b221e17c641ae2b5b0307cc6594759aaddde5b89ead9c032e8754ab98f09b03c802934cf4f75a4b153ae626a37333e7f35d166315311f3953ecf02f615822c58ac205d4da75d434ff36da5052a2f5d6c2a15477eb5536c80ee076e9894e6c63c0bf3d3004ce2107385919fcb771beebd389824689fbd28804b23cd933a3ab8d862c1f3cac7352fe4fccfc22d38777d69ba0fa2c820166ae8d351e116f0ca3dcfe6fc6d38f526411d407d0b2f97d822a054f440b05b7598b66e1848b0f2a8c2718f62c2c503fb28c8820626d9f46300f474feda0c816e43d9ed963447e0cd3d473ac3f0633d3d1fe4b43e587c3bfb5d3b9c3fb9472f7593c19a2d573f04796a7655ff5a1c0995834b07b62b79511946216d6c418af8ec0845782f112dfe0b7e4b6b0fb3604b4b2df31177a7c1976de255179553bff2544aa557a454b2657c5b3f0f71cff83c0b92d302d2201b7db36e9d8677dfad29ac432c25ea3b123db4f9240e9202c219a6479f05322aeb7da49f198893bdbfa0bf19a815e63aab70d4bcf3cb8b38f9ee914b43ee33e006d827919ce084d84257cb139979bb144e19cc8745478ea0ffde10d3cf590386497b43f4bc2725ec2d0df94f1a534a1ee8c429400e1078cc58a7bd8d1ded2cf4966766f21b4c07ce40d85593f8642b29652424a85aebdccdd8beba9fbfe6b1414cd3164552e7e49bb930019990dac4751a65be853b953b88eccac92c889c4d95116e94628480baab01a6cd991353ccbc8e78153038f45d9d2dc2c6fb96e37d9bdb69be948f12579371a43969e942ca69387296cf781526b7ef422f4c9bc644827237a03b2a60baaff7703ee33956dc669b1c04c721bf68f343c80b61f35ca1b19559965fd7026a1cec9bd9d92f1450ecbaf42de12042bd630d3445706c56775071deae54f2c531bc8c0be2268a13f12af588057f3ebd3ed17fa09a1a06071ec13e7e7638b15a8e0c55524a90c2d7c79c1b2f427fffaffa26390f1d6cd4abf2169604b2e779a734e06b15d03ed940bbc02ed1203f55dd3fd2957608398fc7265961dda28d626a8ea5edee28a37210c8c7321611e52b4e541c90e0721eda0de5f30cf3885eda30d6ece46263809aa1e5fe88b93106f1e7437faefcce951b197aa5b1f2780aa437cf6a1f9c069fe82d18c57ca9a705cf5202bbd1afc41e1d289a46a434cfd16bb7ce6ee764d5f0e6c81e8486eca116902abad6b98df389eaef8156b8b56325358e01f3ec30d050d9226ecfb0a1d7e2cae6b5ca6738c8cdeba6bc118327d682f8b5957c55617feac811ab2ab6ee3aee63639429f9979db5285c330da8a9f6a306b69cecfb2be3c640f04331fff3789a47445c5125fb99e996f401b319bfce5b08936db9c6f828c682bbe69e866ac0a6b204e02ecefd61142d0c20c1995562bc1fdab582296189a1b34bdb75722e64e7d4f00b8d83fdc2f8fc76971143750acd0d513b81298a2f8c72252cceb73633976f52fc2e93a1ef806ec7957c66eeac4c52f9b584580390c6fa4643e0cad59ad3f58104a728d93bc6869a6f649892eef9ecb3eebcebd34854f8e19db5ac62ba0b67a740bb39b1905e8d345e2ff21b4e25974bd5bc7c862607ddb6ac10cecde59c1a932b2fb5b22c673457bd4a396e3667f4227a276fa1a1b20fb60ff5841af64e981f6c84be84ad1bb10d941d615629654e1d128c9a377ad60b04c3cf2aad7118626eaae0b4068dd623e1a2d98b95524f9db16049ecffd5c8fee7e1bba747a1ee9ec5f67aee0b69951dfa0b587c34beb36be3c16c3ab024eb271f3716499ed5a1795eac3423c37b8fa9d20d1af4e967164263fc60e0cd8e84cfc312b34185f40a7d0777749147f60438653bc3d36a1dad3ea433684464e0c9c12a88c44d862e022992cb4bfa603d1f8d21a0a5bd6c62fc3e8427f196507daed74f62a17ba9781a4740cf7f9c5df12362ded5aaa835c1943c3d93241e9c312bff7232e6e92321400ddacb84b84b1c4120575c5d0246d78ad3e9fd4acbbb5115944d1c39f3e07405baf7dd4bd633c0bfdbaafdb42954eb6206668d53e9947594e4d0911b09036cba8f09f4cc198dc064c68d5a7b848dd2a6a664619611845767f992b1527a62771d36527cc881b5ccc06fbbf864e27dca99a433424bdb6ef631a7c824c246b7222216000dba03d7664c485a2cdfc04042db57164aa760078abb80ed030c0e6c83ae5b9fb4225c7ab72479d1762c730fe1fd9deac13d6cba0d78c01e03c12d9410cfb11ed20166a5780dd5e2eb221aaf424eddde14f4ac8302f16b699713d3225436ed4912aaef584979246f60a5168577856b82c2f809ccea64488fad8de0dccc30e7396c27c60d1da0f294ef98d596707439c35e248849121788643726329c1acd0bd79125240782d8af03b2b5cce2d960b8a9b3c81e1f88b9a07860a916e46053094622c6057af203c842ff84375729030665c5705240949e1b729d29496a29ed39d29317483eec8cbfb7dceac0b0ca6c3fb07aeb6a2368dc767eb07d7ed9cc62b910b801d08989a83f3be58618701c713f298ca7f17eae72510b29568c3159a44a01f7ffaeeddeae9d22c68ea261bc2060bce8a1213142b60b5a8d1e7314fe7fc39364b049d54f2a73cc7780f6ec477cb2738a0cb28a919f2c0cf935c1ef51bbac891338b72813acc379848bfc3b39969aeaa9f2787ddd183c3722a12b0b90f48ce2f7533f00d122c9835280f7fd8a0ad41aa1b08ba6d7dfca7b583c1e03989906040f5984c6699f382909f5939599585232c92776a1b5592712a42d5f44fc21a1882850261042ea98762309ded8799d909d6a406336a5f276fb29e9a8589736ded2e97ebc6f82b5f577d0a07021f4fcd6371c5ed29a5380d9dbf0d0ca34b684631dfb501e2ae243877432dad26a3cd3c94664a295461d6e78d057ef89842bac7a33f6a634b2e374ffac86aee35fd80008ab9809830554d7404e7540f11a7ef273dc846a57eef2b27204be709c3eaea2b305df401e4007f7f2978ebd37190e5e7cbf2d8ee418d6d9fa59ecba7603cba8d2f731733f42e49499c68592f87fea94354e0c066c30a256eab36495b10d082ede4e20630e4d799141cc44801408cd3b28a71c075504b3acc1b69d72ec615275781bf9bbdd87b7d409cf3cdd18e7cc86a164ddb980bf1adac888b7bab3d7c968a46481321c10748b79450303e5aa0860d6fcc4304e80d698866593ff7f18cdd1f93df672c7ce860b192d9e033d8aef00d4685c4165547303848b91bcb2a3956e2d17e51a70a6e383bce71d49be32bd461aec0d691c8849e6b178558e47b28831113fa448e7c950fee79dd5d0190d4c11d29bc2e0477091138e1d3836f1bb86bea2edc7ee8ebfca693022823d4968a067b36c06b0caa8e84633d81ea62e548a4e8709671f0c928a28e524af78ebd0a815aac9f6df611df081b75f5527f3b5a04a501ef02e37afe7aeb077d2d7aab08ccbc243fe69395d77ec5db84c3b6c5c8480afb3b3ce91e6a4dfb9bbeb5e623d1cfeff8b53b1e4f0337a4d8d5b3818517d66704b5756375dd85712ea2ae3c643cb564a9bb8c032ee333d0eccc6fa0170b5dd7a78ad50d7255fa113dfa1b20317b1d4d508967a38306ebe3423233198d6e341339e90d3e31bae9a1528b8f100aec437f656670c2bb3917bf9dff0fc2138cf4de3852c71a0c27ac0e1da61fde7dfe96603fbbe61b7697f4676b73d46f10d092348effa957b9af16aef7fed036ba740eadb9e3ee518700351dd63fd54a7853c6aae180e9cf7e71660178ac8a82b590104827daf9bd1ef078ad56cd393d8c3d0b0c042d27ae4b6f531d02c9f464272a71426d588471c2a6159b36ee76e16585340d1a1831da941556a84eb7684547bba0040dc4198e768c09e38a67562612de6eff630ff92f3c885cc41d31f54b802e6b3b47d51c387d9b3c20b7680dcf0ce71aaa46bfec60eab7f750a534cdb02cfabde84968002558ad22157b0528d13558d2aefcfc47302ef05778e71003c19645d84a511571093fdf67623cde36bc8ca16689b7788841d9f3e0bc1fde3d6a72a98a64aa8b67bf1775b012575dae015b4b0e3a3f96d862f3e75997314bb7ad1e00ede8ba53160eaee9d75f6813ba0a600156e01c1b9ae8cfcf4bf39fbacbc8764cc5656bc812b2541cec7d86c180f5bb38a124427c6966522eeef27ab3ceca125d5a34c832319eb76ca834f09629102c8304a02edc41707e794927c35ac31d6b6c006acd8524dc692878843a291a5d9dec9420aa7fb4d2a7191a5c2e81f6132094391b9ed0f61b0e44a3c2c96fb1309594c37d1a5ab89736e88643add4e2b8c7d9a33eda3d438248597dd2e578eb937874f5b91386511e9f96a8cdd430fb5cb30548cb64380a964356a5205eaaa188e97caced0fc678e6e6b5508614db1a9af942061035338ba7251dd4cd787f7e5465c07121ef8f98da151186ee0c727def8c68885ec3a74a5b69efdaabc97465351b421417c1b79147c9889b39eaf733c4e6b370cc468cde4611e77ee9f29f8cef457b2afdc832d22ee9f01afa23a69ffee441a8e0e02887e00e56864a764f12dfaaa481e9347199fb4dce1ba023d0ccd3843b30ce940d3dd870a3971f5798a53b713216e1ebb754935ddf39e130b4bbdfedae24bbfb943cd3d32fc6711967cf72503ba04d48b68f418a5151b68ccdd3d85b06d720c5aecc7b3d4c83cd3214b6483dfbd6bd571c17e7979f01bc8a5dce334f1888f37d2d04c7aaa97a33252a670e2b11f4bbcb5d67371e902ab26253e621b744a7f4c21c0ee68222e607fe129a178203ec5cc02194666f1c6e7a02462fab4f23b8ca99efa4e177373701f33553b3385f07854b0ae7695bc168b1bbcd360b7af39c752d32c0c12720eac81811b3c0765d4d3844ceceb84a02a39eb83ff9ff98cfdfd5892fe1f9949a027257d1b7fb49e28be877b89b7bc757edc7962dfc20d0888d4c4c4a7038d5151d73c3eddb3ce4eb1b4cda2ef60d97cca726da23611b8836a772ba0e79a8b04a5cc0b2b1aa67089ed27728650a9ef2b2123124d821d1cfaa70787f7a5536ae2286524cb5ddf06b6fb6f60d071f4af476744717f53221b44e66a4428be8710010233be5a4ab5c1fd3392373320fbbe0c4f5a8b52b4d87a2543d838cc178657bc262e42213847bb67ab1c24f7aa335df186683ecd0cb51f12542b69a13b3dccfdcff43f2fdd9a82034dccc50eb0e447820050b32ee8206b8812a6bbd55a12acff0f1b76c5d561f7827d09c4ba629b77677b70f9322bcad028c6d826bd075f3c62ed02c0e26845fc009f1cf5511f9f70b2b881ee4c5b13453d2414f9fc213f56b91f3a73c0b530772f4a05f03dd8239c1605ef87af7b2c1e065b761d9b87517e516a6a9b65712a696b3246fa58c2d53a8cb34706752b08eb8b18fb2afa05518e578fc887047b7cc865193a4ea096592f4b9c2ba330999622b9c2e4b033adf9fee8b95dbefbd30a353cb20525b972f46504a0153e0a174990a448f34c7a015e2eba7361f00849d9dc352a1764a0c02f2b6dd78ffa205ebdf829dab87611bf5e08252d598a89329095dd7e299c2b20b4b7bd1998991b12118b0a93849f955b2b8edf2533a3599fcbd28bd3cf5c9248cbfcafab3540b428f0d54201ca2a84a8cabda5c8fa5122d3a4", &(0x7f0000012340)=[r2, r2], &(0x7f0000012380)=""/81, &(0x7f0000012400)=[0x0, 0x0, 0x0, 0x0, 0x0], 0x1000, 0x2, 0x51, 0x5}, &(0x7f0000012480), &(0x7f00000124c0)) zx_channel_read$fuchsia_io_DirectoryAdminOnOpen(r3, 0x0, &(0x7f0000012500), 0x10000, &(0x7f0000022500), 0x0, &(0x7f0000022540), &(0x7f0000022580)) zx_pager_create_vmo(r4, 0x0, r4, 0x3, 0x7fb, &(0x7f00000225c0)=0x0) zx_stream_seek(r5, 0x0, 0x401, &(0x7f0000022600)) syz_execute_func(&(0x7f0000000000)="c4a149c2da0b0f18d23e26f33667dbe2c4c1d1163bc4c1b4c6850a00000000f340ac852f470ff24a004479a526f2ad") syz_future_time(0x1) syz_job_default() syz_mmap(&(0x7f0000ffb000/0x4000)=nil, 0x4000) syz_process_self() syz_thread_self() syz_vmar_root_self() csource_test.go:151: failed to build program: // autogenerated by syzkaller (https://github.com/google/syzkaller) #define _GNU_SOURCE #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include static void sleep_ms(uint64_t ms) { usleep(ms * 1000); } static uint64_t current_time_ms(void) { struct timespec ts; if (clock_gettime(CLOCK_MONOTONIC, &ts)) exit(1); return (uint64_t)ts.tv_sec * 1000 + (uint64_t)ts.tv_nsec / 1000000; } static void use_temporary_dir(void) { char tmpdir_template[] = "/tmp/syzkaller.XXXXXX"; char* tmpdir = mkdtemp(tmpdir_template); if (!tmpdir) exit(1); if (chmod(tmpdir, 0777)) exit(1); if (chdir(tmpdir)) exit(1); } static int inject_fault(int nth) { return 0; } static void setup_fault() { } static void thread_start(void* (*fn)(void*), void* arg) { pthread_t th; pthread_attr_t attr; pthread_attr_init(&attr); pthread_attr_setstacksize(&attr, 128 << 10); int i = 0; for (; i < 100; i++) { if (pthread_create(&th, &attr, fn, arg) == 0) { pthread_attr_destroy(&attr); return; } if (errno == EAGAIN) { usleep(50); continue; } break; } exit(1); } typedef struct { int state; } event_t; static void event_init(event_t* ev) { ev->state = 0; } static void event_reset(event_t* ev) { ev->state = 0; } static void event_set(event_t* ev) { if (ev->state) exit(1); __atomic_store_n(&ev->state, 1, __ATOMIC_RELEASE); } static void event_wait(event_t* ev) { while (!__atomic_load_n(&ev->state, __ATOMIC_ACQUIRE)) usleep(200); } static int event_isset(event_t* ev) { return __atomic_load_n(&ev->state, __ATOMIC_ACQUIRE); } static int event_timedwait(event_t* ev, uint64_t timeout_ms) { uint64_t start = current_time_ms(); for (;;) { if (__atomic_load_n(&ev->state, __ATOMIC_RELAXED)) return 1; if (current_time_ms() - start > timeout_ms) return 0; usleep(200); } } long syz_mmap(size_t addr, size_t size) { zx_handle_t root = zx_vmar_root_self(); zx_info_vmar_t info; zx_status_t status = zx_object_get_info(root, ZX_INFO_VMAR, &info, sizeof(info), 0, 0); if (status != ZX_OK) { return status; } zx_handle_t vmo; status = zx_vmo_create(size, 0, &vmo); if (status != ZX_OK) { return status; } uintptr_t mapped_addr; status = zx_vmar_map(root, ZX_VM_FLAG_SPECIFIC_OVERWRITE | ZX_VM_FLAG_PERM_READ | ZX_VM_FLAG_PERM_WRITE, addr - info.base, vmo, 0, size, &mapped_addr); zx_status_t close_vmo_status = zx_handle_close(vmo); if (close_vmo_status != ZX_OK) { } return status; } static long syz_process_self(void) { return zx_process_self(); } static long syz_thread_self(void) { return zx_thread_self(); } static long syz_vmar_root_self(void) { return zx_vmar_root_self(); } static long syz_job_default(void) { return zx_job_default(); } static long syz_future_time(volatile long when) { zx_time_t delta_ms = 10000; switch (when) { case 0: delta_ms = 5; break; case 1: delta_ms = 30; break; } zx_time_t now = 0; zx_clock_read(ZX_CLOCK_MONOTONIC, &now); return now + delta_ms * 1000 * 1000; } static void loop(); static int do_sandbox_none(void) { loop(); return 0; } #define CAST(f) ({void* p = (void*)f; p; }) static long syz_execute_func(volatile long text) { ((void (*)(void))(text))(); return 0; } struct thread_t { int created, call; event_t ready, done; }; static struct thread_t threads[16]; static void execute_call(int call); static int running; static void* thr(void* arg) { struct thread_t* th = (struct thread_t*)arg; for (;;) { event_wait(&th->ready); event_reset(&th->ready); execute_call(th->call); __atomic_fetch_sub(&running, 1, __ATOMIC_RELAXED); event_set(&th->done); } return 0; } static void execute_one(void) { fprintf(stderr, "### start\n"); int i, call, thread; for (call = 0; call < 17; call++) { for (thread = 0; thread < (int)(sizeof(threads) / sizeof(threads[0])); thread++) { struct thread_t* th = &threads[thread]; if (!th->created) { th->created = 1; event_init(&th->ready); event_init(&th->done); event_set(&th->done); thread_start(thr, th); } if (!event_isset(&th->done)) continue; event_reset(&th->done); th->call = call; __atomic_fetch_add(&running, 1, __ATOMIC_RELAXED); event_set(&th->ready); if (call == 1) break; event_timedwait(&th->done, 50); break; } } for (i = 0; i < 100 && __atomic_load_n(&running, __ATOMIC_RELAXED); i++) sleep_ms(1); } static void execute_one(void); static void loop(void) { execute_one(); } uint64_t r[6] = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0}; void execute_call(int call) { intptr_t res = 0; switch (call) { case 0: inject_fault(1); res = -1; errno = EFAULT; res = ((intptr_t(*)(intptr_t,intptr_t,intptr_t,intptr_t,intptr_t))CAST(zx_system_get_performance_info))(/*res=*/0, /*topic=*/0, /*count=*/4, /*info=*/0x20000000, /*output_count=*/0x20000040); fprintf(stderr, "### call=0 errno=%u\n", (intptr_t)(int)res == -1 ? errno : 0); break; case 1: res = -1; errno = EFAULT; res = syz_future_time(/*when=*/1); fprintf(stderr, "### call=1 errno=%u\n", res == -1 ? errno : 0); if ((int)res != -1) r[0] = res; break; case 2: *(uint64_t*)0x20010140 = 0x20000080; *(uint32_t*)0x20000080 = 0; memset((void*)0x20000084, 0, 3); *(uint8_t*)0x20000087 = 1; *(uint64_t*)0x20000088 = 0x782a774500000000; *(uint64_t*)0x20000090 = -1; *(uint32_t*)0x20000098 = 2; *(uint64_t*)0x20010148 = 0x200000c0; *(uint64_t*)0x20010150 = 0x20000100; *(uint64_t*)0x20010158 = 0x20010100; *(uint32_t*)0x20010160 = 0x1c; *(uint32_t*)0x20010164 = 0; *(uint32_t*)0x20010168 = 0x10000; *(uint32_t*)0x2001016c = 0; res = -1; errno = EFAULT; res = ((intptr_t(*)(intptr_t,intptr_t,intptr_t,intptr_t,intptr_t,intptr_t))CAST(zx_channel_call))(/*handle=*/0, /*options=*/0, /*deadline=*/r[0], /*args=*/0x20010140, /*actual_bytes=*/0x20010180, /*actual_handles=*/0x200101c0); fprintf(stderr, "### call=2 errno=%u\n", (intptr_t)(int)res == -1 ? errno : 0); { int i; for(i = 0; i < 4; i++) { ((intptr_t(*)(intptr_t,intptr_t,intptr_t,intptr_t,intptr_t,intptr_t))CAST(zx_channel_call))(/*handle=*/0, /*options=*/0, /*deadline=*/r[0], /*args=*/0x20010140, /*actual_bytes=*/0x20010180, /*actual_handles=*/0x200101c0); } } break; case 3: memset((void*)0x20010200, 0, 1); res = -1; errno = EFAULT; res = ((intptr_t(*)(intptr_t,intptr_t,intptr_t,intptr_t,intptr_t,intptr_t))CAST(zx_process_create))(/*job=*/0, /*name=*/0x20010200, /*name_len=*/1, /*options=*/0, /*proc_handle=*/0x20010240, /*vmar_handle=*/0x20010280); fprintf(stderr, "### call=3 errno=%u\n", (intptr_t)(int)res == -1 ? errno : 0); if (res == ZX_OK) r[1] = *(uint32_t*)0x20010240; break; case 4: res = -1; errno = EFAULT; res = ((intptr_t(*)(intptr_t,intptr_t,intptr_t,intptr_t))CAST(zx_object_get_child))(/*handle=*/0, /*koid=*/0, /*rights=*/0x800, /*out=*/0x200102c0); fprintf(stderr, "### call=4 errno=%u\n", (intptr_t)(int)res == -1 ? errno : 0); if (res == ZX_OK) r[2] = *(uint32_t*)0x200102c0; break; case 5: memcpy((void*)0x20010300, "\xc4\x81\x7d\x29\x0e\x80\x51\xbf\x00\x65\x67\x36\x66\x45\x0f\xf7\xfd\xc4\x01\xa1\xc4\x00\x09\xc4\x82\xf9\x35\xf1\xc4\x41\xfc\x52\xd0\x66\x0f\xc5\xf3\x98\xc4\x83\x79\x09\xc6\xb1\x66\x4b\x0f\x6e\xe5\xf3\x41\xd8\xcd", 53); res = -1; errno = EFAULT; res = ((intptr_t(*)(intptr_t,intptr_t,intptr_t,intptr_t,intptr_t,intptr_t))CAST(zx_process_start))(/*process=*/r[1], /*thread=*/r[2], /*entry=*/0x20010300, /*stack=*/0x20010340, /*arg1=*/0, /*arg2=*/0); fprintf(stderr, "### call=5 errno=%u\n", (intptr_t)(int)res == -1 ? errno : 0); break; case 6: *(uint64_t*)0x20012440 = 0x20011340; memcpy((void*)0x20011340, "\x68\xb9\x2e\x90\xe8\x1a\x0a\x65\xab\xa6\x8a\xc3\x03\x90\x07\xc4\x06\x63\xfe\xc3\x16\xf1\xd3\xf0\x30\xeb\x37\xcd\x0f\x8d\x9e\x05\x6b\xc9\x3c\xbf\x88\x11\xc6\xec\x84\xbd\x43\xee\x1d\xbc\x4e\xb9\xf2\x91\xb1\xff\x62\x96\xbf\x0f\x22\x9b\x82\x3c\xf7\x50\x21\xec\xdd\x1d\x84\x3a\xbe\xce\x20\xab\x3e\x28\x78\x01\xd8\xa7\x82\xd9\x94\x7b\x00\x86\x14\xb2\x21\xe1\x7c\x64\x1a\xe2\xb5\xb0\x30\x7c\xc6\x59\x47\x59\xaa\xdd\xde\x5b\x89\xea\xd9\xc0\x32\xe8\x75\x4a\xb9\x8f\x09\xb0\x3c\x80\x29\x34\xcf\x4f\x75\xa4\xb1\x53\xae\x62\x6a\x37\x33\x3e\x7f\x35\xd1\x66\x31\x53\x11\xf3\x95\x3e\xcf\x02\xf6\x15\x82\x2c\x58\xac\x20\x5d\x4d\xa7\x5d\x43\x4f\xf3\x6d\xa5\x05\x2a\x2f\x5d\x6c\x2a\x15\x47\x7e\xb5\x53\x6c\x80\xee\x07\x6e\x98\x94\xe6\xc6\x3c\x0b\xf3\xd3\x00\x4c\xe2\x10\x73\x85\x91\x9f\xcb\x77\x1b\xee\xbd\x38\x98\x24\x68\x9f\xbd\x28\x80\x4b\x23\xcd\x93\x3a\x3a\xb8\xd8\x62\xc1\xf3\xca\xc7\x35\x2f\xe4\xfc\xcf\xc2\x2d\x38\x77\x7d\x69\xba\x0f\xa2\xc8\x20\x16\x6a\xe8\xd3\x51\xe1\x16\xf0\xca\x3d\xcf\xe6\xfc\x6d\x38\xf5\x26\x41\x1d\x40\x7d\x0b\x2f\x97\xd8\x22\xa0\x54\xf4\x40\xb0\x5b\x75\x98\xb6\x6e\x18\x48\xb0\xf2\xa8\xc2\x71\x8f\x62\xc2\xc5\x03\xfb\x28\xc8\x82\x06\x26\xd9\xf4\x63\x00\xf4\x74\xfe\xda\x0c\x81\x6e\x43\xd9\xed\x96\x34\x47\xe0\xcd\x3d\x47\x3a\xc3\xf0\x63\x3d\x3d\x1f\xe4\xb4\x3e\x58\x7c\x3b\xfb\x5d\x3b\x9c\x3f\xb9\x47\x2f\x75\x93\xc1\x9a\x2d\x57\x3f\x04\x79\x6a\x76\x55\xff\x5a\x1c\x09\x95\x83\x4b\x07\xb6\x2b\x79\x51\x19\x46\x21\x6d\x6c\x41\x8a\xf8\xec\x08\x45\x78\x2f\x11\x2d\xfe\x0b\x7e\x4b\x6b\x0f\xb3\x60\x4b\x4b\x2d\xf3\x11\x77\xa7\xc1\x97\x6d\xe2\x55\x17\x95\x53\xbf\xf2\x54\x4a\xa5\x57\xa4\x54\xb2\x65\x7c\x5b\x3f\x0f\x71\xcf\xf8\x3c\x0b\x92\xd3\x02\xd2\x20\x1b\x7d\xb3\x6e\x9d\x86\x77\xdf\xad\x29\xac\x43\x2c\x25\xea\x3b\x12\x3d\xb4\xf9\x24\x0e\x92\x02\xc2\x19\xa6\x47\x9f\x05\x32\x2a\xeb\x7d\xa4\x9f\x19\x88\x93\xbd\xbf\xa0\xbf\x19\xa8\x15\xe6\x3a\xab\x70\xd4\xbc\xf3\xcb\x8b\x38\xf9\xee\x91\x4b\x43\xee\x33\xe0\x06\xd8\x27\x91\x9c\xe0\x84\xd8\x42\x57\xcb\x13\x99\x79\xbb\x14\x4e\x19\xcc\x87\x45\x47\x8e\xa0\xff\xde\x10\xd3\xcf\x59\x03\x86\x49\x7b\x43\xf4\xbc\x27\x25\xec\x2d\x0d\xf9\x4f\x1a\x53\x4a\x1e\xe8\xc4\x29\x40\x0e\x10\x78\xcc\x58\xa7\xbd\x8d\x1d\xed\x2c\xf4\x96\x67\x66\xf2\x1b\x4c\x07\xce\x40\xd8\x55\x93\xf8\x64\x2b\x29\x65\x24\x24\xa8\x5a\xeb\xdc\xcd\xd8\xbe\xba\x9f\xbf\xe6\xb1\x41\x4c\xd3\x16\x45\x52\xe7\xe4\x9b\xb9\x30\x01\x99\x90\xda\xc4\x75\x1a\x65\xbe\x85\x3b\x95\x3b\x88\xec\xca\xc9\x2c\x88\x9c\x4d\x95\x11\x6e\x94\x62\x84\x80\xba\xab\x01\xa6\xcd\x99\x13\x53\xcc\xbc\x8e\x78\x15\x30\x38\xf4\x5d\x9d\x2d\xc2\xc6\xfb\x96\xe3\x7d\x9b\xdb\x69\xbe\x94\x8f\x12\x57\x93\x71\xa4\x39\x69\xe9\x42\xca\x69\x38\x72\x96\xcf\x78\x15\x26\xb7\xef\x42\x2f\x4c\x9b\xc6\x44\x82\x72\x37\xa0\x3b\x2a\x60\xba\xaf\xf7\x70\x3e\xe3\x39\x56\xdc\x66\x9b\x1c\x04\xc7\x21\xbf\x68\xf3\x43\xc8\x0b\x61\xf3\x5c\xa1\xb1\x95\x59\x96\x5f\xd7\x02\x6a\x1c\xec\x9b\xd9\xd9\x2f\x14\x50\xec\xba\xf4\x2d\xe1\x20\x42\xbd\x63\x0d\x34\x45\x70\x6c\x56\x77\x50\x71\xde\xae\x54\xf2\xc5\x31\xbc\x8c\x0b\xe2\x26\x8a\x13\xf1\x2a\xf5\x88\x05\x7f\x3e\xbd\x3e\xd1\x7f\xa0\x9a\x1a\x06\x07\x1e\xc1\x3e\x7e\x76\x38\xb1\x5a\x8e\x0c\x55\x52\x4a\x90\xc2\xd7\xc7\x9c\x1b\x2f\x42\x7f\xff\xaf\xfa\x26\x39\x0f\x1d\x6c\xd4\xab\xf2\x16\x96\x04\xb2\xe7\x79\xa7\x34\xe0\x6b\x15\xd0\x3e\xd9\x40\xbb\xc0\x2e\xd1\x20\x3f\x55\xdd\x3f\xd2\x95\x76\x08\x39\x8f\xc7\x26\x59\x61\xdd\xa2\x8d\x62\x6a\x8e\xa5\xed\xee\x28\xa3\x72\x10\xc8\xc7\x32\x16\x11\xe5\x2b\x4e\x54\x1c\x90\xe0\x72\x1e\xda\x0d\xe5\xf3\x0c\xf3\x88\x5e\xda\x30\xd6\xec\xe4\x62\x63\x80\x9a\xa1\xe5\xfe\x88\xb9\x31\x06\xf1\xe7\x43\x7f\xae\xfc\xce\x95\x1b\x19\x7a\xa5\xb1\xf2\x78\x0a\xa4\x37\xcf\x6a\x1f\x9c\x06\x9f\xe8\x2d\x18\xc5\x7c\xa9\xa7\x05\xcf\x52\x02\xbb\xd1\xaf\xc4\x1e\x1d\x28\x9a\x46\xa4\x34\xcf\xd1\x6b\xb7\xce\x6e\xe7\x64\xd5\xf0\xe6\xc8\x1e\x84\x86\xec\xa1\x16\x90\x2a\xba\xd6\xb9\x8d\xf3\x89\xea\xef\x81\x56\xb8\xb5\x63\x25\x35\x8e\x01\xf3\xec\x30\xd0\x50\xd9\x22\x6e\xcf\xb0\xa1\xd7\xe2\xca\xe6\xb5\xca\x67\x38\xc8\xcd\xeb\xa6\xbc\x11\x83\x27\xd6\x82\xf8\xb5\x95\x7c\x55\x61\x7f\xea\xc8\x11\xab\x2a\xb6\xee\x3a\xee\x63\x63\x94\x29\xf9\x97\x9d\xb5\x28\x5c\x33\x0d\xa8\xa9\xf6\xa3\x06\xb6\x9c\xec\xfb\x2b\xe3\xc6\x40\xf0\x43\x31\xff\xf3\x78\x9a\x47\x44\x5c\x51\x25\xfb\x99\xe9\x96\xf4\x01\xb3\x19\xbf\xce\x5b\x08\x93\x6d\xb9\xc6\xf8\x28\xc6\x82\xbb\xe6\x9e\x86\x6a\xc0\xa6\xb2\x04\xe0\x2e\xce\xfd\x61\x14\x2d\x0c\x20\xc1\x99\x55\x62\xbc\x1f\xda\xb5\x82\x29\x61\x89\xa1\xb3\x4b\xdb\x75\x72\x2e\x64\xe7\xd4\xf0\x0b\x8d\x83\xfd\xc2\xf8\xfc\x76\x97\x11\x43\x75\x0a\xcd\x0d\x51\x3b\x81\x29\x8a\x2f\x8c\x72\x25\x2c\xce\xb7\x36\x33\x97\x6f\x52\xfc\x2e\x93\xa1\xef\x80\x6e\xc7\x95\x7c\x66\xee\xac\x4c\x52\xf9\xb5\x84\x58\x03\x90\xc6\xfa\x46\x43\xe0\xca\xd5\x9a\xd3\xf5\x81\x04\xa7\x28\xd9\x3b\xc6\x86\x9a\x6f\x64\x98\x92\xee\xf9\xec\xb3\xee\xbc\xeb\xd3\x48\x54\xf8\xe1\x9d\xb5\xac\x62\xba\x0b\x67\xa7\x40\xbb\x39\xb1\x90\x5e\x8d\x34\x5e\x2f\xf2\x1b\x4e\x25\x97\x4b\xd5\xbc\x7c\x86\x26\x07\xdd\xb6\xac\x10\xce\xcd\xe5\x9c\x1a\x93\x2b\x2f\xb5\xb2\x2c\x67\x34\x57\xbd\x4a\x39\x6e\x36\x67\xf4\x22\x7a\x27\x6f\xa1\xa1\xb2\x0f\xb6\x0f\xf5\x84\x1a\xf6\x4e\x98\x1f\x6c\x84\xbe\x84\xad\x1b\xb1\x0d\x94\x1d\x61\x56\x29\x65\x4e\x1d\x12\x8c\x9a\x37\x7a\xd6\x0b\x04\xc3\xcf\x2a\xad\x71\x18\x62\x6e\xaa\xe0\xb4\x06\x8d\xd6\x23\xe1\xa2\xd9\x8b\x95\x52\x4f\x9d\xb1\x60\x49\xec\xff\xd5\xc8\xfe\xe7\xe1\xbb\xa7\x47\xa1\xee\x9e\xc5\xf6\x7a\xee\x0b\x69\x95\x1d\xfa\x0b\x58\x7c\x34\xbe\xb3\x6b\xe3\xc1\x6c\x3a\xb0\x24\xeb\x27\x1f\x37\x16\x49\x9e\xd5\xa1\x79\x5e\xac\x34\x23\xc3\x7b\x8f\xa9\xd2\x0d\x1a\xf4\xe9\x67\x16\x42\x63\xfc\x60\xe0\xcd\x8e\x84\xcf\xc3\x12\xb3\x41\x85\xf4\x0a\x7d\x07\x77\x74\x91\x47\xf6\x04\x38\x65\x3b\xc3\xd3\x6a\x1d\xad\x3e\xa4\x33\x68\x44\x64\xe0\xc9\xc1\x2a\x88\xc4\x4d\x86\x2e\x02\x29\x92\xcb\x4b\xfa\x60\x3d\x1f\x8d\x21\xa0\xa5\xbd\x6c\x62\xfc\x3e\x84\x27\xf1\x96\x50\x7d\xae\xd7\x4f\x62\xa1\x7b\xa9\x78\x1a\x47\x40\xcf\x7f\x9c\x5d\xf1\x23\x62\xde\xd5\xaa\xa8\x35\xc1\x94\x3c\x3d\x93\x24\x1e\x9c\x31\x2b\xff\x72\x32\xe6\xe9\x23\x21\x40\x0d\xda\xcb\x84\xb8\x4b\x1c\x41\x20\x57\x5c\x5d\x02\x46\xd7\x8a\xd3\xe9\xfd\x4a\xcb\xbb\x51\x15\x94\x4d\x1c\x39\xf3\xe0\x74\x05\xba\xf7\xdd\x4b\xd6\x33\xc0\xbf\xdb\xaa\xfd\xb4\x29\x54\xeb\x62\x06\x66\x8d\x53\xe9\x94\x75\x94\xe4\xd0\x91\x1b\x09\x03\x6c\xba\x8f\x09\xf4\xcc\x19\x8d\xc0\x64\xc6\x8d\x5a\x7b\x84\x8d\xd2\xa6\xa6\x64\x61\x96\x11\x84\x57\x67\xf9\x92\xb1\x52\x7a\x62\x77\x1d\x36\x52\x7c\xc8\x81\xb5\xcc\xc0\x6f\xbb\xf8\x64\xe2\x7d\xca\x99\xa4\x33\x42\x4b\xdb\x6e\xf6\x31\xa7\xc8\x24\xc2\x46\xb7\x22\x22\x16\x00\x0d\xba\x03\xd7\x66\x4c\x48\x5a\x2c\xdf\xc0\x40\x42\xdb\x57\x16\x4a\xa7\x60\x07\x8a\xbb\x80\xed\x03\x0c\x0e\x6c\x83\xae\x5b\x9f\xb4\x22\x5c\x7a\xb7\x24\x79\xd1\x76\x2c\x73\x0f\xe1\xfd\x9d\xea\xc1\x3d\x6c\xba\x0d\x78\xc0\x1e\x03\xc1\x2d\x94\x10\xcf\xb1\x1e\xd2\x01\x66\xa5\x78\x0d\xd5\xe2\xeb\x22\x1a\xaf\x42\x4e\xdd\xde\x14\xf4\xac\x83\x02\xf1\x6b\x69\x97\x13\xd3\x22\x54\x36\xed\x49\x12\xaa\xef\x58\x49\x79\x24\x6f\x60\xa5\x16\x85\x77\x85\x6b\x82\xc2\xf8\x09\xcc\xea\x64\x48\x8f\xad\x8d\xe0\xdc\xcc\x30\xe7\x39\x6c\x27\xc6\x0d\x1d\xa0\xf2\x94\xef\x98\xd5\x96\x70\x74\x39\xc3\x5e\x24\x88\x49\x12\x17\x88\x64\x37\x26\x32\x9c\x1a\xcd\x0b\xd7\x91\x25\x24\x07\x82\xd8\xaf\x03\xb2\xb5\xcc\xe2\xd9\x60\xb8\xa9\xb3\xc8\x1e\x1f\x88\xb9\xa0\x78\x60\xa9\x16\xe4\x60\x53\x09\x46\x22\xc6\x05\x7a\xf2\x03\xc8\x42\xff\x84\x37\x57\x29\x03\x06\x65\xc5\x70\x52\x40\x94\x9e\x1b\x72\x9d\x29\x49\x6a\x29\xed\x39\xd2\x93\x17\x48\x3e\xec\x8c\xbf\xb7\xdc\xea\xc0\xb0\xca\x6c\x3f\xb0\x7a\xeb\x6a\x23\x68\xdc\x76\x7e\xb0\x7d\x7e\xd9\xcc\x62\xb9\x10\xb8\x01\xd0\x89\x89\xa8\x3f\x3b\xe5\x86\x18\x70\x1c\x71\x3f\x29\x8c\xa7\xf1\x7e\xae\x72\x51\x0b\x29\x56\x8c\x31\x59\xa4\x4a\x01\xf7\xff\xae\xed\xde\xae\x9d\x22\xc6\x8e\xa2\x61\xbc\x20\x60\xbc\xe8\xa1\x21\x31\x42\xb6\x0b\x5a\x8d\x1e\x73\x14\xfe\x7f\xc3\x93\x64\xb0\x49\xd5\x4f\x2a\x73\xcc\x77\x80\xf6\xec\x47\x7c\xb2\x73\x8a\x0c\xb2\x8a\x91\x9f\x2c\x0c\xf9\x35\xc1\xef\x51\xbb\xac\x89\x13\x38\xb7\x28\x13\xac\xc3\x79\x84\x8b\xfc\x3b\x39\x96\x9a\xea\xa9\xf2\x78\x7d\xdd\x18\x3c\x37\x22\xa1\x2b\x0b\x90\xf4\x8c\xe2\xf7\x53\x3f\x00\xd1\x22\xc9\x83\x52\x80\xf7\xfd\x8a\x0a\xd4\x1a\xa1\xb0\x8b\xa6\xd7\xdf\xca\x7b\x58\x3c\x1e\x03\x98\x99\x06\x04\x0f\x59\x84\xc6\x69\x9f\x38\x29\x09\xf5\x93\x95\x99\x58\x52\x32\xc9\x27\x76\xa1\xb5\x59\x27\x12\xa4\x2d\x5f\x44\xfc\x21\xa1\x88\x28\x50\x26\x10\x42\xea\x98\x76\x23\x09\xde\xd8\x79\x9d\x90\x9d\x6a\x40\x63\x36\xa5\xf2\x76\xfb\x29\xe9\xa8\x58\x97\x36\xde\xd2\xe9\x7e\xbc\x6f\x82\xb5\xf5\x77\xd0\xa0\x70\x21\xf4\xfc\xd6\x37\x1c\x5e\xd2\x9a\x53\x80\xd9\xdb\xf0\xd0\xca\x34\xb6\x84\x63\x1d\xfb\x50\x1e\x2a\xe2\x43\x87\x74\x32\xda\xd2\x6a\x3c\xd3\xc9\x46\x64\xa2\x95\x46\x1d\x6e\x78\xd0\x57\xef\x89\x84\x2b\xac\x7a\x33\xf6\xa6\x34\xb2\xe3\x74\xff\xac\x86\xae\xe3\x5f\xd8\x00\x08\xab\x98\x09\x83\x05\x54\xd7\x40\x4e\x75\x40\xf1\x1a\x7e\xf2\x73\xdc\x84\x6a\x57\xee\xf2\xb2\x72\x04\xbe\x70\x9c\x3e\xae\xa2\xb3\x05\xdf\x40\x1e\x40\x07\xf7\xf2\x97\x8e\xbd\x37\x19\x0e\x5e\x7c\xbf\x2d\x8e\xe4\x18\xd6\xd9\xfa\x59\xec\xba\x76\x03\xcb\xa8\xd2\xf7\x31\x73\x3f\x42\xe4\x94\x99\xc6\x85\x92\xf8\x7f\xea\x94\x35\x4e\x0c\x06\x6c\x30\xa2\x56\xea\xb3\x64\x95\xb1\x0d\x08\x2e\xde\x4e\x20\x63\x0e\x4d\x79\x91\x41\xcc\x44\x80\x14\x08\xcd\x3b\x28\xa7\x1c\x07\x55\x04\xb3\xac\xc1\xb6\x9d\x72\xec\x61\x52\x75\x78\x1b\xf9\xbb\xdd\x87\xb7\xd4\x09\xcf\x3c\xdd\x18\xe7\xcc\x86\xa1\x64\xdd\xb9\x80\xbf\x1a\xda\xc8\x88\xb7\xba\xb3\xd7\xc9\x68\xa4\x64\x81\x32\x1c\x10\x74\x8b\x79\x45\x03\x03\xe5\xaa\x08\x60\xd6\xfc\xc4\x30\x4e\x80\xd6\x98\x86\x65\x93\xff\x7f\x18\xcd\xd1\xf9\x3d\xf6\x72\xc7\xce\x86\x0b\x19\x2d\x9e\x03\x3d\x8a\xef\x00\xd4\x68\x5c\x41\x65\x54\x73\x03\x84\x8b\x91\xbc\xb2\xa3\x95\x6e\x2d\x17\xe5\x1a\x70\xa6\xe3\x83\xbc\xe7\x1d\x49\xbe\x32\xbd\x46\x1a\xec\x0d\x69\x1c\x88\x49\xe6\xb1\x78\x55\x8e\x47\xb2\x88\x31\x11\x3f\xa4\x48\xe7\xc9\x50\xfe\xe7\x9d\xd5\xd0\x19\x0d\x4c\x11\xd2\x9b\xc2\xe0\x47\x70\x91\x13\x8e\x1d\x38\x36\xf1\xbb\x86\xbe\xa2\xed\xc7\xee\x8e\xbf\xca\x69\x30\x22\x82\x3d\x49\x68\xa0\x67\xb3\x6c\x06\xb0\xca\xa8\xe8\x46\x33\xd8\x1e\xa6\x2e\x54\x8a\x4e\x87\x09\x67\x1f\x0c\x92\x8a\x28\xe5\x24\xaf\x78\xeb\xd0\xa8\x15\xaa\xc9\xf6\xdf\x61\x1d\xf0\x81\xb7\x5f\x55\x27\xf3\xb5\xa0\x4a\x50\x1e\xf0\x2e\x37\xaf\xe7\xae\xb0\x77\xd2\xd7\xaa\xb0\x8c\xcb\xc2\x43\xfe\x69\x39\x5d\x77\xec\x5d\xb8\x4c\x3b\x6c\x5c\x84\x80\xaf\xb3\xb3\xce\x91\xe6\xa4\xdf\xb9\xbb\xeb\x5e\x62\x3d\x1c\xfe\xff\x8b\x53\xb1\xe4\xf0\x33\x7a\x4d\x8d\x5b\x38\x18\x51\x7d\x66\x70\x4b\x57\x56\x37\x5d\xd8\x57\x12\xea\x2a\xe3\xc6\x43\xcb\x56\x4a\x9b\xb8\xc0\x32\xee\x33\x3d\x0e\xcc\xc6\xfa\x01\x70\xb5\xdd\x7a\x78\xad\x50\xd7\x25\x5f\xa1\x13\xdf\xa1\xb2\x03\x17\xb1\xd4\xd5\x08\x96\x7a\x38\x30\x6e\xbe\x34\x23\x23\x31\x98\xd6\xe3\x41\x33\x9e\x90\xd3\xe3\x1b\xae\x9a\x15\x28\xb8\xf1\x00\xae\xc4\x37\xf6\x56\x67\x0c\x2b\xb3\x91\x7b\xf9\xdf\xf0\xfc\x21\x38\xcf\x4d\xe3\x85\x2c\x71\xa0\xc2\x7a\xc0\xe1\xda\x61\xfd\xe7\xdf\xe9\x66\x03\xfb\xbe\x61\xb7\x69\x7f\x46\x76\xb7\x3d\x46\xf1\x0d\x09\x23\x48\xef\xfa\x95\x7b\x9a\xf1\x6a\xef\x7f\xed\x03\x6b\xa7\x40\xea\xdb\x9e\x3e\xe5\x18\x70\x03\x51\xdd\x63\xfd\x54\xa7\x85\x3c\x6a\xae\x18\x0e\x9c\xf7\xe7\x16\x60\x17\x8a\xc8\xa8\x2b\x59\x01\x04\x82\x7d\xaf\x9b\xd1\xef\x07\x8a\xd5\x6c\xd3\x93\xd8\xc3\xd0\xb0\xc0\x42\xd2\x7a\xe4\xb6\xf5\x31\xd0\x2c\x9f\x46\x42\x72\xa7\x14\x26\xd5\x88\x47\x1c\x2a\x61\x59\xb3\x6e\xe7\x6e\x16\x58\x53\x40\xd1\xa1\x83\x1d\xa9\x41\x55\x6a\x84\xeb\x76\x84\x54\x7b\xba\x00\x40\xdc\x41\x98\xe7\x68\xc0\x9e\x38\xa6\x75\x62\x61\x2d\xe6\xef\xf6\x30\xff\x92\xf3\xc8\x85\xcc\x41\xd3\x1f\x54\xb8\x02\xe6\xb3\xb4\x7d\x51\xc3\x87\xd9\xb3\xc2\x0b\x76\x80\xdc\xf0\xce\x71\xaa\xa4\x6b\xfe\xc6\x0e\xab\x7f\x75\x0a\x53\x4c\xdb\x02\xcf\xab\xde\x84\x96\x80\x02\x55\x8a\xd2\x21\x57\xb0\x52\x8d\x13\x55\x8d\x2a\xef\xcf\xc4\x73\x02\xef\x05\x77\x8e\x71\x00\x3c\x19\x64\x5d\x84\xa5\x11\x57\x10\x93\xfd\xf6\x76\x23\xcd\xe3\x6b\xc8\xca\x16\x68\x9b\x77\x88\x84\x1d\x9f\x3e\x0b\xc1\xfd\xe3\xd6\xa7\x2a\x98\xa6\x4a\xa8\xb6\x7b\xf1\x77\x5b\x01\x25\x75\xda\xe0\x15\xb4\xb0\xe3\xa3\xf9\x6d\x86\x2f\x3e\x75\x99\x73\x14\xbb\x7a\xd1\xe0\x0e\xde\x8b\xa5\x31\x60\xea\xee\x9d\x75\xf6\x81\x3b\xa0\xa6\x00\x15\x6e\x01\xc1\xb9\xae\x8c\xfc\xf4\xbf\x39\xfb\xac\xbc\x87\x64\xcc\x56\x56\xbc\x81\x2b\x25\x41\xce\xc7\xd8\x6c\x18\x0f\x5b\xb3\x8a\x12\x44\x27\xc6\x96\x65\x22\xee\xef\x27\xab\x3c\xec\xa1\x25\xd5\xa3\x4c\x83\x23\x19\xeb\x76\xca\x83\x4f\x09\x62\x91\x02\xc8\x30\x4a\x02\xed\xc4\x17\x07\xe7\x94\x92\x7c\x35\xac\x31\xd6\xb6\xc0\x06\xac\xd8\x52\x4d\xc6\x92\x87\x88\x43\xa2\x91\xa5\xd9\xde\xc9\x42\x0a\xa7\xfb\x4d\x2a\x71\x91\xa5\xc2\xe8\x1f\x61\x32\x09\x43\x91\xb9\xed\x0f\x61\xb0\xe4\x4a\x3c\x2c\x96\xfb\x13\x09\x59\x4c\x37\xd1\xa5\xab\x89\x73\x6e\x88\x64\x3a\xdd\x4e\x2b\x8c\x7d\x9a\x33\xed\xa3\xd4\x38\x24\x85\x97\xdd\x2e\x57\x8e\xb9\x37\x87\x4f\x5b\x91\x38\x65\x11\xe9\xf9\x6a\x8c\xdd\x43\x0f\xb5\xcb\x30\x54\x8c\xb6\x43\x80\xa9\x64\x35\x6a\x52\x05\xea\xaa\x18\x8e\x97\xca\xce\xd0\xfc\x67\x8e\x6e\x6b\x55\x08\x61\x4d\xb1\xa9\xaf\x94\x20\x61\x03\x53\x38\xba\x72\x51\xdd\x4c\xd7\x87\xf7\xe5\x46\x5c\x07\x12\x1e\xf8\xf9\x8d\xa1\x51\x18\x6e\xe0\xc7\x27\xde\xf8\xc6\x88\x85\xec\x3a\x74\xa5\xb6\x9e\xfd\xaa\xbc\x97\x46\x53\x51\xb4\x21\x41\x7c\x1b\x79\x14\x7c\x98\x89\xb3\x9e\xaf\x73\x3c\x4e\x6b\x37\x0c\xc4\x68\xcd\xe4\x61\x1e\x77\xee\x9f\x29\xf8\xce\xf4\x57\xb2\xaf\xdc\x83\x2d\x22\xee\x9f\x01\xaf\xa2\x3a\x69\xff\xee\x44\x1a\x8e\x0e\x02\x88\x7e\x00\xe5\x68\x64\xa7\x64\xf1\x2d\xfa\xaa\x48\x1e\x93\x47\x19\x9f\xb4\xdc\xe1\xba\x02\x3d\x0c\xcd\x38\x43\xb3\x0c\xe9\x40\xd3\xdd\x87\x0a\x39\x71\xf5\x79\x8a\x53\xb7\x13\x21\x6e\x1e\xbb\x75\x49\x35\xdd\xf3\x9e\x13\x0b\x4b\xbd\xfe\xda\xe2\x4b\xbf\xb9\x43\xcd\x3d\x32\xfc\x67\x11\x96\x7c\xf7\x25\x03\xba\x04\xd4\x8b\x68\xf4\x18\xa5\x15\x1b\x68\xcc\xdd\x3d\x85\xb0\x6d\x72\x0c\x5a\xec\xc7\xb3\xd4\xc8\x3c\xd3\x21\x4b\x64\x83\xdf\xbd\x6b\xd5\x71\xc1\x7e\x79\x79\xf0\x1b\xc8\xa5\xdc\xe3\x34\xf1\x88\x8f\x37\xd2\xd0\x4c\x7a\xaa\x97\xa3\x32\x52\xa6\x70\xe2\xb1\x1f\x4b\xbc\xb5\xd6\x73\x71\xe9\x02\xab\x26\x25\x3e\x62\x1b\x74\x4a\x7f\x4c\x21\xc0\xee\x68\x22\x2e\x60\x7f\xe1\x29\xa1\x78\x20\x3e\xc5\xcc\x02\x19\x46\x66\xf1\xc6\xe7\xa0\x24\x62\xfa\xb4\xf2\x3b\x8c\xa9\x9e\xfa\x4e\x17\x73\x73\x70\x1f\x33\x55\x3b\x33\x85\xf0\x78\x54\xb0\xae\x76\x95\xbc\x16\x8b\x1b\xbc\xd3\x60\xb7\xaf\x39\xc7\x52\xd3\x2c\x0c\x12\x72\x0e\xac\x81\x81\x1b\x3c\x07\x65\xd4\xd3\x84\x4c\xec\xeb\x84\xa0\x2a\x39\xeb\x83\xff\x9f\xf9\x8c\xfd\xfd\x58\x92\xfe\x1f\x99\x49\xa0\x27\x25\x7d\x1b\x7f\xb4\x9e\x28\xbe\x87\x7b\x89\xb7\xbc\x75\x7e\xdc\x79\x62\xdf\xc2\x0d\x08\x88\xd4\xc4\xc4\xa7\x03\x8d\x51\x51\xd7\x3c\x3e\xdd\xb3\xce\x4e\xb1\xb4\xcd\xa2\xef\x60\xd9\x7c\xca\x72\x6d\xa2\x36\x11\xb8\x83\x6a\x77\x2b\xa0\xe7\x9a\x8b\x04\xa5\xcc\x0b\x2b\x1a\xa6\x70\x89\xed\x27\x72\x86\x50\xa9\xef\x2b\x21\x23\x12\x4d\x82\x1d\x1c\xfa\xa7\x07\x87\xf7\xa5\x53\x6a\xe2\x28\x65\x24\xcb\x5d\xdf\x06\xb6\xfb\x6f\x60\xd0\x71\xf4\xaf\x47\x67\x44\x71\x7f\x53\x22\x1b\x44\xe6\x6a\x44\x28\xbe\x87\x10\x01\x02\x33\xbe\x5a\x4a\xb5\xc1\xfd\x33\x92\x37\x33\x20\xfb\xbe\x0c\x4f\x5a\x8b\x52\xb4\xd8\x7a\x25\x43\xd8\x38\xcc\x17\x86\x57\xbc\x26\x2e\x42\x21\x38\x47\xbb\x67\xab\x1c\x24\xf7\xaa\x33\x5d\xf1\x86\x68\x3e\xcd\x0c\xb5\x1f\x12\x54\x2b\x69\xa1\x3b\x3d\xcc\xfd\xcf\xf4\x3f\x2f\xdd\x9a\x82\x03\x4d\xcc\xc5\x0e\xb0\xe4\x47\x82\x00\x50\xb3\x2e\xe8\x20\x6b\x88\x12\xa6\xbb\xd5\x5a\x12\xac\xff\x0f\x1b\x76\xc5\xd5\x61\xf7\x82\x7d\x09\xc4\xba\x62\x9b\x77\x67\x7b\x70\xf9\x32\x2b\xca\xd0\x28\xc6\xd8\x26\xbd\x07\x5f\x3c\x62\xed\x02\xc0\xe2\x68\x45\xfc\x00\x9f\x1c\xf5\x51\x1f\x9f\x70\xb2\xb8\x81\xee\x4c\x5b\x13\x45\x3d\x24\x14\xf9\xfc\x21\x3f\x56\xb9\x1f\x3a\x73\xc0\xb5\x30\x77\x2f\x4a\x05\xf0\x3d\xd8\x23\x9c\x16\x05\xef\x87\xaf\x7b\x2c\x1e\x06\x5b\x76\x1d\x9b\x87\x51\x7e\x51\x6a\x6a\x9b\x65\x71\x2a\x69\x6b\x32\x46\xfa\x58\xc2\xd5\x3a\x8c\xb3\x47\x06\x75\x2b\x08\xeb\x8b\x18\xfb\x2a\xfa\x05\x51\x8e\x57\x8f\xc8\x87\x04\x7b\x7c\xc8\x65\x19\x3a\x4e\xa0\x96\x59\x2f\x4b\x9c\x2b\xa3\x30\x99\x96\x22\xb9\xc2\xe4\xb0\x33\xad\xf9\xfe\xe8\xb9\x5d\xbe\xfb\xd3\x0a\x35\x3c\xb2\x05\x25\xb9\x72\xf4\x65\x04\xa0\x15\x3e\x0a\x17\x49\x90\xa4\x48\xf3\x4c\x7a\x01\x5e\x2e\xba\x73\x61\xf0\x08\x49\xd9\xdc\x35\x2a\x17\x64\xa0\xc0\x2f\x2b\x6d\xd7\x8f\xfa\x20\x5e\xbd\xf8\x29\xda\xb8\x76\x11\xbf\x5e\x08\x25\x2d\x59\x8a\x89\x32\x90\x95\xdd\x7e\x29\x9c\x2b\x20\xb4\xb7\xbd\x19\x98\x99\x1b\x12\x11\x8b\x0a\x93\x84\x9f\x95\x5b\x2b\x8e\xdf\x25\x33\xa3\x59\x9f\xcb\xd2\x8b\xd3\xcf\x5c\x92\x48\xcb\xfc\xaf\xab\x35\x40\xb4\x28\xf0\xd5\x42\x01\xca\x2a\x84\xa8\xca\xbd\xa5\xc8\xfa\x51\x22\xd3\xa4", 4096); *(uint64_t*)0x20012448 = 0x20012340; *(uint32_t*)0x20012340 = r[2]; *(uint32_t*)0x20012344 = r[2]; *(uint64_t*)0x20012450 = 0x20012380; *(uint64_t*)0x20012458 = 0x20012400; *(uint32_t*)0x20012460 = 0x1000; *(uint32_t*)0x20012464 = 2; *(uint32_t*)0x20012468 = 0x51; *(uint32_t*)0x2001246c = 5; res = -1; errno = EFAULT; res = ((intptr_t(*)(intptr_t,intptr_t,intptr_t,intptr_t,intptr_t,intptr_t))CAST(zx_channel_call))(/*handle=*/r[2], /*options=*/0, /*deadline=*/r[0], /*args=*/0x20012440, /*actual_bytes=*/0x20012480, /*actual_handles=*/0x200124c0); fprintf(stderr, "### call=6 errno=%u\n", (intptr_t)(int)res == -1 ? errno : 0); if (res == ZX_OK) { r[3] = *(uint32_t*)0x2001240c; r[4] = *(uint32_t*)0x20012410; } break; case 7: res = -1; errno = EFAULT; res = ((intptr_t(*)(intptr_t,intptr_t,intptr_t,intptr_t,intptr_t,intptr_t,intptr_t,intptr_t))CAST(zx_channel_read))(/*handle=*/r[3], /*options=*/0, /*bytes=*/0x20012500, /*num_bytes=*/0x10000, /*handles=*/0x20022500, /*num_handles=*/0, /*actual_bytes=*/0x20022540, /*actual_handles=*/0x20022580); fprintf(stderr, "### call=7 errno=%u\n", (intptr_t)(int)res == -1 ? errno : 0); break; case 8: res = -1; errno = EFAULT; res = ((intptr_t(*)(intptr_t,intptr_t,intptr_t,intptr_t,intptr_t,intptr_t))CAST(zx_pager_create_vmo))(/*pager=*/r[4], /*options=*/0, /*port=*/r[4], /*key=*/0x3eb, /*size=*/0x7fb, /*out=*/0x200225c0); fprintf(stderr, "### call=8 errno=%u\n", (intptr_t)(int)res == -1 ? errno : 0); if (res == ZX_OK) r[5] = *(uint32_t*)0x200225c0; break; case 9: res = -1; errno = EFAULT; res = ((intptr_t(*)(intptr_t,intptr_t,intptr_t,intptr_t))CAST(zx_stream_seek))(/*handle=*/r[5], /*whence=*/0, /*offset=*/0x401, /*out_seek=*/0x20022600); fprintf(stderr, "### call=9 errno=%u\n", (intptr_t)(int)res == -1 ? errno : 0); break; case 10: memcpy((void*)0x20000000, "\xc4\xa1\x49\xc2\xda\x0b\x0f\x18\xd2\x3e\x26\xf3\x36\x67\xdb\xe2\xc4\xc1\xd1\x16\x3b\xc4\xc1\xb4\xc6\x85\x0a\x00\x00\x00\x00\xf3\x40\xac\x85\x2f\x47\x0f\xf2\x4a\x00\x44\x79\xa5\x26\xf2\xad", 47); res = -1; errno = EFAULT; res = syz_execute_func(/*text=*/0x20000000); fprintf(stderr, "### call=10 errno=%u\n", res == -1 ? errno : 0); break; case 11: res = -1; errno = EFAULT; res = syz_future_time(/*when=*/1); fprintf(stderr, "### call=11 errno=%u\n", res == -1 ? errno : 0); break; case 12: res = -1; errno = EFAULT; res = syz_job_default(); fprintf(stderr, "### call=12 errno=%u\n", res == -1 ? errno : 0); break; case 13: res = -1; errno = EFAULT; res = syz_mmap(/*addr=*/0x20ffb000, /*len=*/0x4000); fprintf(stderr, "### call=13 errno=%u\n", res == -1 ? errno : 0); break; case 14: res = -1; errno = EFAULT; res = syz_process_self(); fprintf(stderr, "### call=14 errno=%u\n", res == -1 ? errno : 0); break; case 15: res = -1; errno = EFAULT; res = syz_thread_self(); fprintf(stderr, "### call=15 errno=%u\n", res == -1 ? errno : 0); break; case 16: res = -1; errno = EFAULT; res = syz_vmar_root_self(); fprintf(stderr, "### call=16 errno=%u\n", res == -1 ? errno : 0); break; } } int main(void) { syz_mmap(/*addr=*/0x20000000, /*len=*/0x1000000); setup_fault(); use_temporary_dir(); do_sandbox_none(); return 0; } :270:72: error: use of undeclared identifier 'zx_system_get_performance_info' res = ((intptr_t(*)(intptr_t,intptr_t,intptr_t,intptr_t,intptr_t))CAST(zx_system_get_performance_info))(/*res=*/0, /*topic=*/0, /*count=*/4, /*info=*/0x20000000, /*output_count=*/0x20000040); ^ 1 error generated. compiler invocation: /syzkaller/shared/fuchsia/prebuilt/third_party/clang/linux-x64/bin/clang [-o /tmp/syz-executor3116733561 -DGOOS_fuchsia=1 -DGOARCH_amd64=1 -DHOSTGOOS_linux=1 -x c - -Wno-deprecated -target x86_64-fuchsia -ldriver -lfdio -lzircon --sysroot /syzkaller/shared/fuchsia/out/x64/zircon_toolchain/obj/zircon/public/sysroot/sysroot -I /syzkaller/shared/fuchsia/sdk/lib/fdio/include -I /syzkaller/shared/fuchsia/zircon/system/ulib/fidl/include -I /syzkaller/shared/fuchsia/src/lib/ddk/include -I /syzkaller/shared/fuchsia/out/x64/fidling/gen/sdk/fidl/fuchsia.device -I /syzkaller/shared/fuchsia/out/x64/fidling/gen/sdk/fidl/fuchsia.device.manager -I /syzkaller/shared/fuchsia/out/x64/fidling/gen/sdk/fidl/fuchsia.hardware.nand -I /syzkaller/shared/fuchsia/out/x64/fidling/gen/sdk/fidl/fuchsia.hardware.power.statecontrol -I /syzkaller/shared/fuchsia/out/x64/fidling/gen/sdk/fidl/fuchsia.hardware.usb.peripheral -I /syzkaller/shared/fuchsia/out/x64/fidling/gen/zircon/vdso/zx -L /syzkaller/shared/fuchsia/out/x64/x64-shared -O2 -pthread -Wall -Werror -Wparentheses -Wunused-const-variable -Wframe-larger-than=16384 -Wno-array-bounds -Wno-unused-command-line-argument] --- FAIL: TestGenerate/fuchsia/amd64/10 (0.60s) csource_test.go:150: opts: {Threaded:true Repeat:true RepeatTimes:0 Procs:0 Slowdown:1 Sandbox:none SandboxArg:0 Leak:false NetInjection:false NetDevices:false NetReset:false Cgroups:false BinfmtMisc:false CloseFDs:false KCSAN:false DevlinkPCI:false NicVF:false USB:false VhciInjection:false Wifi:false IEEE802154:false Sysctl:false Swap:false UseTmpDir:false HandleSegv:false Repro:false Trace:false LegacyOptions:{Collide:false Fault:false FaultCall:0 FaultNth:0}} program: zx_system_get_performance_info(0x0, 0x0, 0x4, &(0x7f0000000000)=""/1, &(0x7f0000000040)) (fail_nth: 1) r0 = syz_future_time(0x1) (async) zx_channel_call$fuchsia_io_FileSeek(0x0, 0x0, r0, &(0x7f0000010140)={&(0x7f0000000080)={{}, 0xffffffffffffffff, 0x2}, &(0x7f00000000c0), &(0x7f0000000100), &(0x7f0000010100), 0x1c, 0x0, 0x10000}, &(0x7f0000010180), &(0x7f00000101c0)) (rerun: 4) zx_process_create(0x0, &(0x7f0000010200)='\x00', 0x1, 0x0, &(0x7f0000010240)=0x0, &(0x7f0000010280)) zx_object_get_child(0x0, 0x0, 0x800, &(0x7f00000102c0)=0x0) zx_process_start(r1, r2, &(0x7f0000010300)="c4817d290e8051bf0065673666450ff7fdc401a1c40009c482f935f1c441fc52d0660fc5f398c4837909c6b1664b0f6ee5f341d8cd", &(0x7f0000010340)=""/4096, 0x0, 0x0) zx_channel_call(r2, 0x0, r0, &(0x7f0000012440)={&(0x7f0000011340)="68b92e90e81a0a65aba68ac3039007c40663fec316f1d3f030eb37cd0f8d9e056bc93cbf8811c6ec84bd43ee1dbc4eb9f291b1ff6296bf0f229b823cf75021ecdd1d843abece20ab3e287801d8a782d9947b008614b221e17c641ae2b5b0307cc6594759aaddde5b89ead9c032e8754ab98f09b03c802934cf4f75a4b153ae626a37333e7f35d166315311f3953ecf02f615822c58ac205d4da75d434ff36da5052a2f5d6c2a15477eb5536c80ee076e9894e6c63c0bf3d3004ce2107385919fcb771beebd389824689fbd28804b23cd933a3ab8d862c1f3cac7352fe4fccfc22d38777d69ba0fa2c820166ae8d351e116f0ca3dcfe6fc6d38f526411d407d0b2f97d822a054f440b05b7598b66e1848b0f2a8c2718f62c2c503fb28c8820626d9f46300f474feda0c816e43d9ed963447e0cd3d473ac3f0633d3d1fe4b43e587c3bfb5d3b9c3fb9472f7593c19a2d573f04796a7655ff5a1c0995834b07b62b79511946216d6c418af8ec0845782f112dfe0b7e4b6b0fb3604b4b2df31177a7c1976de255179553bff2544aa557a454b2657c5b3f0f71cff83c0b92d302d2201b7db36e9d8677dfad29ac432c25ea3b123db4f9240e9202c219a6479f05322aeb7da49f198893bdbfa0bf19a815e63aab70d4bcf3cb8b38f9ee914b43ee33e006d827919ce084d84257cb139979bb144e19cc8745478ea0ffde10d3cf590386497b43f4bc2725ec2d0df94f1a534a1ee8c429400e1078cc58a7bd8d1ded2cf4966766f21b4c07ce40d85593f8642b29652424a85aebdccdd8beba9fbfe6b1414cd3164552e7e49bb930019990dac4751a65be853b953b88eccac92c889c4d95116e94628480baab01a6cd991353ccbc8e78153038f45d9d2dc2c6fb96e37d9bdb69be948f12579371a43969e942ca69387296cf781526b7ef422f4c9bc644827237a03b2a60baaff7703ee33956dc669b1c04c721bf68f343c80b61f35ca1b19559965fd7026a1cec9bd9d92f1450ecbaf42de12042bd630d3445706c56775071deae54f2c531bc8c0be2268a13f12af588057f3ebd3ed17fa09a1a06071ec13e7e7638b15a8e0c55524a90c2d7c79c1b2f427fffaffa26390f1d6cd4abf2169604b2e779a734e06b15d03ed940bbc02ed1203f55dd3fd2957608398fc7265961dda28d626a8ea5edee28a37210c8c7321611e52b4e541c90e0721eda0de5f30cf3885eda30d6ece46263809aa1e5fe88b93106f1e7437faefcce951b197aa5b1f2780aa437cf6a1f9c069fe82d18c57ca9a705cf5202bbd1afc41e1d289a46a434cfd16bb7ce6ee764d5f0e6c81e8486eca116902abad6b98df389eaef8156b8b56325358e01f3ec30d050d9226ecfb0a1d7e2cae6b5ca6738c8cdeba6bc118327d682f8b5957c55617feac811ab2ab6ee3aee63639429f9979db5285c330da8a9f6a306b69cecfb2be3c640f04331fff3789a47445c5125fb99e996f401b319bfce5b08936db9c6f828c682bbe69e866ac0a6b204e02ecefd61142d0c20c1995562bc1fdab582296189a1b34bdb75722e64e7d4f00b8d83fdc2f8fc76971143750acd0d513b81298a2f8c72252cceb73633976f52fc2e93a1ef806ec7957c66eeac4c52f9b584580390c6fa4643e0cad59ad3f58104a728d93bc6869a6f649892eef9ecb3eebcebd34854f8e19db5ac62ba0b67a740bb39b1905e8d345e2ff21b4e25974bd5bc7c862607ddb6ac10cecde59c1a932b2fb5b22c673457bd4a396e3667f4227a276fa1a1b20fb60ff5841af64e981f6c84be84ad1bb10d941d615629654e1d128c9a377ad60b04c3cf2aad7118626eaae0b4068dd623e1a2d98b95524f9db16049ecffd5c8fee7e1bba747a1ee9ec5f67aee0b69951dfa0b587c34beb36be3c16c3ab024eb271f3716499ed5a1795eac3423c37b8fa9d20d1af4e967164263fc60e0cd8e84cfc312b34185f40a7d0777749147f60438653bc3d36a1dad3ea433684464e0c9c12a88c44d862e022992cb4bfa603d1f8d21a0a5bd6c62fc3e8427f196507daed74f62a17ba9781a4740cf7f9c5df12362ded5aaa835c1943c3d93241e9c312bff7232e6e92321400ddacb84b84b1c4120575c5d0246d78ad3e9fd4acbbb5115944d1c39f3e07405baf7dd4bd633c0bfdbaafdb42954eb6206668d53e9947594e4d0911b09036cba8f09f4cc198dc064c68d5a7b848dd2a6a664619611845767f992b1527a62771d36527cc881b5ccc06fbbf864e27dca99a433424bdb6ef631a7c824c246b7222216000dba03d7664c485a2cdfc04042db57164aa760078abb80ed030c0e6c83ae5b9fb4225c7ab72479d1762c730fe1fd9deac13d6cba0d78c01e03c12d9410cfb11ed20166a5780dd5e2eb221aaf424eddde14f4ac8302f16b699713d3225436ed4912aaef584979246f60a5168577856b82c2f809ccea64488fad8de0dccc30e7396c27c60d1da0f294ef98d596707439c35e248849121788643726329c1acd0bd79125240782d8af03b2b5cce2d960b8a9b3c81e1f88b9a07860a916e46053094622c6057af203c842ff84375729030665c5705240949e1b729d29496a29ed39d29317483eec8cbfb7dceac0b0ca6c3fb07aeb6a2368dc767eb07d7ed9cc62b910b801d08989a83f3be58618701c713f298ca7f17eae72510b29568c3159a44a01f7ffaeeddeae9d22c68ea261bc2060bce8a1213142b60b5a8d1e7314fe7fc39364b049d54f2a73cc7780f6ec477cb2738a0cb28a919f2c0cf935c1ef51bbac891338b72813acc379848bfc3b39969aeaa9f2787ddd183c3722a12b0b90f48ce2f7533f00d122c9835280f7fd8a0ad41aa1b08ba6d7dfca7b583c1e03989906040f5984c6699f382909f5939599585232c92776a1b5592712a42d5f44fc21a1882850261042ea98762309ded8799d909d6a406336a5f276fb29e9a8589736ded2e97ebc6f82b5f577d0a07021f4fcd6371c5ed29a5380d9dbf0d0ca34b684631dfb501e2ae243877432dad26a3cd3c94664a295461d6e78d057ef89842bac7a33f6a634b2e374ffac86aee35fd80008ab9809830554d7404e7540f11a7ef273dc846a57eef2b27204be709c3eaea2b305df401e4007f7f2978ebd37190e5e7cbf2d8ee418d6d9fa59ecba7603cba8d2f731733f42e49499c68592f87fea94354e0c066c30a256eab36495b10d082ede4e20630e4d799141cc44801408cd3b28a71c075504b3acc1b69d72ec615275781bf9bbdd87b7d409cf3cdd18e7cc86a164ddb980bf1adac888b7bab3d7c968a46481321c10748b79450303e5aa0860d6fcc4304e80d698866593ff7f18cdd1f93df672c7ce860b192d9e033d8aef00d4685c4165547303848b91bcb2a3956e2d17e51a70a6e383bce71d49be32bd461aec0d691c8849e6b178558e47b28831113fa448e7c950fee79dd5d0190d4c11d29bc2e0477091138e1d3836f1bb86bea2edc7ee8ebfca693022823d4968a067b36c06b0caa8e84633d81ea62e548a4e8709671f0c928a28e524af78ebd0a815aac9f6df611df081b75f5527f3b5a04a501ef02e37afe7aeb077d2d7aab08ccbc243fe69395d77ec5db84c3b6c5c8480afb3b3ce91e6a4dfb9bbeb5e623d1cfeff8b53b1e4f0337a4d8d5b3818517d66704b5756375dd85712ea2ae3c643cb564a9bb8c032ee333d0eccc6fa0170b5dd7a78ad50d7255fa113dfa1b20317b1d4d508967a38306ebe3423233198d6e341339e90d3e31bae9a1528b8f100aec437f656670c2bb3917bf9dff0fc2138cf4de3852c71a0c27ac0e1da61fde7dfe96603fbbe61b7697f4676b73d46f10d092348effa957b9af16aef7fed036ba740eadb9e3ee518700351dd63fd54a7853c6aae180e9cf7e71660178ac8a82b590104827daf9bd1ef078ad56cd393d8c3d0b0c042d27ae4b6f531d02c9f464272a71426d588471c2a6159b36ee76e16585340d1a1831da941556a84eb7684547bba0040dc4198e768c09e38a67562612de6eff630ff92f3c885cc41d31f54b802e6b3b47d51c387d9b3c20b7680dcf0ce71aaa46bfec60eab7f750a534cdb02cfabde84968002558ad22157b0528d13558d2aefcfc47302ef05778e71003c19645d84a511571093fdf67623cde36bc8ca16689b7788841d9f3e0bc1fde3d6a72a98a64aa8b67bf1775b012575dae015b4b0e3a3f96d862f3e75997314bb7ad1e00ede8ba53160eaee9d75f6813ba0a600156e01c1b9ae8cfcf4bf39fbacbc8764cc5656bc812b2541cec7d86c180f5bb38a124427c6966522eeef27ab3ceca125d5a34c832319eb76ca834f09629102c8304a02edc41707e794927c35ac31d6b6c006acd8524dc692878843a291a5d9dec9420aa7fb4d2a7191a5c2e81f6132094391b9ed0f61b0e44a3c2c96fb1309594c37d1a5ab89736e88643add4e2b8c7d9a33eda3d438248597dd2e578eb937874f5b91386511e9f96a8cdd430fb5cb30548cb64380a964356a5205eaaa188e97caced0fc678e6e6b5508614db1a9af942061035338ba7251dd4cd787f7e5465c07121ef8f98da151186ee0c727def8c68885ec3a74a5b69efdaabc97465351b421417c1b79147c9889b39eaf733c4e6b370cc468cde4611e77ee9f29f8cef457b2afdc832d22ee9f01afa23a69ffee441a8e0e02887e00e56864a764f12dfaaa481e9347199fb4dce1ba023d0ccd3843b30ce940d3dd870a3971f5798a53b713216e1ebb754935ddf39e130b4bbdfedae24bbfb943cd3d32fc6711967cf72503ba04d48b68f418a5151b68ccdd3d85b06d720c5aecc7b3d4c83cd3214b6483dfbd6bd571c17e7979f01bc8a5dce334f1888f37d2d04c7aaa97a33252a670e2b11f4bbcb5d67371e902ab26253e621b744a7f4c21c0ee68222e607fe129a178203ec5cc02194666f1c6e7a02462fab4f23b8ca99efa4e177373701f33553b3385f07854b0ae7695bc168b1bbcd360b7af39c752d32c0c12720eac81811b3c0765d4d3844ceceb84a02a39eb83ff9ff98cfdfd5892fe1f9949a027257d1b7fb49e28be877b89b7bc757edc7962dfc20d0888d4c4c4a7038d5151d73c3eddb3ce4eb1b4cda2ef60d97cca726da23611b8836a772ba0e79a8b04a5cc0b2b1aa67089ed27728650a9ef2b2123124d821d1cfaa70787f7a5536ae2286524cb5ddf06b6fb6f60d071f4af476744717f53221b44e66a4428be8710010233be5a4ab5c1fd3392373320fbbe0c4f5a8b52b4d87a2543d838cc178657bc262e42213847bb67ab1c24f7aa335df186683ecd0cb51f12542b69a13b3dccfdcff43f2fdd9a82034dccc50eb0e447820050b32ee8206b8812a6bbd55a12acff0f1b76c5d561f7827d09c4ba629b77677b70f9322bcad028c6d826bd075f3c62ed02c0e26845fc009f1cf5511f9f70b2b881ee4c5b13453d2414f9fc213f56b91f3a73c0b530772f4a05f03dd8239c1605ef87af7b2c1e065b761d9b87517e516a6a9b65712a696b3246fa58c2d53a8cb34706752b08eb8b18fb2afa05518e578fc887047b7cc865193a4ea096592f4b9c2ba330999622b9c2e4b033adf9fee8b95dbefbd30a353cb20525b972f46504a0153e0a174990a448f34c7a015e2eba7361f00849d9dc352a1764a0c02f2b6dd78ffa205ebdf829dab87611bf5e08252d598a89329095dd7e299c2b20b4b7bd1998991b12118b0a93849f955b2b8edf2533a3599fcbd28bd3cf5c9248cbfcafab3540b428f0d54201ca2a84a8cabda5c8fa5122d3a4", &(0x7f0000012340)=[r2, r2], &(0x7f0000012380)=""/81, &(0x7f0000012400)=[0x0, 0x0, 0x0, 0x0, 0x0], 0x1000, 0x2, 0x51, 0x5}, &(0x7f0000012480), &(0x7f00000124c0)) zx_channel_read$fuchsia_io_DirectoryAdminOnOpen(r3, 0x0, &(0x7f0000012500), 0x10000, &(0x7f0000022500), 0x0, &(0x7f0000022540), &(0x7f0000022580)) zx_pager_create_vmo(r4, 0x0, r4, 0x3, 0x7fb, &(0x7f00000225c0)=0x0) zx_stream_seek(r5, 0x0, 0x401, &(0x7f0000022600)) syz_execute_func(&(0x7f0000000000)="c4a149c2da0b0f18d23e26f33667dbe2c4c1d1163bc4c1b4c6850a00000000f340ac852f470ff24a004479a526f2ad") syz_future_time(0x1) syz_job_default() syz_mmap(&(0x7f0000ffb000/0x4000)=nil, 0x4000) syz_process_self() syz_thread_self() syz_vmar_root_self() csource_test.go:151: failed to build program: // autogenerated by syzkaller (https://github.com/google/syzkaller) #define _GNU_SOURCE #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include static void sleep_ms(uint64_t ms) { usleep(ms * 1000); } static uint64_t current_time_ms(void) { struct timespec ts; if (clock_gettime(CLOCK_MONOTONIC, &ts)) exit(1); return (uint64_t)ts.tv_sec * 1000 + (uint64_t)ts.tv_nsec / 1000000; } static int inject_fault(int nth) { return 0; } static void setup_fault() { } static void thread_start(void* (*fn)(void*), void* arg) { pthread_t th; pthread_attr_t attr; pthread_attr_init(&attr); pthread_attr_setstacksize(&attr, 128 << 10); int i = 0; for (; i < 100; i++) { if (pthread_create(&th, &attr, fn, arg) == 0) { pthread_attr_destroy(&attr); return; } if (errno == EAGAIN) { usleep(50); continue; } break; } exit(1); } typedef struct { int state; } event_t; static void event_init(event_t* ev) { ev->state = 0; } static void event_reset(event_t* ev) { ev->state = 0; } static void event_set(event_t* ev) { if (ev->state) exit(1); __atomic_store_n(&ev->state, 1, __ATOMIC_RELEASE); } static void event_wait(event_t* ev) { while (!__atomic_load_n(&ev->state, __ATOMIC_ACQUIRE)) usleep(200); } static int event_isset(event_t* ev) { return __atomic_load_n(&ev->state, __ATOMIC_ACQUIRE); } static int event_timedwait(event_t* ev, uint64_t timeout_ms) { uint64_t start = current_time_ms(); for (;;) { if (__atomic_load_n(&ev->state, __ATOMIC_RELAXED)) return 1; if (current_time_ms() - start > timeout_ms) return 0; usleep(200); } } long syz_mmap(size_t addr, size_t size) { zx_handle_t root = zx_vmar_root_self(); zx_info_vmar_t info; zx_status_t status = zx_object_get_info(root, ZX_INFO_VMAR, &info, sizeof(info), 0, 0); if (status != ZX_OK) { return status; } zx_handle_t vmo; status = zx_vmo_create(size, 0, &vmo); if (status != ZX_OK) { return status; } uintptr_t mapped_addr; status = zx_vmar_map(root, ZX_VM_FLAG_SPECIFIC_OVERWRITE | ZX_VM_FLAG_PERM_READ | ZX_VM_FLAG_PERM_WRITE, addr - info.base, vmo, 0, size, &mapped_addr); zx_status_t close_vmo_status = zx_handle_close(vmo); if (close_vmo_status != ZX_OK) { } return status; } static long syz_process_self(void) { return zx_process_self(); } static long syz_thread_self(void) { return zx_thread_self(); } static long syz_vmar_root_self(void) { return zx_vmar_root_self(); } static long syz_job_default(void) { return zx_job_default(); } static long syz_future_time(volatile long when) { zx_time_t delta_ms = 10000; switch (when) { case 0: delta_ms = 5; break; case 1: delta_ms = 30; break; } zx_time_t now = 0; zx_clock_read(ZX_CLOCK_MONOTONIC, &now); return now + delta_ms * 1000 * 1000; } static void loop(); static int do_sandbox_none(void) { loop(); return 0; } #define CAST(f) ({void* p = (void*)f; p; }) static long syz_execute_func(volatile long text) { ((void (*)(void))(text))(); return 0; } struct thread_t { int created, call; event_t ready, done; }; static struct thread_t threads[16]; static void execute_call(int call); static int running; static void* thr(void* arg) { struct thread_t* th = (struct thread_t*)arg; for (;;) { event_wait(&th->ready); event_reset(&th->ready); execute_call(th->call); __atomic_fetch_sub(&running, 1, __ATOMIC_RELAXED); event_set(&th->done); } return 0; } static void execute_one(void) { int i, call, thread; for (call = 0; call < 17; call++) { for (thread = 0; thread < (int)(sizeof(threads) / sizeof(threads[0])); thread++) { struct thread_t* th = &threads[thread]; if (!th->created) { th->created = 1; event_init(&th->ready); event_init(&th->done); event_set(&th->done); thread_start(thr, th); } if (!event_isset(&th->done)) continue; event_reset(&th->done); th->call = call; __atomic_fetch_add(&running, 1, __ATOMIC_RELAXED); event_set(&th->ready); if (call == 1) break; event_timedwait(&th->done, 50); break; } } for (i = 0; i < 100 && __atomic_load_n(&running, __ATOMIC_RELAXED); i++) sleep_ms(1); } static void execute_one(void); static void loop(void) { execute_one(); } uint64_t r[6] = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0}; void execute_call(int call) { intptr_t res = 0; switch (call) { case 0: inject_fault(1); ((intptr_t(*)(intptr_t,intptr_t,intptr_t,intptr_t,intptr_t))CAST(zx_system_get_performance_info))(/*res=*/0, /*topic=*/0, /*count=*/4, /*info=*/0x20000000, /*output_count=*/0x20000040); break; case 1: res = -1; res = syz_future_time(/*when=*/1); if ((int)res != -1) r[0] = res; break; case 2: *(uint64_t*)0x20010140 = 0x20000080; *(uint32_t*)0x20000080 = 0; memset((void*)0x20000084, 0, 3); *(uint8_t*)0x20000087 = 1; *(uint64_t*)0x20000088 = 0x782a774500000000; *(uint64_t*)0x20000090 = -1; *(uint32_t*)0x20000098 = 2; *(uint64_t*)0x20010148 = 0x200000c0; *(uint64_t*)0x20010150 = 0x20000100; *(uint64_t*)0x20010158 = 0x20010100; *(uint32_t*)0x20010160 = 0x1c; *(uint32_t*)0x20010164 = 0; *(uint32_t*)0x20010168 = 0x10000; *(uint32_t*)0x2001016c = 0; ((intptr_t(*)(intptr_t,intptr_t,intptr_t,intptr_t,intptr_t,intptr_t))CAST(zx_channel_call))(/*handle=*/0, /*options=*/0, /*deadline=*/r[0], /*args=*/0x20010140, /*actual_bytes=*/0x20010180, /*actual_handles=*/0x200101c0); { int i; for(i = 0; i < 4; i++) { ((intptr_t(*)(intptr_t,intptr_t,intptr_t,intptr_t,intptr_t,intptr_t))CAST(zx_channel_call))(/*handle=*/0, /*options=*/0, /*deadline=*/r[0], /*args=*/0x20010140, /*actual_bytes=*/0x20010180, /*actual_handles=*/0x200101c0); } } break; case 3: memset((void*)0x20010200, 0, 1); res = -1; res = ((intptr_t(*)(intptr_t,intptr_t,intptr_t,intptr_t,intptr_t,intptr_t))CAST(zx_process_create))(/*job=*/0, /*name=*/0x20010200, /*name_len=*/1, /*options=*/0, /*proc_handle=*/0x20010240, /*vmar_handle=*/0x20010280); if (res == ZX_OK) r[1] = *(uint32_t*)0x20010240; break; case 4: res = -1; res = ((intptr_t(*)(intptr_t,intptr_t,intptr_t,intptr_t))CAST(zx_object_get_child))(/*handle=*/0, /*koid=*/0, /*rights=*/0x800, /*out=*/0x200102c0); if (res == ZX_OK) r[2] = *(uint32_t*)0x200102c0; break; case 5: memcpy((void*)0x20010300, "\xc4\x81\x7d\x29\x0e\x80\x51\xbf\x00\x65\x67\x36\x66\x45\x0f\xf7\xfd\xc4\x01\xa1\xc4\x00\x09\xc4\x82\xf9\x35\xf1\xc4\x41\xfc\x52\xd0\x66\x0f\xc5\xf3\x98\xc4\x83\x79\x09\xc6\xb1\x66\x4b\x0f\x6e\xe5\xf3\x41\xd8\xcd", 53); ((intptr_t(*)(intptr_t,intptr_t,intptr_t,intptr_t,intptr_t,intptr_t))CAST(zx_process_start))(/*process=*/r[1], /*thread=*/r[2], /*entry=*/0x20010300, /*stack=*/0x20010340, /*arg1=*/0, /*arg2=*/0); break; case 6: *(uint64_t*)0x20012440 = 0x20011340; memcpy((void*)0x20011340, "\x68\xb9\x2e\x90\xe8\x1a\x0a\x65\xab\xa6\x8a\xc3\x03\x90\x07\xc4\x06\x63\xfe\xc3\x16\xf1\xd3\xf0\x30\xeb\x37\xcd\x0f\x8d\x9e\x05\x6b\xc9\x3c\xbf\x88\x11\xc6\xec\x84\xbd\x43\xee\x1d\xbc\x4e\xb9\xf2\x91\xb1\xff\x62\x96\xbf\x0f\x22\x9b\x82\x3c\xf7\x50\x21\xec\xdd\x1d\x84\x3a\xbe\xce\x20\xab\x3e\x28\x78\x01\xd8\xa7\x82\xd9\x94\x7b\x00\x86\x14\xb2\x21\xe1\x7c\x64\x1a\xe2\xb5\xb0\x30\x7c\xc6\x59\x47\x59\xaa\xdd\xde\x5b\x89\xea\xd9\xc0\x32\xe8\x75\x4a\xb9\x8f\x09\xb0\x3c\x80\x29\x34\xcf\x4f\x75\xa4\xb1\x53\xae\x62\x6a\x37\x33\x3e\x7f\x35\xd1\x66\x31\x53\x11\xf3\x95\x3e\xcf\x02\xf6\x15\x82\x2c\x58\xac\x20\x5d\x4d\xa7\x5d\x43\x4f\xf3\x6d\xa5\x05\x2a\x2f\x5d\x6c\x2a\x15\x47\x7e\xb5\x53\x6c\x80\xee\x07\x6e\x98\x94\xe6\xc6\x3c\x0b\xf3\xd3\x00\x4c\xe2\x10\x73\x85\x91\x9f\xcb\x77\x1b\xee\xbd\x38\x98\x24\x68\x9f\xbd\x28\x80\x4b\x23\xcd\x93\x3a\x3a\xb8\xd8\x62\xc1\xf3\xca\xc7\x35\x2f\xe4\xfc\xcf\xc2\x2d\x38\x77\x7d\x69\xba\x0f\xa2\xc8\x20\x16\x6a\xe8\xd3\x51\xe1\x16\xf0\xca\x3d\xcf\xe6\xfc\x6d\x38\xf5\x26\x41\x1d\x40\x7d\x0b\x2f\x97\xd8\x22\xa0\x54\xf4\x40\xb0\x5b\x75\x98\xb6\x6e\x18\x48\xb0\xf2\xa8\xc2\x71\x8f\x62\xc2\xc5\x03\xfb\x28\xc8\x82\x06\x26\xd9\xf4\x63\x00\xf4\x74\xfe\xda\x0c\x81\x6e\x43\xd9\xed\x96\x34\x47\xe0\xcd\x3d\x47\x3a\xc3\xf0\x63\x3d\x3d\x1f\xe4\xb4\x3e\x58\x7c\x3b\xfb\x5d\x3b\x9c\x3f\xb9\x47\x2f\x75\x93\xc1\x9a\x2d\x57\x3f\x04\x79\x6a\x76\x55\xff\x5a\x1c\x09\x95\x83\x4b\x07\xb6\x2b\x79\x51\x19\x46\x21\x6d\x6c\x41\x8a\xf8\xec\x08\x45\x78\x2f\x11\x2d\xfe\x0b\x7e\x4b\x6b\x0f\xb3\x60\x4b\x4b\x2d\xf3\x11\x77\xa7\xc1\x97\x6d\xe2\x55\x17\x95\x53\xbf\xf2\x54\x4a\xa5\x57\xa4\x54\xb2\x65\x7c\x5b\x3f\x0f\x71\xcf\xf8\x3c\x0b\x92\xd3\x02\xd2\x20\x1b\x7d\xb3\x6e\x9d\x86\x77\xdf\xad\x29\xac\x43\x2c\x25\xea\x3b\x12\x3d\xb4\xf9\x24\x0e\x92\x02\xc2\x19\xa6\x47\x9f\x05\x32\x2a\xeb\x7d\xa4\x9f\x19\x88\x93\xbd\xbf\xa0\xbf\x19\xa8\x15\xe6\x3a\xab\x70\xd4\xbc\xf3\xcb\x8b\x38\xf9\xee\x91\x4b\x43\xee\x33\xe0\x06\xd8\x27\x91\x9c\xe0\x84\xd8\x42\x57\xcb\x13\x99\x79\xbb\x14\x4e\x19\xcc\x87\x45\x47\x8e\xa0\xff\xde\x10\xd3\xcf\x59\x03\x86\x49\x7b\x43\xf4\xbc\x27\x25\xec\x2d\x0d\xf9\x4f\x1a\x53\x4a\x1e\xe8\xc4\x29\x40\x0e\x10\x78\xcc\x58\xa7\xbd\x8d\x1d\xed\x2c\xf4\x96\x67\x66\xf2\x1b\x4c\x07\xce\x40\xd8\x55\x93\xf8\x64\x2b\x29\x65\x24\x24\xa8\x5a\xeb\xdc\xcd\xd8\xbe\xba\x9f\xbf\xe6\xb1\x41\x4c\xd3\x16\x45\x52\xe7\xe4\x9b\xb9\x30\x01\x99\x90\xda\xc4\x75\x1a\x65\xbe\x85\x3b\x95\x3b\x88\xec\xca\xc9\x2c\x88\x9c\x4d\x95\x11\x6e\x94\x62\x84\x80\xba\xab\x01\xa6\xcd\x99\x13\x53\xcc\xbc\x8e\x78\x15\x30\x38\xf4\x5d\x9d\x2d\xc2\xc6\xfb\x96\xe3\x7d\x9b\xdb\x69\xbe\x94\x8f\x12\x57\x93\x71\xa4\x39\x69\xe9\x42\xca\x69\x38\x72\x96\xcf\x78\x15\x26\xb7\xef\x42\x2f\x4c\x9b\xc6\x44\x82\x72\x37\xa0\x3b\x2a\x60\xba\xaf\xf7\x70\x3e\xe3\x39\x56\xdc\x66\x9b\x1c\x04\xc7\x21\xbf\x68\xf3\x43\xc8\x0b\x61\xf3\x5c\xa1\xb1\x95\x59\x96\x5f\xd7\x02\x6a\x1c\xec\x9b\xd9\xd9\x2f\x14\x50\xec\xba\xf4\x2d\xe1\x20\x42\xbd\x63\x0d\x34\x45\x70\x6c\x56\x77\x50\x71\xde\xae\x54\xf2\xc5\x31\xbc\x8c\x0b\xe2\x26\x8a\x13\xf1\x2a\xf5\x88\x05\x7f\x3e\xbd\x3e\xd1\x7f\xa0\x9a\x1a\x06\x07\x1e\xc1\x3e\x7e\x76\x38\xb1\x5a\x8e\x0c\x55\x52\x4a\x90\xc2\xd7\xc7\x9c\x1b\x2f\x42\x7f\xff\xaf\xfa\x26\x39\x0f\x1d\x6c\xd4\xab\xf2\x16\x96\x04\xb2\xe7\x79\xa7\x34\xe0\x6b\x15\xd0\x3e\xd9\x40\xbb\xc0\x2e\xd1\x20\x3f\x55\xdd\x3f\xd2\x95\x76\x08\x39\x8f\xc7\x26\x59\x61\xdd\xa2\x8d\x62\x6a\x8e\xa5\xed\xee\x28\xa3\x72\x10\xc8\xc7\x32\x16\x11\xe5\x2b\x4e\x54\x1c\x90\xe0\x72\x1e\xda\x0d\xe5\xf3\x0c\xf3\x88\x5e\xda\x30\xd6\xec\xe4\x62\x63\x80\x9a\xa1\xe5\xfe\x88\xb9\x31\x06\xf1\xe7\x43\x7f\xae\xfc\xce\x95\x1b\x19\x7a\xa5\xb1\xf2\x78\x0a\xa4\x37\xcf\x6a\x1f\x9c\x06\x9f\xe8\x2d\x18\xc5\x7c\xa9\xa7\x05\xcf\x52\x02\xbb\xd1\xaf\xc4\x1e\x1d\x28\x9a\x46\xa4\x34\xcf\xd1\x6b\xb7\xce\x6e\xe7\x64\xd5\xf0\xe6\xc8\x1e\x84\x86\xec\xa1\x16\x90\x2a\xba\xd6\xb9\x8d\xf3\x89\xea\xef\x81\x56\xb8\xb5\x63\x25\x35\x8e\x01\xf3\xec\x30\xd0\x50\xd9\x22\x6e\xcf\xb0\xa1\xd7\xe2\xca\xe6\xb5\xca\x67\x38\xc8\xcd\xeb\xa6\xbc\x11\x83\x27\xd6\x82\xf8\xb5\x95\x7c\x55\x61\x7f\xea\xc8\x11\xab\x2a\xb6\xee\x3a\xee\x63\x63\x94\x29\xf9\x97\x9d\xb5\x28\x5c\x33\x0d\xa8\xa9\xf6\xa3\x06\xb6\x9c\xec\xfb\x2b\xe3\xc6\x40\xf0\x43\x31\xff\xf3\x78\x9a\x47\x44\x5c\x51\x25\xfb\x99\xe9\x96\xf4\x01\xb3\x19\xbf\xce\x5b\x08\x93\x6d\xb9\xc6\xf8\x28\xc6\x82\xbb\xe6\x9e\x86\x6a\xc0\xa6\xb2\x04\xe0\x2e\xce\xfd\x61\x14\x2d\x0c\x20\xc1\x99\x55\x62\xbc\x1f\xda\xb5\x82\x29\x61\x89\xa1\xb3\x4b\xdb\x75\x72\x2e\x64\xe7\xd4\xf0\x0b\x8d\x83\xfd\xc2\xf8\xfc\x76\x97\x11\x43\x75\x0a\xcd\x0d\x51\x3b\x81\x29\x8a\x2f\x8c\x72\x25\x2c\xce\xb7\x36\x33\x97\x6f\x52\xfc\x2e\x93\xa1\xef\x80\x6e\xc7\x95\x7c\x66\xee\xac\x4c\x52\xf9\xb5\x84\x58\x03\x90\xc6\xfa\x46\x43\xe0\xca\xd5\x9a\xd3\xf5\x81\x04\xa7\x28\xd9\x3b\xc6\x86\x9a\x6f\x64\x98\x92\xee\xf9\xec\xb3\xee\xbc\xeb\xd3\x48\x54\xf8\xe1\x9d\xb5\xac\x62\xba\x0b\x67\xa7\x40\xbb\x39\xb1\x90\x5e\x8d\x34\x5e\x2f\xf2\x1b\x4e\x25\x97\x4b\xd5\xbc\x7c\x86\x26\x07\xdd\xb6\xac\x10\xce\xcd\xe5\x9c\x1a\x93\x2b\x2f\xb5\xb2\x2c\x67\x34\x57\xbd\x4a\x39\x6e\x36\x67\xf4\x22\x7a\x27\x6f\xa1\xa1\xb2\x0f\xb6\x0f\xf5\x84\x1a\xf6\x4e\x98\x1f\x6c\x84\xbe\x84\xad\x1b\xb1\x0d\x94\x1d\x61\x56\x29\x65\x4e\x1d\x12\x8c\x9a\x37\x7a\xd6\x0b\x04\xc3\xcf\x2a\xad\x71\x18\x62\x6e\xaa\xe0\xb4\x06\x8d\xd6\x23\xe1\xa2\xd9\x8b\x95\x52\x4f\x9d\xb1\x60\x49\xec\xff\xd5\xc8\xfe\xe7\xe1\xbb\xa7\x47\xa1\xee\x9e\xc5\xf6\x7a\xee\x0b\x69\x95\x1d\xfa\x0b\x58\x7c\x34\xbe\xb3\x6b\xe3\xc1\x6c\x3a\xb0\x24\xeb\x27\x1f\x37\x16\x49\x9e\xd5\xa1\x79\x5e\xac\x34\x23\xc3\x7b\x8f\xa9\xd2\x0d\x1a\xf4\xe9\x67\x16\x42\x63\xfc\x60\xe0\xcd\x8e\x84\xcf\xc3\x12\xb3\x41\x85\xf4\x0a\x7d\x07\x77\x74\x91\x47\xf6\x04\x38\x65\x3b\xc3\xd3\x6a\x1d\xad\x3e\xa4\x33\x68\x44\x64\xe0\xc9\xc1\x2a\x88\xc4\x4d\x86\x2e\x02\x29\x92\xcb\x4b\xfa\x60\x3d\x1f\x8d\x21\xa0\xa5\xbd\x6c\x62\xfc\x3e\x84\x27\xf1\x96\x50\x7d\xae\xd7\x4f\x62\xa1\x7b\xa9\x78\x1a\x47\x40\xcf\x7f\x9c\x5d\xf1\x23\x62\xde\xd5\xaa\xa8\x35\xc1\x94\x3c\x3d\x93\x24\x1e\x9c\x31\x2b\xff\x72\x32\xe6\xe9\x23\x21\x40\x0d\xda\xcb\x84\xb8\x4b\x1c\x41\x20\x57\x5c\x5d\x02\x46\xd7\x8a\xd3\xe9\xfd\x4a\xcb\xbb\x51\x15\x94\x4d\x1c\x39\xf3\xe0\x74\x05\xba\xf7\xdd\x4b\xd6\x33\xc0\xbf\xdb\xaa\xfd\xb4\x29\x54\xeb\x62\x06\x66\x8d\x53\xe9\x94\x75\x94\xe4\xd0\x91\x1b\x09\x03\x6c\xba\x8f\x09\xf4\xcc\x19\x8d\xc0\x64\xc6\x8d\x5a\x7b\x84\x8d\xd2\xa6\xa6\x64\x61\x96\x11\x84\x57\x67\xf9\x92\xb1\x52\x7a\x62\x77\x1d\x36\x52\x7c\xc8\x81\xb5\xcc\xc0\x6f\xbb\xf8\x64\xe2\x7d\xca\x99\xa4\x33\x42\x4b\xdb\x6e\xf6\x31\xa7\xc8\x24\xc2\x46\xb7\x22\x22\x16\x00\x0d\xba\x03\xd7\x66\x4c\x48\x5a\x2c\xdf\xc0\x40\x42\xdb\x57\x16\x4a\xa7\x60\x07\x8a\xbb\x80\xed\x03\x0c\x0e\x6c\x83\xae\x5b\x9f\xb4\x22\x5c\x7a\xb7\x24\x79\xd1\x76\x2c\x73\x0f\xe1\xfd\x9d\xea\xc1\x3d\x6c\xba\x0d\x78\xc0\x1e\x03\xc1\x2d\x94\x10\xcf\xb1\x1e\xd2\x01\x66\xa5\x78\x0d\xd5\xe2\xeb\x22\x1a\xaf\x42\x4e\xdd\xde\x14\xf4\xac\x83\x02\xf1\x6b\x69\x97\x13\xd3\x22\x54\x36\xed\x49\x12\xaa\xef\x58\x49\x79\x24\x6f\x60\xa5\x16\x85\x77\x85\x6b\x82\xc2\xf8\x09\xcc\xea\x64\x48\x8f\xad\x8d\xe0\xdc\xcc\x30\xe7\x39\x6c\x27\xc6\x0d\x1d\xa0\xf2\x94\xef\x98\xd5\x96\x70\x74\x39\xc3\x5e\x24\x88\x49\x12\x17\x88\x64\x37\x26\x32\x9c\x1a\xcd\x0b\xd7\x91\x25\x24\x07\x82\xd8\xaf\x03\xb2\xb5\xcc\xe2\xd9\x60\xb8\xa9\xb3\xc8\x1e\x1f\x88\xb9\xa0\x78\x60\xa9\x16\xe4\x60\x53\x09\x46\x22\xc6\x05\x7a\xf2\x03\xc8\x42\xff\x84\x37\x57\x29\x03\x06\x65\xc5\x70\x52\x40\x94\x9e\x1b\x72\x9d\x29\x49\x6a\x29\xed\x39\xd2\x93\x17\x48\x3e\xec\x8c\xbf\xb7\xdc\xea\xc0\xb0\xca\x6c\x3f\xb0\x7a\xeb\x6a\x23\x68\xdc\x76\x7e\xb0\x7d\x7e\xd9\xcc\x62\xb9\x10\xb8\x01\xd0\x89\x89\xa8\x3f\x3b\xe5\x86\x18\x70\x1c\x71\x3f\x29\x8c\xa7\xf1\x7e\xae\x72\x51\x0b\x29\x56\x8c\x31\x59\xa4\x4a\x01\xf7\xff\xae\xed\xde\xae\x9d\x22\xc6\x8e\xa2\x61\xbc\x20\x60\xbc\xe8\xa1\x21\x31\x42\xb6\x0b\x5a\x8d\x1e\x73\x14\xfe\x7f\xc3\x93\x64\xb0\x49\xd5\x4f\x2a\x73\xcc\x77\x80\xf6\xec\x47\x7c\xb2\x73\x8a\x0c\xb2\x8a\x91\x9f\x2c\x0c\xf9\x35\xc1\xef\x51\xbb\xac\x89\x13\x38\xb7\x28\x13\xac\xc3\x79\x84\x8b\xfc\x3b\x39\x96\x9a\xea\xa9\xf2\x78\x7d\xdd\x18\x3c\x37\x22\xa1\x2b\x0b\x90\xf4\x8c\xe2\xf7\x53\x3f\x00\xd1\x22\xc9\x83\x52\x80\xf7\xfd\x8a\x0a\xd4\x1a\xa1\xb0\x8b\xa6\xd7\xdf\xca\x7b\x58\x3c\x1e\x03\x98\x99\x06\x04\x0f\x59\x84\xc6\x69\x9f\x38\x29\x09\xf5\x93\x95\x99\x58\x52\x32\xc9\x27\x76\xa1\xb5\x59\x27\x12\xa4\x2d\x5f\x44\xfc\x21\xa1\x88\x28\x50\x26\x10\x42\xea\x98\x76\x23\x09\xde\xd8\x79\x9d\x90\x9d\x6a\x40\x63\x36\xa5\xf2\x76\xfb\x29\xe9\xa8\x58\x97\x36\xde\xd2\xe9\x7e\xbc\x6f\x82\xb5\xf5\x77\xd0\xa0\x70\x21\xf4\xfc\xd6\x37\x1c\x5e\xd2\x9a\x53\x80\xd9\xdb\xf0\xd0\xca\x34\xb6\x84\x63\x1d\xfb\x50\x1e\x2a\xe2\x43\x87\x74\x32\xda\xd2\x6a\x3c\xd3\xc9\x46\x64\xa2\x95\x46\x1d\x6e\x78\xd0\x57\xef\x89\x84\x2b\xac\x7a\x33\xf6\xa6\x34\xb2\xe3\x74\xff\xac\x86\xae\xe3\x5f\xd8\x00\x08\xab\x98\x09\x83\x05\x54\xd7\x40\x4e\x75\x40\xf1\x1a\x7e\xf2\x73\xdc\x84\x6a\x57\xee\xf2\xb2\x72\x04\xbe\x70\x9c\x3e\xae\xa2\xb3\x05\xdf\x40\x1e\x40\x07\xf7\xf2\x97\x8e\xbd\x37\x19\x0e\x5e\x7c\xbf\x2d\x8e\xe4\x18\xd6\xd9\xfa\x59\xec\xba\x76\x03\xcb\xa8\xd2\xf7\x31\x73\x3f\x42\xe4\x94\x99\xc6\x85\x92\xf8\x7f\xea\x94\x35\x4e\x0c\x06\x6c\x30\xa2\x56\xea\xb3\x64\x95\xb1\x0d\x08\x2e\xde\x4e\x20\x63\x0e\x4d\x79\x91\x41\xcc\x44\x80\x14\x08\xcd\x3b\x28\xa7\x1c\x07\x55\x04\xb3\xac\xc1\xb6\x9d\x72\xec\x61\x52\x75\x78\x1b\xf9\xbb\xdd\x87\xb7\xd4\x09\xcf\x3c\xdd\x18\xe7\xcc\x86\xa1\x64\xdd\xb9\x80\xbf\x1a\xda\xc8\x88\xb7\xba\xb3\xd7\xc9\x68\xa4\x64\x81\x32\x1c\x10\x74\x8b\x79\x45\x03\x03\xe5\xaa\x08\x60\xd6\xfc\xc4\x30\x4e\x80\xd6\x98\x86\x65\x93\xff\x7f\x18\xcd\xd1\xf9\x3d\xf6\x72\xc7\xce\x86\x0b\x19\x2d\x9e\x03\x3d\x8a\xef\x00\xd4\x68\x5c\x41\x65\x54\x73\x03\x84\x8b\x91\xbc\xb2\xa3\x95\x6e\x2d\x17\xe5\x1a\x70\xa6\xe3\x83\xbc\xe7\x1d\x49\xbe\x32\xbd\x46\x1a\xec\x0d\x69\x1c\x88\x49\xe6\xb1\x78\x55\x8e\x47\xb2\x88\x31\x11\x3f\xa4\x48\xe7\xc9\x50\xfe\xe7\x9d\xd5\xd0\x19\x0d\x4c\x11\xd2\x9b\xc2\xe0\x47\x70\x91\x13\x8e\x1d\x38\x36\xf1\xbb\x86\xbe\xa2\xed\xc7\xee\x8e\xbf\xca\x69\x30\x22\x82\x3d\x49\x68\xa0\x67\xb3\x6c\x06\xb0\xca\xa8\xe8\x46\x33\xd8\x1e\xa6\x2e\x54\x8a\x4e\x87\x09\x67\x1f\x0c\x92\x8a\x28\xe5\x24\xaf\x78\xeb\xd0\xa8\x15\xaa\xc9\xf6\xdf\x61\x1d\xf0\x81\xb7\x5f\x55\x27\xf3\xb5\xa0\x4a\x50\x1e\xf0\x2e\x37\xaf\xe7\xae\xb0\x77\xd2\xd7\xaa\xb0\x8c\xcb\xc2\x43\xfe\x69\x39\x5d\x77\xec\x5d\xb8\x4c\x3b\x6c\x5c\x84\x80\xaf\xb3\xb3\xce\x91\xe6\xa4\xdf\xb9\xbb\xeb\x5e\x62\x3d\x1c\xfe\xff\x8b\x53\xb1\xe4\xf0\x33\x7a\x4d\x8d\x5b\x38\x18\x51\x7d\x66\x70\x4b\x57\x56\x37\x5d\xd8\x57\x12\xea\x2a\xe3\xc6\x43\xcb\x56\x4a\x9b\xb8\xc0\x32\xee\x33\x3d\x0e\xcc\xc6\xfa\x01\x70\xb5\xdd\x7a\x78\xad\x50\xd7\x25\x5f\xa1\x13\xdf\xa1\xb2\x03\x17\xb1\xd4\xd5\x08\x96\x7a\x38\x30\x6e\xbe\x34\x23\x23\x31\x98\xd6\xe3\x41\x33\x9e\x90\xd3\xe3\x1b\xae\x9a\x15\x28\xb8\xf1\x00\xae\xc4\x37\xf6\x56\x67\x0c\x2b\xb3\x91\x7b\xf9\xdf\xf0\xfc\x21\x38\xcf\x4d\xe3\x85\x2c\x71\xa0\xc2\x7a\xc0\xe1\xda\x61\xfd\xe7\xdf\xe9\x66\x03\xfb\xbe\x61\xb7\x69\x7f\x46\x76\xb7\x3d\x46\xf1\x0d\x09\x23\x48\xef\xfa\x95\x7b\x9a\xf1\x6a\xef\x7f\xed\x03\x6b\xa7\x40\xea\xdb\x9e\x3e\xe5\x18\x70\x03\x51\xdd\x63\xfd\x54\xa7\x85\x3c\x6a\xae\x18\x0e\x9c\xf7\xe7\x16\x60\x17\x8a\xc8\xa8\x2b\x59\x01\x04\x82\x7d\xaf\x9b\xd1\xef\x07\x8a\xd5\x6c\xd3\x93\xd8\xc3\xd0\xb0\xc0\x42\xd2\x7a\xe4\xb6\xf5\x31\xd0\x2c\x9f\x46\x42\x72\xa7\x14\x26\xd5\x88\x47\x1c\x2a\x61\x59\xb3\x6e\xe7\x6e\x16\x58\x53\x40\xd1\xa1\x83\x1d\xa9\x41\x55\x6a\x84\xeb\x76\x84\x54\x7b\xba\x00\x40\xdc\x41\x98\xe7\x68\xc0\x9e\x38\xa6\x75\x62\x61\x2d\xe6\xef\xf6\x30\xff\x92\xf3\xc8\x85\xcc\x41\xd3\x1f\x54\xb8\x02\xe6\xb3\xb4\x7d\x51\xc3\x87\xd9\xb3\xc2\x0b\x76\x80\xdc\xf0\xce\x71\xaa\xa4\x6b\xfe\xc6\x0e\xab\x7f\x75\x0a\x53\x4c\xdb\x02\xcf\xab\xde\x84\x96\x80\x02\x55\x8a\xd2\x21\x57\xb0\x52\x8d\x13\x55\x8d\x2a\xef\xcf\xc4\x73\x02\xef\x05\x77\x8e\x71\x00\x3c\x19\x64\x5d\x84\xa5\x11\x57\x10\x93\xfd\xf6\x76\x23\xcd\xe3\x6b\xc8\xca\x16\x68\x9b\x77\x88\x84\x1d\x9f\x3e\x0b\xc1\xfd\xe3\xd6\xa7\x2a\x98\xa6\x4a\xa8\xb6\x7b\xf1\x77\x5b\x01\x25\x75\xda\xe0\x15\xb4\xb0\xe3\xa3\xf9\x6d\x86\x2f\x3e\x75\x99\x73\x14\xbb\x7a\xd1\xe0\x0e\xde\x8b\xa5\x31\x60\xea\xee\x9d\x75\xf6\x81\x3b\xa0\xa6\x00\x15\x6e\x01\xc1\xb9\xae\x8c\xfc\xf4\xbf\x39\xfb\xac\xbc\x87\x64\xcc\x56\x56\xbc\x81\x2b\x25\x41\xce\xc7\xd8\x6c\x18\x0f\x5b\xb3\x8a\x12\x44\x27\xc6\x96\x65\x22\xee\xef\x27\xab\x3c\xec\xa1\x25\xd5\xa3\x4c\x83\x23\x19\xeb\x76\xca\x83\x4f\x09\x62\x91\x02\xc8\x30\x4a\x02\xed\xc4\x17\x07\xe7\x94\x92\x7c\x35\xac\x31\xd6\xb6\xc0\x06\xac\xd8\x52\x4d\xc6\x92\x87\x88\x43\xa2\x91\xa5\xd9\xde\xc9\x42\x0a\xa7\xfb\x4d\x2a\x71\x91\xa5\xc2\xe8\x1f\x61\x32\x09\x43\x91\xb9\xed\x0f\x61\xb0\xe4\x4a\x3c\x2c\x96\xfb\x13\x09\x59\x4c\x37\xd1\xa5\xab\x89\x73\x6e\x88\x64\x3a\xdd\x4e\x2b\x8c\x7d\x9a\x33\xed\xa3\xd4\x38\x24\x85\x97\xdd\x2e\x57\x8e\xb9\x37\x87\x4f\x5b\x91\x38\x65\x11\xe9\xf9\x6a\x8c\xdd\x43\x0f\xb5\xcb\x30\x54\x8c\xb6\x43\x80\xa9\x64\x35\x6a\x52\x05\xea\xaa\x18\x8e\x97\xca\xce\xd0\xfc\x67\x8e\x6e\x6b\x55\x08\x61\x4d\xb1\xa9\xaf\x94\x20\x61\x03\x53\x38\xba\x72\x51\xdd\x4c\xd7\x87\xf7\xe5\x46\x5c\x07\x12\x1e\xf8\xf9\x8d\xa1\x51\x18\x6e\xe0\xc7\x27\xde\xf8\xc6\x88\x85\xec\x3a\x74\xa5\xb6\x9e\xfd\xaa\xbc\x97\x46\x53\x51\xb4\x21\x41\x7c\x1b\x79\x14\x7c\x98\x89\xb3\x9e\xaf\x73\x3c\x4e\x6b\x37\x0c\xc4\x68\xcd\xe4\x61\x1e\x77\xee\x9f\x29\xf8\xce\xf4\x57\xb2\xaf\xdc\x83\x2d\x22\xee\x9f\x01\xaf\xa2\x3a\x69\xff\xee\x44\x1a\x8e\x0e\x02\x88\x7e\x00\xe5\x68\x64\xa7\x64\xf1\x2d\xfa\xaa\x48\x1e\x93\x47\x19\x9f\xb4\xdc\xe1\xba\x02\x3d\x0c\xcd\x38\x43\xb3\x0c\xe9\x40\xd3\xdd\x87\x0a\x39\x71\xf5\x79\x8a\x53\xb7\x13\x21\x6e\x1e\xbb\x75\x49\x35\xdd\xf3\x9e\x13\x0b\x4b\xbd\xfe\xda\xe2\x4b\xbf\xb9\x43\xcd\x3d\x32\xfc\x67\x11\x96\x7c\xf7\x25\x03\xba\x04\xd4\x8b\x68\xf4\x18\xa5\x15\x1b\x68\xcc\xdd\x3d\x85\xb0\x6d\x72\x0c\x5a\xec\xc7\xb3\xd4\xc8\x3c\xd3\x21\x4b\x64\x83\xdf\xbd\x6b\xd5\x71\xc1\x7e\x79\x79\xf0\x1b\xc8\xa5\xdc\xe3\x34\xf1\x88\x8f\x37\xd2\xd0\x4c\x7a\xaa\x97\xa3\x32\x52\xa6\x70\xe2\xb1\x1f\x4b\xbc\xb5\xd6\x73\x71\xe9\x02\xab\x26\x25\x3e\x62\x1b\x74\x4a\x7f\x4c\x21\xc0\xee\x68\x22\x2e\x60\x7f\xe1\x29\xa1\x78\x20\x3e\xc5\xcc\x02\x19\x46\x66\xf1\xc6\xe7\xa0\x24\x62\xfa\xb4\xf2\x3b\x8c\xa9\x9e\xfa\x4e\x17\x73\x73\x70\x1f\x33\x55\x3b\x33\x85\xf0\x78\x54\xb0\xae\x76\x95\xbc\x16\x8b\x1b\xbc\xd3\x60\xb7\xaf\x39\xc7\x52\xd3\x2c\x0c\x12\x72\x0e\xac\x81\x81\x1b\x3c\x07\x65\xd4\xd3\x84\x4c\xec\xeb\x84\xa0\x2a\x39\xeb\x83\xff\x9f\xf9\x8c\xfd\xfd\x58\x92\xfe\x1f\x99\x49\xa0\x27\x25\x7d\x1b\x7f\xb4\x9e\x28\xbe\x87\x7b\x89\xb7\xbc\x75\x7e\xdc\x79\x62\xdf\xc2\x0d\x08\x88\xd4\xc4\xc4\xa7\x03\x8d\x51\x51\xd7\x3c\x3e\xdd\xb3\xce\x4e\xb1\xb4\xcd\xa2\xef\x60\xd9\x7c\xca\x72\x6d\xa2\x36\x11\xb8\x83\x6a\x77\x2b\xa0\xe7\x9a\x8b\x04\xa5\xcc\x0b\x2b\x1a\xa6\x70\x89\xed\x27\x72\x86\x50\xa9\xef\x2b\x21\x23\x12\x4d\x82\x1d\x1c\xfa\xa7\x07\x87\xf7\xa5\x53\x6a\xe2\x28\x65\x24\xcb\x5d\xdf\x06\xb6\xfb\x6f\x60\xd0\x71\xf4\xaf\x47\x67\x44\x71\x7f\x53\x22\x1b\x44\xe6\x6a\x44\x28\xbe\x87\x10\x01\x02\x33\xbe\x5a\x4a\xb5\xc1\xfd\x33\x92\x37\x33\x20\xfb\xbe\x0c\x4f\x5a\x8b\x52\xb4\xd8\x7a\x25\x43\xd8\x38\xcc\x17\x86\x57\xbc\x26\x2e\x42\x21\x38\x47\xbb\x67\xab\x1c\x24\xf7\xaa\x33\x5d\xf1\x86\x68\x3e\xcd\x0c\xb5\x1f\x12\x54\x2b\x69\xa1\x3b\x3d\xcc\xfd\xcf\xf4\x3f\x2f\xdd\x9a\x82\x03\x4d\xcc\xc5\x0e\xb0\xe4\x47\x82\x00\x50\xb3\x2e\xe8\x20\x6b\x88\x12\xa6\xbb\xd5\x5a\x12\xac\xff\x0f\x1b\x76\xc5\xd5\x61\xf7\x82\x7d\x09\xc4\xba\x62\x9b\x77\x67\x7b\x70\xf9\x32\x2b\xca\xd0\x28\xc6\xd8\x26\xbd\x07\x5f\x3c\x62\xed\x02\xc0\xe2\x68\x45\xfc\x00\x9f\x1c\xf5\x51\x1f\x9f\x70\xb2\xb8\x81\xee\x4c\x5b\x13\x45\x3d\x24\x14\xf9\xfc\x21\x3f\x56\xb9\x1f\x3a\x73\xc0\xb5\x30\x77\x2f\x4a\x05\xf0\x3d\xd8\x23\x9c\x16\x05\xef\x87\xaf\x7b\x2c\x1e\x06\x5b\x76\x1d\x9b\x87\x51\x7e\x51\x6a\x6a\x9b\x65\x71\x2a\x69\x6b\x32\x46\xfa\x58\xc2\xd5\x3a\x8c\xb3\x47\x06\x75\x2b\x08\xeb\x8b\x18\xfb\x2a\xfa\x05\x51\x8e\x57\x8f\xc8\x87\x04\x7b\x7c\xc8\x65\x19\x3a\x4e\xa0\x96\x59\x2f\x4b\x9c\x2b\xa3\x30\x99\x96\x22\xb9\xc2\xe4\xb0\x33\xad\xf9\xfe\xe8\xb9\x5d\xbe\xfb\xd3\x0a\x35\x3c\xb2\x05\x25\xb9\x72\xf4\x65\x04\xa0\x15\x3e\x0a\x17\x49\x90\xa4\x48\xf3\x4c\x7a\x01\x5e\x2e\xba\x73\x61\xf0\x08\x49\xd9\xdc\x35\x2a\x17\x64\xa0\xc0\x2f\x2b\x6d\xd7\x8f\xfa\x20\x5e\xbd\xf8\x29\xda\xb8\x76\x11\xbf\x5e\x08\x25\x2d\x59\x8a\x89\x32\x90\x95\xdd\x7e\x29\x9c\x2b\x20\xb4\xb7\xbd\x19\x98\x99\x1b\x12\x11\x8b\x0a\x93\x84\x9f\x95\x5b\x2b\x8e\xdf\x25\x33\xa3\x59\x9f\xcb\xd2\x8b\xd3\xcf\x5c\x92\x48\xcb\xfc\xaf\xab\x35\x40\xb4\x28\xf0\xd5\x42\x01\xca\x2a\x84\xa8\xca\xbd\xa5\xc8\xfa\x51\x22\xd3\xa4", 4096); *(uint64_t*)0x20012448 = 0x20012340; *(uint32_t*)0x20012340 = r[2]; *(uint32_t*)0x20012344 = r[2]; *(uint64_t*)0x20012450 = 0x20012380; *(uint64_t*)0x20012458 = 0x20012400; *(uint32_t*)0x20012460 = 0x1000; *(uint32_t*)0x20012464 = 2; *(uint32_t*)0x20012468 = 0x51; *(uint32_t*)0x2001246c = 5; res = -1; res = ((intptr_t(*)(intptr_t,intptr_t,intptr_t,intptr_t,intptr_t,intptr_t))CAST(zx_channel_call))(/*handle=*/r[2], /*options=*/0, /*deadline=*/r[0], /*args=*/0x20012440, /*actual_bytes=*/0x20012480, /*actual_handles=*/0x200124c0); if (res == ZX_OK) { r[3] = *(uint32_t*)0x2001240c; r[4] = *(uint32_t*)0x20012410; } break; case 7: ((intptr_t(*)(intptr_t,intptr_t,intptr_t,intptr_t,intptr_t,intptr_t,intptr_t,intptr_t))CAST(zx_channel_read))(/*handle=*/r[3], /*options=*/0, /*bytes=*/0x20012500, /*num_bytes=*/0x10000, /*handles=*/0x20022500, /*num_handles=*/0, /*actual_bytes=*/0x20022540, /*actual_handles=*/0x20022580); break; case 8: res = -1; res = ((intptr_t(*)(intptr_t,intptr_t,intptr_t,intptr_t,intptr_t,intptr_t))CAST(zx_pager_create_vmo))(/*pager=*/r[4], /*options=*/0, /*port=*/r[4], /*key=*/0x3eb, /*size=*/0x7fb, /*out=*/0x200225c0); if (res == ZX_OK) r[5] = *(uint32_t*)0x200225c0; break; case 9: ((intptr_t(*)(intptr_t,intptr_t,intptr_t,intptr_t))CAST(zx_stream_seek))(/*handle=*/r[5], /*whence=*/0, /*offset=*/0x401, /*out_seek=*/0x20022600); break; case 10: memcpy((void*)0x20000000, "\xc4\xa1\x49\xc2\xda\x0b\x0f\x18\xd2\x3e\x26\xf3\x36\x67\xdb\xe2\xc4\xc1\xd1\x16\x3b\xc4\xc1\xb4\xc6\x85\x0a\x00\x00\x00\x00\xf3\x40\xac\x85\x2f\x47\x0f\xf2\x4a\x00\x44\x79\xa5\x26\xf2\xad", 47); syz_execute_func(/*text=*/0x20000000); break; case 11: syz_future_time(/*when=*/1); break; case 12: syz_job_default(); break; case 13: syz_mmap(/*addr=*/0x20ffb000, /*len=*/0x4000); break; case 14: syz_process_self(); break; case 15: syz_thread_self(); break; case 16: syz_vmar_root_self(); break; } } int main(void) { syz_mmap(/*addr=*/0x20000000, /*len=*/0x1000000); setup_fault(); do_sandbox_none(); return 0; } :255:66: error: use of undeclared identifier 'zx_system_get_performance_info' ((intptr_t(*)(intptr_t,intptr_t,intptr_t,intptr_t,intptr_t))CAST(zx_system_get_performance_info))(/*res=*/0, /*topic=*/0, /*count=*/4, /*info=*/0x20000000, /*output_count=*/0x20000040); ^ 1 error generated. compiler invocation: /syzkaller/shared/fuchsia/prebuilt/third_party/clang/linux-x64/bin/clang [-o /tmp/syz-executor3541493344 -DGOOS_fuchsia=1 -DGOARCH_amd64=1 -DHOSTGOOS_linux=1 -x c - -Wno-deprecated -target x86_64-fuchsia -ldriver -lfdio -lzircon --sysroot /syzkaller/shared/fuchsia/out/x64/zircon_toolchain/obj/zircon/public/sysroot/sysroot -I /syzkaller/shared/fuchsia/sdk/lib/fdio/include -I /syzkaller/shared/fuchsia/zircon/system/ulib/fidl/include -I /syzkaller/shared/fuchsia/src/lib/ddk/include -I /syzkaller/shared/fuchsia/out/x64/fidling/gen/sdk/fidl/fuchsia.device -I /syzkaller/shared/fuchsia/out/x64/fidling/gen/sdk/fidl/fuchsia.device.manager -I /syzkaller/shared/fuchsia/out/x64/fidling/gen/sdk/fidl/fuchsia.hardware.nand -I /syzkaller/shared/fuchsia/out/x64/fidling/gen/sdk/fidl/fuchsia.hardware.power.statecontrol -I /syzkaller/shared/fuchsia/out/x64/fidling/gen/sdk/fidl/fuchsia.hardware.usb.peripheral -I /syzkaller/shared/fuchsia/out/x64/fidling/gen/zircon/vdso/zx -L /syzkaller/shared/fuchsia/out/x64/x64-shared -O2 -pthread -Wall -Werror -Wparentheses -Wunused-const-variable -Wframe-larger-than=16384 -Wno-array-bounds -Wno-unused-command-line-argument] --- FAIL: TestGenerate/fuchsia/amd64/9 (0.47s) csource_test.go:150: opts: {Threaded:true Repeat:true RepeatTimes:0 Procs:0 Slowdown:1 Sandbox:none SandboxArg:9223372036854775807 Leak:false NetInjection:false NetDevices:false NetReset:false Cgroups:false BinfmtMisc:false CloseFDs:false KCSAN:false DevlinkPCI:false NicVF:false USB:false VhciInjection:false Wifi:false IEEE802154:false Sysctl:false Swap:false UseTmpDir:true HandleSegv:false Repro:false Trace:false LegacyOptions:{Collide:false Fault:false FaultCall:0 FaultNth:0}} program: zx_system_get_performance_info(0x0, 0x0, 0x4, &(0x7f0000000000)=""/1, &(0x7f0000000040)) (fail_nth: 1) r0 = syz_future_time(0x1) (async) zx_channel_call$fuchsia_io_FileSeek(0x0, 0x0, r0, &(0x7f0000010140)={&(0x7f0000000080)={{}, 0xffffffffffffffff, 0x2}, &(0x7f00000000c0), &(0x7f0000000100), &(0x7f0000010100), 0x1c, 0x0, 0x10000}, &(0x7f0000010180), &(0x7f00000101c0)) (rerun: 4) zx_process_create(0x0, &(0x7f0000010200)='\x00', 0x1, 0x0, &(0x7f0000010240)=0x0, &(0x7f0000010280)) zx_object_get_child(0x0, 0x0, 0x800, &(0x7f00000102c0)=0x0) zx_process_start(r1, r2, &(0x7f0000010300)="c4817d290e8051bf0065673666450ff7fdc401a1c40009c482f935f1c441fc52d0660fc5f398c4837909c6b1664b0f6ee5f341d8cd", &(0x7f0000010340)=""/4096, 0x0, 0x0) zx_channel_call(r2, 0x0, r0, &(0x7f0000012440)={&(0x7f0000011340)="68b92e90e81a0a65aba68ac3039007c40663fec316f1d3f030eb37cd0f8d9e056bc93cbf8811c6ec84bd43ee1dbc4eb9f291b1ff6296bf0f229b823cf75021ecdd1d843abece20ab3e287801d8a782d9947b008614b221e17c641ae2b5b0307cc6594759aaddde5b89ead9c032e8754ab98f09b03c802934cf4f75a4b153ae626a37333e7f35d166315311f3953ecf02f615822c58ac205d4da75d434ff36da5052a2f5d6c2a15477eb5536c80ee076e9894e6c63c0bf3d3004ce2107385919fcb771beebd389824689fbd28804b23cd933a3ab8d862c1f3cac7352fe4fccfc22d38777d69ba0fa2c820166ae8d351e116f0ca3dcfe6fc6d38f526411d407d0b2f97d822a054f440b05b7598b66e1848b0f2a8c2718f62c2c503fb28c8820626d9f46300f474feda0c816e43d9ed963447e0cd3d473ac3f0633d3d1fe4b43e587c3bfb5d3b9c3fb9472f7593c19a2d573f04796a7655ff5a1c0995834b07b62b79511946216d6c418af8ec0845782f112dfe0b7e4b6b0fb3604b4b2df31177a7c1976de255179553bff2544aa557a454b2657c5b3f0f71cff83c0b92d302d2201b7db36e9d8677dfad29ac432c25ea3b123db4f9240e9202c219a6479f05322aeb7da49f198893bdbfa0bf19a815e63aab70d4bcf3cb8b38f9ee914b43ee33e006d827919ce084d84257cb139979bb144e19cc8745478ea0ffde10d3cf590386497b43f4bc2725ec2d0df94f1a534a1ee8c429400e1078cc58a7bd8d1ded2cf4966766f21b4c07ce40d85593f8642b29652424a85aebdccdd8beba9fbfe6b1414cd3164552e7e49bb930019990dac4751a65be853b953b88eccac92c889c4d95116e94628480baab01a6cd991353ccbc8e78153038f45d9d2dc2c6fb96e37d9bdb69be948f12579371a43969e942ca69387296cf781526b7ef422f4c9bc644827237a03b2a60baaff7703ee33956dc669b1c04c721bf68f343c80b61f35ca1b19559965fd7026a1cec9bd9d92f1450ecbaf42de12042bd630d3445706c56775071deae54f2c531bc8c0be2268a13f12af588057f3ebd3ed17fa09a1a06071ec13e7e7638b15a8e0c55524a90c2d7c79c1b2f427fffaffa26390f1d6cd4abf2169604b2e779a734e06b15d03ed940bbc02ed1203f55dd3fd2957608398fc7265961dda28d626a8ea5edee28a37210c8c7321611e52b4e541c90e0721eda0de5f30cf3885eda30d6ece46263809aa1e5fe88b93106f1e7437faefcce951b197aa5b1f2780aa437cf6a1f9c069fe82d18c57ca9a705cf5202bbd1afc41e1d289a46a434cfd16bb7ce6ee764d5f0e6c81e8486eca116902abad6b98df389eaef8156b8b56325358e01f3ec30d050d9226ecfb0a1d7e2cae6b5ca6738c8cdeba6bc118327d682f8b5957c55617feac811ab2ab6ee3aee63639429f9979db5285c330da8a9f6a306b69cecfb2be3c640f04331fff3789a47445c5125fb99e996f401b319bfce5b08936db9c6f828c682bbe69e866ac0a6b204e02ecefd61142d0c20c1995562bc1fdab582296189a1b34bdb75722e64e7d4f00b8d83fdc2f8fc76971143750acd0d513b81298a2f8c72252cceb73633976f52fc2e93a1ef806ec7957c66eeac4c52f9b584580390c6fa4643e0cad59ad3f58104a728d93bc6869a6f649892eef9ecb3eebcebd34854f8e19db5ac62ba0b67a740bb39b1905e8d345e2ff21b4e25974bd5bc7c862607ddb6ac10cecde59c1a932b2fb5b22c673457bd4a396e3667f4227a276fa1a1b20fb60ff5841af64e981f6c84be84ad1bb10d941d615629654e1d128c9a377ad60b04c3cf2aad7118626eaae0b4068dd623e1a2d98b95524f9db16049ecffd5c8fee7e1bba747a1ee9ec5f67aee0b69951dfa0b587c34beb36be3c16c3ab024eb271f3716499ed5a1795eac3423c37b8fa9d20d1af4e967164263fc60e0cd8e84cfc312b34185f40a7d0777749147f60438653bc3d36a1dad3ea433684464e0c9c12a88c44d862e022992cb4bfa603d1f8d21a0a5bd6c62fc3e8427f196507daed74f62a17ba9781a4740cf7f9c5df12362ded5aaa835c1943c3d93241e9c312bff7232e6e92321400ddacb84b84b1c4120575c5d0246d78ad3e9fd4acbbb5115944d1c39f3e07405baf7dd4bd633c0bfdbaafdb42954eb6206668d53e9947594e4d0911b09036cba8f09f4cc198dc064c68d5a7b848dd2a6a664619611845767f992b1527a62771d36527cc881b5ccc06fbbf864e27dca99a433424bdb6ef631a7c824c246b7222216000dba03d7664c485a2cdfc04042db57164aa760078abb80ed030c0e6c83ae5b9fb4225c7ab72479d1762c730fe1fd9deac13d6cba0d78c01e03c12d9410cfb11ed20166a5780dd5e2eb221aaf424eddde14f4ac8302f16b699713d3225436ed4912aaef584979246f60a5168577856b82c2f809ccea64488fad8de0dccc30e7396c27c60d1da0f294ef98d596707439c35e248849121788643726329c1acd0bd79125240782d8af03b2b5cce2d960b8a9b3c81e1f88b9a07860a916e46053094622c6057af203c842ff84375729030665c5705240949e1b729d29496a29ed39d29317483eec8cbfb7dceac0b0ca6c3fb07aeb6a2368dc767eb07d7ed9cc62b910b801d08989a83f3be58618701c713f298ca7f17eae72510b29568c3159a44a01f7ffaeeddeae9d22c68ea261bc2060bce8a1213142b60b5a8d1e7314fe7fc39364b049d54f2a73cc7780f6ec477cb2738a0cb28a919f2c0cf935c1ef51bbac891338b72813acc379848bfc3b39969aeaa9f2787ddd183c3722a12b0b90f48ce2f7533f00d122c9835280f7fd8a0ad41aa1b08ba6d7dfca7b583c1e03989906040f5984c6699f382909f5939599585232c92776a1b5592712a42d5f44fc21a1882850261042ea98762309ded8799d909d6a406336a5f276fb29e9a8589736ded2e97ebc6f82b5f577d0a07021f4fcd6371c5ed29a5380d9dbf0d0ca34b684631dfb501e2ae243877432dad26a3cd3c94664a295461d6e78d057ef89842bac7a33f6a634b2e374ffac86aee35fd80008ab9809830554d7404e7540f11a7ef273dc846a57eef2b27204be709c3eaea2b305df401e4007f7f2978ebd37190e5e7cbf2d8ee418d6d9fa59ecba7603cba8d2f731733f42e49499c68592f87fea94354e0c066c30a256eab36495b10d082ede4e20630e4d799141cc44801408cd3b28a71c075504b3acc1b69d72ec615275781bf9bbdd87b7d409cf3cdd18e7cc86a164ddb980bf1adac888b7bab3d7c968a46481321c10748b79450303e5aa0860d6fcc4304e80d698866593ff7f18cdd1f93df672c7ce860b192d9e033d8aef00d4685c4165547303848b91bcb2a3956e2d17e51a70a6e383bce71d49be32bd461aec0d691c8849e6b178558e47b28831113fa448e7c950fee79dd5d0190d4c11d29bc2e0477091138e1d3836f1bb86bea2edc7ee8ebfca693022823d4968a067b36c06b0caa8e84633d81ea62e548a4e8709671f0c928a28e524af78ebd0a815aac9f6df611df081b75f5527f3b5a04a501ef02e37afe7aeb077d2d7aab08ccbc243fe69395d77ec5db84c3b6c5c8480afb3b3ce91e6a4dfb9bbeb5e623d1cfeff8b53b1e4f0337a4d8d5b3818517d66704b5756375dd85712ea2ae3c643cb564a9bb8c032ee333d0eccc6fa0170b5dd7a78ad50d7255fa113dfa1b20317b1d4d508967a38306ebe3423233198d6e341339e90d3e31bae9a1528b8f100aec437f656670c2bb3917bf9dff0fc2138cf4de3852c71a0c27ac0e1da61fde7dfe96603fbbe61b7697f4676b73d46f10d092348effa957b9af16aef7fed036ba740eadb9e3ee518700351dd63fd54a7853c6aae180e9cf7e71660178ac8a82b590104827daf9bd1ef078ad56cd393d8c3d0b0c042d27ae4b6f531d02c9f464272a71426d588471c2a6159b36ee76e16585340d1a1831da941556a84eb7684547bba0040dc4198e768c09e38a67562612de6eff630ff92f3c885cc41d31f54b802e6b3b47d51c387d9b3c20b7680dcf0ce71aaa46bfec60eab7f750a534cdb02cfabde84968002558ad22157b0528d13558d2aefcfc47302ef05778e71003c19645d84a511571093fdf67623cde36bc8ca16689b7788841d9f3e0bc1fde3d6a72a98a64aa8b67bf1775b012575dae015b4b0e3a3f96d862f3e75997314bb7ad1e00ede8ba53160eaee9d75f6813ba0a600156e01c1b9ae8cfcf4bf39fbacbc8764cc5656bc812b2541cec7d86c180f5bb38a124427c6966522eeef27ab3ceca125d5a34c832319eb76ca834f09629102c8304a02edc41707e794927c35ac31d6b6c006acd8524dc692878843a291a5d9dec9420aa7fb4d2a7191a5c2e81f6132094391b9ed0f61b0e44a3c2c96fb1309594c37d1a5ab89736e88643add4e2b8c7d9a33eda3d438248597dd2e578eb937874f5b91386511e9f96a8cdd430fb5cb30548cb64380a964356a5205eaaa188e97caced0fc678e6e6b5508614db1a9af942061035338ba7251dd4cd787f7e5465c07121ef8f98da151186ee0c727def8c68885ec3a74a5b69efdaabc97465351b421417c1b79147c9889b39eaf733c4e6b370cc468cde4611e77ee9f29f8cef457b2afdc832d22ee9f01afa23a69ffee441a8e0e02887e00e56864a764f12dfaaa481e9347199fb4dce1ba023d0ccd3843b30ce940d3dd870a3971f5798a53b713216e1ebb754935ddf39e130b4bbdfedae24bbfb943cd3d32fc6711967cf72503ba04d48b68f418a5151b68ccdd3d85b06d720c5aecc7b3d4c83cd3214b6483dfbd6bd571c17e7979f01bc8a5dce334f1888f37d2d04c7aaa97a33252a670e2b11f4bbcb5d67371e902ab26253e621b744a7f4c21c0ee68222e607fe129a178203ec5cc02194666f1c6e7a02462fab4f23b8ca99efa4e177373701f33553b3385f07854b0ae7695bc168b1bbcd360b7af39c752d32c0c12720eac81811b3c0765d4d3844ceceb84a02a39eb83ff9ff98cfdfd5892fe1f9949a027257d1b7fb49e28be877b89b7bc757edc7962dfc20d0888d4c4c4a7038d5151d73c3eddb3ce4eb1b4cda2ef60d97cca726da23611b8836a772ba0e79a8b04a5cc0b2b1aa67089ed27728650a9ef2b2123124d821d1cfaa70787f7a5536ae2286524cb5ddf06b6fb6f60d071f4af476744717f53221b44e66a4428be8710010233be5a4ab5c1fd3392373320fbbe0c4f5a8b52b4d87a2543d838cc178657bc262e42213847bb67ab1c24f7aa335df186683ecd0cb51f12542b69a13b3dccfdcff43f2fdd9a82034dccc50eb0e447820050b32ee8206b8812a6bbd55a12acff0f1b76c5d561f7827d09c4ba629b77677b70f9322bcad028c6d826bd075f3c62ed02c0e26845fc009f1cf5511f9f70b2b881ee4c5b13453d2414f9fc213f56b91f3a73c0b530772f4a05f03dd8239c1605ef87af7b2c1e065b761d9b87517e516a6a9b65712a696b3246fa58c2d53a8cb34706752b08eb8b18fb2afa05518e578fc887047b7cc865193a4ea096592f4b9c2ba330999622b9c2e4b033adf9fee8b95dbefbd30a353cb20525b972f46504a0153e0a174990a448f34c7a015e2eba7361f00849d9dc352a1764a0c02f2b6dd78ffa205ebdf829dab87611bf5e08252d598a89329095dd7e299c2b20b4b7bd1998991b12118b0a93849f955b2b8edf2533a3599fcbd28bd3cf5c9248cbfcafab3540b428f0d54201ca2a84a8cabda5c8fa5122d3a4", &(0x7f0000012340)=[r2, r2], &(0x7f0000012380)=""/81, &(0x7f0000012400)=[0x0, 0x0, 0x0, 0x0, 0x0], 0x1000, 0x2, 0x51, 0x5}, &(0x7f0000012480), &(0x7f00000124c0)) zx_channel_read$fuchsia_io_DirectoryAdminOnOpen(r3, 0x0, &(0x7f0000012500), 0x10000, &(0x7f0000022500), 0x0, &(0x7f0000022540), &(0x7f0000022580)) zx_pager_create_vmo(r4, 0x0, r4, 0x3, 0x7fb, &(0x7f00000225c0)=0x0) zx_stream_seek(r5, 0x0, 0x401, &(0x7f0000022600)) syz_execute_func(&(0x7f0000000000)="c4a149c2da0b0f18d23e26f33667dbe2c4c1d1163bc4c1b4c6850a00000000f340ac852f470ff24a004479a526f2ad") syz_future_time(0x1) syz_job_default() syz_mmap(&(0x7f0000ffb000/0x4000)=nil, 0x4000) syz_process_self() syz_thread_self() syz_vmar_root_self() csource_test.go:151: failed to build program: // autogenerated by syzkaller (https://github.com/google/syzkaller) #define _GNU_SOURCE #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include static void sleep_ms(uint64_t ms) { usleep(ms * 1000); } static uint64_t current_time_ms(void) { struct timespec ts; if (clock_gettime(CLOCK_MONOTONIC, &ts)) exit(1); return (uint64_t)ts.tv_sec * 1000 + (uint64_t)ts.tv_nsec / 1000000; } static void use_temporary_dir(void) { char tmpdir_template[] = "/tmp/syzkaller.XXXXXX"; char* tmpdir = mkdtemp(tmpdir_template); if (!tmpdir) exit(1); if (chmod(tmpdir, 0777)) exit(1); if (chdir(tmpdir)) exit(1); } static int inject_fault(int nth) { return 0; } static void setup_fault() { } static void thread_start(void* (*fn)(void*), void* arg) { pthread_t th; pthread_attr_t attr; pthread_attr_init(&attr); pthread_attr_setstacksize(&attr, 128 << 10); int i = 0; for (; i < 100; i++) { if (pthread_create(&th, &attr, fn, arg) == 0) { pthread_attr_destroy(&attr); return; } if (errno == EAGAIN) { usleep(50); continue; } break; } exit(1); } typedef struct { int state; } event_t; static void event_init(event_t* ev) { ev->state = 0; } static void event_reset(event_t* ev) { ev->state = 0; } static void event_set(event_t* ev) { if (ev->state) exit(1); __atomic_store_n(&ev->state, 1, __ATOMIC_RELEASE); } static void event_wait(event_t* ev) { while (!__atomic_load_n(&ev->state, __ATOMIC_ACQUIRE)) usleep(200); } static int event_isset(event_t* ev) { return __atomic_load_n(&ev->state, __ATOMIC_ACQUIRE); } static int event_timedwait(event_t* ev, uint64_t timeout_ms) { uint64_t start = current_time_ms(); for (;;) { if (__atomic_load_n(&ev->state, __ATOMIC_RELAXED)) return 1; if (current_time_ms() - start > timeout_ms) return 0; usleep(200); } } long syz_mmap(size_t addr, size_t size) { zx_handle_t root = zx_vmar_root_self(); zx_info_vmar_t info; zx_status_t status = zx_object_get_info(root, ZX_INFO_VMAR, &info, sizeof(info), 0, 0); if (status != ZX_OK) { return status; } zx_handle_t vmo; status = zx_vmo_create(size, 0, &vmo); if (status != ZX_OK) { return status; } uintptr_t mapped_addr; status = zx_vmar_map(root, ZX_VM_FLAG_SPECIFIC_OVERWRITE | ZX_VM_FLAG_PERM_READ | ZX_VM_FLAG_PERM_WRITE, addr - info.base, vmo, 0, size, &mapped_addr); zx_status_t close_vmo_status = zx_handle_close(vmo); if (close_vmo_status != ZX_OK) { } return status; } static long syz_process_self(void) { return zx_process_self(); } static long syz_thread_self(void) { return zx_thread_self(); } static long syz_vmar_root_self(void) { return zx_vmar_root_self(); } static long syz_job_default(void) { return zx_job_default(); } static long syz_future_time(volatile long when) { zx_time_t delta_ms = 10000; switch (when) { case 0: delta_ms = 5; break; case 1: delta_ms = 30; break; } zx_time_t now = 0; zx_clock_read(ZX_CLOCK_MONOTONIC, &now); return now + delta_ms * 1000 * 1000; } static void loop(); static int do_sandbox_none(void) { loop(); return 0; } #define CAST(f) ({void* p = (void*)f; p; }) static long syz_execute_func(volatile long text) { ((void (*)(void))(text))(); return 0; } struct thread_t { int created, call; event_t ready, done; }; static struct thread_t threads[16]; static void execute_call(int call); static int running; static void* thr(void* arg) { struct thread_t* th = (struct thread_t*)arg; for (;;) { event_wait(&th->ready); event_reset(&th->ready); execute_call(th->call); __atomic_fetch_sub(&running, 1, __ATOMIC_RELAXED); event_set(&th->done); } return 0; } static void execute_one(void) { int i, call, thread; for (call = 0; call < 17; call++) { for (thread = 0; thread < (int)(sizeof(threads) / sizeof(threads[0])); thread++) { struct thread_t* th = &threads[thread]; if (!th->created) { th->created = 1; event_init(&th->ready); event_init(&th->done); event_set(&th->done); thread_start(thr, th); } if (!event_isset(&th->done)) continue; event_reset(&th->done); th->call = call; __atomic_fetch_add(&running, 1, __ATOMIC_RELAXED); event_set(&th->ready); if (call == 1) break; event_timedwait(&th->done, 50); break; } } for (i = 0; i < 100 && __atomic_load_n(&running, __ATOMIC_RELAXED); i++) sleep_ms(1); } static void execute_one(void); static void loop(void) { execute_one(); } uint64_t r[6] = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0}; void execute_call(int call) { intptr_t res = 0; switch (call) { case 0: inject_fault(1); ((intptr_t(*)(intptr_t,intptr_t,intptr_t,intptr_t,intptr_t))CAST(zx_system_get_performance_info))(/*res=*/0, /*topic=*/0, /*count=*/4, /*info=*/0x20000000, /*output_count=*/0x20000040); break; case 1: res = -1; res = syz_future_time(/*when=*/1); if ((int)res != -1) r[0] = res; break; case 2: *(uint64_t*)0x20010140 = 0x20000080; *(uint32_t*)0x20000080 = 0; memset((void*)0x20000084, 0, 3); *(uint8_t*)0x20000087 = 1; *(uint64_t*)0x20000088 = 0x782a774500000000; *(uint64_t*)0x20000090 = -1; *(uint32_t*)0x20000098 = 2; *(uint64_t*)0x20010148 = 0x200000c0; *(uint64_t*)0x20010150 = 0x20000100; *(uint64_t*)0x20010158 = 0x20010100; *(uint32_t*)0x20010160 = 0x1c; *(uint32_t*)0x20010164 = 0; *(uint32_t*)0x20010168 = 0x10000; *(uint32_t*)0x2001016c = 0; ((intptr_t(*)(intptr_t,intptr_t,intptr_t,intptr_t,intptr_t,intptr_t))CAST(zx_channel_call))(/*handle=*/0, /*options=*/0, /*deadline=*/r[0], /*args=*/0x20010140, /*actual_bytes=*/0x20010180, /*actual_handles=*/0x200101c0); { int i; for(i = 0; i < 4; i++) { ((intptr_t(*)(intptr_t,intptr_t,intptr_t,intptr_t,intptr_t,intptr_t))CAST(zx_channel_call))(/*handle=*/0, /*options=*/0, /*deadline=*/r[0], /*args=*/0x20010140, /*actual_bytes=*/0x20010180, /*actual_handles=*/0x200101c0); } } break; case 3: memset((void*)0x20010200, 0, 1); res = -1; res = ((intptr_t(*)(intptr_t,intptr_t,intptr_t,intptr_t,intptr_t,intptr_t))CAST(zx_process_create))(/*job=*/0, /*name=*/0x20010200, /*name_len=*/1, /*options=*/0, /*proc_handle=*/0x20010240, /*vmar_handle=*/0x20010280); if (res == ZX_OK) r[1] = *(uint32_t*)0x20010240; break; case 4: res = -1; res = ((intptr_t(*)(intptr_t,intptr_t,intptr_t,intptr_t))CAST(zx_object_get_child))(/*handle=*/0, /*koid=*/0, /*rights=*/0x800, /*out=*/0x200102c0); if (res == ZX_OK) r[2] = *(uint32_t*)0x200102c0; break; case 5: memcpy((void*)0x20010300, "\xc4\x81\x7d\x29\x0e\x80\x51\xbf\x00\x65\x67\x36\x66\x45\x0f\xf7\xfd\xc4\x01\xa1\xc4\x00\x09\xc4\x82\xf9\x35\xf1\xc4\x41\xfc\x52\xd0\x66\x0f\xc5\xf3\x98\xc4\x83\x79\x09\xc6\xb1\x66\x4b\x0f\x6e\xe5\xf3\x41\xd8\xcd", 53); ((intptr_t(*)(intptr_t,intptr_t,intptr_t,intptr_t,intptr_t,intptr_t))CAST(zx_process_start))(/*process=*/r[1], /*thread=*/r[2], /*entry=*/0x20010300, /*stack=*/0x20010340, /*arg1=*/0, /*arg2=*/0); break; case 6: *(uint64_t*)0x20012440 = 0x20011340; memcpy((void*)0x20011340, "\x68\xb9\x2e\x90\xe8\x1a\x0a\x65\xab\xa6\x8a\xc3\x03\x90\x07\xc4\x06\x63\xfe\xc3\x16\xf1\xd3\xf0\x30\xeb\x37\xcd\x0f\x8d\x9e\x05\x6b\xc9\x3c\xbf\x88\x11\xc6\xec\x84\xbd\x43\xee\x1d\xbc\x4e\xb9\xf2\x91\xb1\xff\x62\x96\xbf\x0f\x22\x9b\x82\x3c\xf7\x50\x21\xec\xdd\x1d\x84\x3a\xbe\xce\x20\xab\x3e\x28\x78\x01\xd8\xa7\x82\xd9\x94\x7b\x00\x86\x14\xb2\x21\xe1\x7c\x64\x1a\xe2\xb5\xb0\x30\x7c\xc6\x59\x47\x59\xaa\xdd\xde\x5b\x89\xea\xd9\xc0\x32\xe8\x75\x4a\xb9\x8f\x09\xb0\x3c\x80\x29\x34\xcf\x4f\x75\xa4\xb1\x53\xae\x62\x6a\x37\x33\x3e\x7f\x35\xd1\x66\x31\x53\x11\xf3\x95\x3e\xcf\x02\xf6\x15\x82\x2c\x58\xac\x20\x5d\x4d\xa7\x5d\x43\x4f\xf3\x6d\xa5\x05\x2a\x2f\x5d\x6c\x2a\x15\x47\x7e\xb5\x53\x6c\x80\xee\x07\x6e\x98\x94\xe6\xc6\x3c\x0b\xf3\xd3\x00\x4c\xe2\x10\x73\x85\x91\x9f\xcb\x77\x1b\xee\xbd\x38\x98\x24\x68\x9f\xbd\x28\x80\x4b\x23\xcd\x93\x3a\x3a\xb8\xd8\x62\xc1\xf3\xca\xc7\x35\x2f\xe4\xfc\xcf\xc2\x2d\x38\x77\x7d\x69\xba\x0f\xa2\xc8\x20\x16\x6a\xe8\xd3\x51\xe1\x16\xf0\xca\x3d\xcf\xe6\xfc\x6d\x38\xf5\x26\x41\x1d\x40\x7d\x0b\x2f\x97\xd8\x22\xa0\x54\xf4\x40\xb0\x5b\x75\x98\xb6\x6e\x18\x48\xb0\xf2\xa8\xc2\x71\x8f\x62\xc2\xc5\x03\xfb\x28\xc8\x82\x06\x26\xd9\xf4\x63\x00\xf4\x74\xfe\xda\x0c\x81\x6e\x43\xd9\xed\x96\x34\x47\xe0\xcd\x3d\x47\x3a\xc3\xf0\x63\x3d\x3d\x1f\xe4\xb4\x3e\x58\x7c\x3b\xfb\x5d\x3b\x9c\x3f\xb9\x47\x2f\x75\x93\xc1\x9a\x2d\x57\x3f\x04\x79\x6a\x76\x55\xff\x5a\x1c\x09\x95\x83\x4b\x07\xb6\x2b\x79\x51\x19\x46\x21\x6d\x6c\x41\x8a\xf8\xec\x08\x45\x78\x2f\x11\x2d\xfe\x0b\x7e\x4b\x6b\x0f\xb3\x60\x4b\x4b\x2d\xf3\x11\x77\xa7\xc1\x97\x6d\xe2\x55\x17\x95\x53\xbf\xf2\x54\x4a\xa5\x57\xa4\x54\xb2\x65\x7c\x5b\x3f\x0f\x71\xcf\xf8\x3c\x0b\x92\xd3\x02\xd2\x20\x1b\x7d\xb3\x6e\x9d\x86\x77\xdf\xad\x29\xac\x43\x2c\x25\xea\x3b\x12\x3d\xb4\xf9\x24\x0e\x92\x02\xc2\x19\xa6\x47\x9f\x05\x32\x2a\xeb\x7d\xa4\x9f\x19\x88\x93\xbd\xbf\xa0\xbf\x19\xa8\x15\xe6\x3a\xab\x70\xd4\xbc\xf3\xcb\x8b\x38\xf9\xee\x91\x4b\x43\xee\x33\xe0\x06\xd8\x27\x91\x9c\xe0\x84\xd8\x42\x57\xcb\x13\x99\x79\xbb\x14\x4e\x19\xcc\x87\x45\x47\x8e\xa0\xff\xde\x10\xd3\xcf\x59\x03\x86\x49\x7b\x43\xf4\xbc\x27\x25\xec\x2d\x0d\xf9\x4f\x1a\x53\x4a\x1e\xe8\xc4\x29\x40\x0e\x10\x78\xcc\x58\xa7\xbd\x8d\x1d\xed\x2c\xf4\x96\x67\x66\xf2\x1b\x4c\x07\xce\x40\xd8\x55\x93\xf8\x64\x2b\x29\x65\x24\x24\xa8\x5a\xeb\xdc\xcd\xd8\xbe\xba\x9f\xbf\xe6\xb1\x41\x4c\xd3\x16\x45\x52\xe7\xe4\x9b\xb9\x30\x01\x99\x90\xda\xc4\x75\x1a\x65\xbe\x85\x3b\x95\x3b\x88\xec\xca\xc9\x2c\x88\x9c\x4d\x95\x11\x6e\x94\x62\x84\x80\xba\xab\x01\xa6\xcd\x99\x13\x53\xcc\xbc\x8e\x78\x15\x30\x38\xf4\x5d\x9d\x2d\xc2\xc6\xfb\x96\xe3\x7d\x9b\xdb\x69\xbe\x94\x8f\x12\x57\x93\x71\xa4\x39\x69\xe9\x42\xca\x69\x38\x72\x96\xcf\x78\x15\x26\xb7\xef\x42\x2f\x4c\x9b\xc6\x44\x82\x72\x37\xa0\x3b\x2a\x60\xba\xaf\xf7\x70\x3e\xe3\x39\x56\xdc\x66\x9b\x1c\x04\xc7\x21\xbf\x68\xf3\x43\xc8\x0b\x61\xf3\x5c\xa1\xb1\x95\x59\x96\x5f\xd7\x02\x6a\x1c\xec\x9b\xd9\xd9\x2f\x14\x50\xec\xba\xf4\x2d\xe1\x20\x42\xbd\x63\x0d\x34\x45\x70\x6c\x56\x77\x50\x71\xde\xae\x54\xf2\xc5\x31\xbc\x8c\x0b\xe2\x26\x8a\x13\xf1\x2a\xf5\x88\x05\x7f\x3e\xbd\x3e\xd1\x7f\xa0\x9a\x1a\x06\x07\x1e\xc1\x3e\x7e\x76\x38\xb1\x5a\x8e\x0c\x55\x52\x4a\x90\xc2\xd7\xc7\x9c\x1b\x2f\x42\x7f\xff\xaf\xfa\x26\x39\x0f\x1d\x6c\xd4\xab\xf2\x16\x96\x04\xb2\xe7\x79\xa7\x34\xe0\x6b\x15\xd0\x3e\xd9\x40\xbb\xc0\x2e\xd1\x20\x3f\x55\xdd\x3f\xd2\x95\x76\x08\x39\x8f\xc7\x26\x59\x61\xdd\xa2\x8d\x62\x6a\x8e\xa5\xed\xee\x28\xa3\x72\x10\xc8\xc7\x32\x16\x11\xe5\x2b\x4e\x54\x1c\x90\xe0\x72\x1e\xda\x0d\xe5\xf3\x0c\xf3\x88\x5e\xda\x30\xd6\xec\xe4\x62\x63\x80\x9a\xa1\xe5\xfe\x88\xb9\x31\x06\xf1\xe7\x43\x7f\xae\xfc\xce\x95\x1b\x19\x7a\xa5\xb1\xf2\x78\x0a\xa4\x37\xcf\x6a\x1f\x9c\x06\x9f\xe8\x2d\x18\xc5\x7c\xa9\xa7\x05\xcf\x52\x02\xbb\xd1\xaf\xc4\x1e\x1d\x28\x9a\x46\xa4\x34\xcf\xd1\x6b\xb7\xce\x6e\xe7\x64\xd5\xf0\xe6\xc8\x1e\x84\x86\xec\xa1\x16\x90\x2a\xba\xd6\xb9\x8d\xf3\x89\xea\xef\x81\x56\xb8\xb5\x63\x25\x35\x8e\x01\xf3\xec\x30\xd0\x50\xd9\x22\x6e\xcf\xb0\xa1\xd7\xe2\xca\xe6\xb5\xca\x67\x38\xc8\xcd\xeb\xa6\xbc\x11\x83\x27\xd6\x82\xf8\xb5\x95\x7c\x55\x61\x7f\xea\xc8\x11\xab\x2a\xb6\xee\x3a\xee\x63\x63\x94\x29\xf9\x97\x9d\xb5\x28\x5c\x33\x0d\xa8\xa9\xf6\xa3\x06\xb6\x9c\xec\xfb\x2b\xe3\xc6\x40\xf0\x43\x31\xff\xf3\x78\x9a\x47\x44\x5c\x51\x25\xfb\x99\xe9\x96\xf4\x01\xb3\x19\xbf\xce\x5b\x08\x93\x6d\xb9\xc6\xf8\x28\xc6\x82\xbb\xe6\x9e\x86\x6a\xc0\xa6\xb2\x04\xe0\x2e\xce\xfd\x61\x14\x2d\x0c\x20\xc1\x99\x55\x62\xbc\x1f\xda\xb5\x82\x29\x61\x89\xa1\xb3\x4b\xdb\x75\x72\x2e\x64\xe7\xd4\xf0\x0b\x8d\x83\xfd\xc2\xf8\xfc\x76\x97\x11\x43\x75\x0a\xcd\x0d\x51\x3b\x81\x29\x8a\x2f\x8c\x72\x25\x2c\xce\xb7\x36\x33\x97\x6f\x52\xfc\x2e\x93\xa1\xef\x80\x6e\xc7\x95\x7c\x66\xee\xac\x4c\x52\xf9\xb5\x84\x58\x03\x90\xc6\xfa\x46\x43\xe0\xca\xd5\x9a\xd3\xf5\x81\x04\xa7\x28\xd9\x3b\xc6\x86\x9a\x6f\x64\x98\x92\xee\xf9\xec\xb3\xee\xbc\xeb\xd3\x48\x54\xf8\xe1\x9d\xb5\xac\x62\xba\x0b\x67\xa7\x40\xbb\x39\xb1\x90\x5e\x8d\x34\x5e\x2f\xf2\x1b\x4e\x25\x97\x4b\xd5\xbc\x7c\x86\x26\x07\xdd\xb6\xac\x10\xce\xcd\xe5\x9c\x1a\x93\x2b\x2f\xb5\xb2\x2c\x67\x34\x57\xbd\x4a\x39\x6e\x36\x67\xf4\x22\x7a\x27\x6f\xa1\xa1\xb2\x0f\xb6\x0f\xf5\x84\x1a\xf6\x4e\x98\x1f\x6c\x84\xbe\x84\xad\x1b\xb1\x0d\x94\x1d\x61\x56\x29\x65\x4e\x1d\x12\x8c\x9a\x37\x7a\xd6\x0b\x04\xc3\xcf\x2a\xad\x71\x18\x62\x6e\xaa\xe0\xb4\x06\x8d\xd6\x23\xe1\xa2\xd9\x8b\x95\x52\x4f\x9d\xb1\x60\x49\xec\xff\xd5\xc8\xfe\xe7\xe1\xbb\xa7\x47\xa1\xee\x9e\xc5\xf6\x7a\xee\x0b\x69\x95\x1d\xfa\x0b\x58\x7c\x34\xbe\xb3\x6b\xe3\xc1\x6c\x3a\xb0\x24\xeb\x27\x1f\x37\x16\x49\x9e\xd5\xa1\x79\x5e\xac\x34\x23\xc3\x7b\x8f\xa9\xd2\x0d\x1a\xf4\xe9\x67\x16\x42\x63\xfc\x60\xe0\xcd\x8e\x84\xcf\xc3\x12\xb3\x41\x85\xf4\x0a\x7d\x07\x77\x74\x91\x47\xf6\x04\x38\x65\x3b\xc3\xd3\x6a\x1d\xad\x3e\xa4\x33\x68\x44\x64\xe0\xc9\xc1\x2a\x88\xc4\x4d\x86\x2e\x02\x29\x92\xcb\x4b\xfa\x60\x3d\x1f\x8d\x21\xa0\xa5\xbd\x6c\x62\xfc\x3e\x84\x27\xf1\x96\x50\x7d\xae\xd7\x4f\x62\xa1\x7b\xa9\x78\x1a\x47\x40\xcf\x7f\x9c\x5d\xf1\x23\x62\xde\xd5\xaa\xa8\x35\xc1\x94\x3c\x3d\x93\x24\x1e\x9c\x31\x2b\xff\x72\x32\xe6\xe9\x23\x21\x40\x0d\xda\xcb\x84\xb8\x4b\x1c\x41\x20\x57\x5c\x5d\x02\x46\xd7\x8a\xd3\xe9\xfd\x4a\xcb\xbb\x51\x15\x94\x4d\x1c\x39\xf3\xe0\x74\x05\xba\xf7\xdd\x4b\xd6\x33\xc0\xbf\xdb\xaa\xfd\xb4\x29\x54\xeb\x62\x06\x66\x8d\x53\xe9\x94\x75\x94\xe4\xd0\x91\x1b\x09\x03\x6c\xba\x8f\x09\xf4\xcc\x19\x8d\xc0\x64\xc6\x8d\x5a\x7b\x84\x8d\xd2\xa6\xa6\x64\x61\x96\x11\x84\x57\x67\xf9\x92\xb1\x52\x7a\x62\x77\x1d\x36\x52\x7c\xc8\x81\xb5\xcc\xc0\x6f\xbb\xf8\x64\xe2\x7d\xca\x99\xa4\x33\x42\x4b\xdb\x6e\xf6\x31\xa7\xc8\x24\xc2\x46\xb7\x22\x22\x16\x00\x0d\xba\x03\xd7\x66\x4c\x48\x5a\x2c\xdf\xc0\x40\x42\xdb\x57\x16\x4a\xa7\x60\x07\x8a\xbb\x80\xed\x03\x0c\x0e\x6c\x83\xae\x5b\x9f\xb4\x22\x5c\x7a\xb7\x24\x79\xd1\x76\x2c\x73\x0f\xe1\xfd\x9d\xea\xc1\x3d\x6c\xba\x0d\x78\xc0\x1e\x03\xc1\x2d\x94\x10\xcf\xb1\x1e\xd2\x01\x66\xa5\x78\x0d\xd5\xe2\xeb\x22\x1a\xaf\x42\x4e\xdd\xde\x14\xf4\xac\x83\x02\xf1\x6b\x69\x97\x13\xd3\x22\x54\x36\xed\x49\x12\xaa\xef\x58\x49\x79\x24\x6f\x60\xa5\x16\x85\x77\x85\x6b\x82\xc2\xf8\x09\xcc\xea\x64\x48\x8f\xad\x8d\xe0\xdc\xcc\x30\xe7\x39\x6c\x27\xc6\x0d\x1d\xa0\xf2\x94\xef\x98\xd5\x96\x70\x74\x39\xc3\x5e\x24\x88\x49\x12\x17\x88\x64\x37\x26\x32\x9c\x1a\xcd\x0b\xd7\x91\x25\x24\x07\x82\xd8\xaf\x03\xb2\xb5\xcc\xe2\xd9\x60\xb8\xa9\xb3\xc8\x1e\x1f\x88\xb9\xa0\x78\x60\xa9\x16\xe4\x60\x53\x09\x46\x22\xc6\x05\x7a\xf2\x03\xc8\x42\xff\x84\x37\x57\x29\x03\x06\x65\xc5\x70\x52\x40\x94\x9e\x1b\x72\x9d\x29\x49\x6a\x29\xed\x39\xd2\x93\x17\x48\x3e\xec\x8c\xbf\xb7\xdc\xea\xc0\xb0\xca\x6c\x3f\xb0\x7a\xeb\x6a\x23\x68\xdc\x76\x7e\xb0\x7d\x7e\xd9\xcc\x62\xb9\x10\xb8\x01\xd0\x89\x89\xa8\x3f\x3b\xe5\x86\x18\x70\x1c\x71\x3f\x29\x8c\xa7\xf1\x7e\xae\x72\x51\x0b\x29\x56\x8c\x31\x59\xa4\x4a\x01\xf7\xff\xae\xed\xde\xae\x9d\x22\xc6\x8e\xa2\x61\xbc\x20\x60\xbc\xe8\xa1\x21\x31\x42\xb6\x0b\x5a\x8d\x1e\x73\x14\xfe\x7f\xc3\x93\x64\xb0\x49\xd5\x4f\x2a\x73\xcc\x77\x80\xf6\xec\x47\x7c\xb2\x73\x8a\x0c\xb2\x8a\x91\x9f\x2c\x0c\xf9\x35\xc1\xef\x51\xbb\xac\x89\x13\x38\xb7\x28\x13\xac\xc3\x79\x84\x8b\xfc\x3b\x39\x96\x9a\xea\xa9\xf2\x78\x7d\xdd\x18\x3c\x37\x22\xa1\x2b\x0b\x90\xf4\x8c\xe2\xf7\x53\x3f\x00\xd1\x22\xc9\x83\x52\x80\xf7\xfd\x8a\x0a\xd4\x1a\xa1\xb0\x8b\xa6\xd7\xdf\xca\x7b\x58\x3c\x1e\x03\x98\x99\x06\x04\x0f\x59\x84\xc6\x69\x9f\x38\x29\x09\xf5\x93\x95\x99\x58\x52\x32\xc9\x27\x76\xa1\xb5\x59\x27\x12\xa4\x2d\x5f\x44\xfc\x21\xa1\x88\x28\x50\x26\x10\x42\xea\x98\x76\x23\x09\xde\xd8\x79\x9d\x90\x9d\x6a\x40\x63\x36\xa5\xf2\x76\xfb\x29\xe9\xa8\x58\x97\x36\xde\xd2\xe9\x7e\xbc\x6f\x82\xb5\xf5\x77\xd0\xa0\x70\x21\xf4\xfc\xd6\x37\x1c\x5e\xd2\x9a\x53\x80\xd9\xdb\xf0\xd0\xca\x34\xb6\x84\x63\x1d\xfb\x50\x1e\x2a\xe2\x43\x87\x74\x32\xda\xd2\x6a\x3c\xd3\xc9\x46\x64\xa2\x95\x46\x1d\x6e\x78\xd0\x57\xef\x89\x84\x2b\xac\x7a\x33\xf6\xa6\x34\xb2\xe3\x74\xff\xac\x86\xae\xe3\x5f\xd8\x00\x08\xab\x98\x09\x83\x05\x54\xd7\x40\x4e\x75\x40\xf1\x1a\x7e\xf2\x73\xdc\x84\x6a\x57\xee\xf2\xb2\x72\x04\xbe\x70\x9c\x3e\xae\xa2\xb3\x05\xdf\x40\x1e\x40\x07\xf7\xf2\x97\x8e\xbd\x37\x19\x0e\x5e\x7c\xbf\x2d\x8e\xe4\x18\xd6\xd9\xfa\x59\xec\xba\x76\x03\xcb\xa8\xd2\xf7\x31\x73\x3f\x42\xe4\x94\x99\xc6\x85\x92\xf8\x7f\xea\x94\x35\x4e\x0c\x06\x6c\x30\xa2\x56\xea\xb3\x64\x95\xb1\x0d\x08\x2e\xde\x4e\x20\x63\x0e\x4d\x79\x91\x41\xcc\x44\x80\x14\x08\xcd\x3b\x28\xa7\x1c\x07\x55\x04\xb3\xac\xc1\xb6\x9d\x72\xec\x61\x52\x75\x78\x1b\xf9\xbb\xdd\x87\xb7\xd4\x09\xcf\x3c\xdd\x18\xe7\xcc\x86\xa1\x64\xdd\xb9\x80\xbf\x1a\xda\xc8\x88\xb7\xba\xb3\xd7\xc9\x68\xa4\x64\x81\x32\x1c\x10\x74\x8b\x79\x45\x03\x03\xe5\xaa\x08\x60\xd6\xfc\xc4\x30\x4e\x80\xd6\x98\x86\x65\x93\xff\x7f\x18\xcd\xd1\xf9\x3d\xf6\x72\xc7\xce\x86\x0b\x19\x2d\x9e\x03\x3d\x8a\xef\x00\xd4\x68\x5c\x41\x65\x54\x73\x03\x84\x8b\x91\xbc\xb2\xa3\x95\x6e\x2d\x17\xe5\x1a\x70\xa6\xe3\x83\xbc\xe7\x1d\x49\xbe\x32\xbd\x46\x1a\xec\x0d\x69\x1c\x88\x49\xe6\xb1\x78\x55\x8e\x47\xb2\x88\x31\x11\x3f\xa4\x48\xe7\xc9\x50\xfe\xe7\x9d\xd5\xd0\x19\x0d\x4c\x11\xd2\x9b\xc2\xe0\x47\x70\x91\x13\x8e\x1d\x38\x36\xf1\xbb\x86\xbe\xa2\xed\xc7\xee\x8e\xbf\xca\x69\x30\x22\x82\x3d\x49\x68\xa0\x67\xb3\x6c\x06\xb0\xca\xa8\xe8\x46\x33\xd8\x1e\xa6\x2e\x54\x8a\x4e\x87\x09\x67\x1f\x0c\x92\x8a\x28\xe5\x24\xaf\x78\xeb\xd0\xa8\x15\xaa\xc9\xf6\xdf\x61\x1d\xf0\x81\xb7\x5f\x55\x27\xf3\xb5\xa0\x4a\x50\x1e\xf0\x2e\x37\xaf\xe7\xae\xb0\x77\xd2\xd7\xaa\xb0\x8c\xcb\xc2\x43\xfe\x69\x39\x5d\x77\xec\x5d\xb8\x4c\x3b\x6c\x5c\x84\x80\xaf\xb3\xb3\xce\x91\xe6\xa4\xdf\xb9\xbb\xeb\x5e\x62\x3d\x1c\xfe\xff\x8b\x53\xb1\xe4\xf0\x33\x7a\x4d\x8d\x5b\x38\x18\x51\x7d\x66\x70\x4b\x57\x56\x37\x5d\xd8\x57\x12\xea\x2a\xe3\xc6\x43\xcb\x56\x4a\x9b\xb8\xc0\x32\xee\x33\x3d\x0e\xcc\xc6\xfa\x01\x70\xb5\xdd\x7a\x78\xad\x50\xd7\x25\x5f\xa1\x13\xdf\xa1\xb2\x03\x17\xb1\xd4\xd5\x08\x96\x7a\x38\x30\x6e\xbe\x34\x23\x23\x31\x98\xd6\xe3\x41\x33\x9e\x90\xd3\xe3\x1b\xae\x9a\x15\x28\xb8\xf1\x00\xae\xc4\x37\xf6\x56\x67\x0c\x2b\xb3\x91\x7b\xf9\xdf\xf0\xfc\x21\x38\xcf\x4d\xe3\x85\x2c\x71\xa0\xc2\x7a\xc0\xe1\xda\x61\xfd\xe7\xdf\xe9\x66\x03\xfb\xbe\x61\xb7\x69\x7f\x46\x76\xb7\x3d\x46\xf1\x0d\x09\x23\x48\xef\xfa\x95\x7b\x9a\xf1\x6a\xef\x7f\xed\x03\x6b\xa7\x40\xea\xdb\x9e\x3e\xe5\x18\x70\x03\x51\xdd\x63\xfd\x54\xa7\x85\x3c\x6a\xae\x18\x0e\x9c\xf7\xe7\x16\x60\x17\x8a\xc8\xa8\x2b\x59\x01\x04\x82\x7d\xaf\x9b\xd1\xef\x07\x8a\xd5\x6c\xd3\x93\xd8\xc3\xd0\xb0\xc0\x42\xd2\x7a\xe4\xb6\xf5\x31\xd0\x2c\x9f\x46\x42\x72\xa7\x14\x26\xd5\x88\x47\x1c\x2a\x61\x59\xb3\x6e\xe7\x6e\x16\x58\x53\x40\xd1\xa1\x83\x1d\xa9\x41\x55\x6a\x84\xeb\x76\x84\x54\x7b\xba\x00\x40\xdc\x41\x98\xe7\x68\xc0\x9e\x38\xa6\x75\x62\x61\x2d\xe6\xef\xf6\x30\xff\x92\xf3\xc8\x85\xcc\x41\xd3\x1f\x54\xb8\x02\xe6\xb3\xb4\x7d\x51\xc3\x87\xd9\xb3\xc2\x0b\x76\x80\xdc\xf0\xce\x71\xaa\xa4\x6b\xfe\xc6\x0e\xab\x7f\x75\x0a\x53\x4c\xdb\x02\xcf\xab\xde\x84\x96\x80\x02\x55\x8a\xd2\x21\x57\xb0\x52\x8d\x13\x55\x8d\x2a\xef\xcf\xc4\x73\x02\xef\x05\x77\x8e\x71\x00\x3c\x19\x64\x5d\x84\xa5\x11\x57\x10\x93\xfd\xf6\x76\x23\xcd\xe3\x6b\xc8\xca\x16\x68\x9b\x77\x88\x84\x1d\x9f\x3e\x0b\xc1\xfd\xe3\xd6\xa7\x2a\x98\xa6\x4a\xa8\xb6\x7b\xf1\x77\x5b\x01\x25\x75\xda\xe0\x15\xb4\xb0\xe3\xa3\xf9\x6d\x86\x2f\x3e\x75\x99\x73\x14\xbb\x7a\xd1\xe0\x0e\xde\x8b\xa5\x31\x60\xea\xee\x9d\x75\xf6\x81\x3b\xa0\xa6\x00\x15\x6e\x01\xc1\xb9\xae\x8c\xfc\xf4\xbf\x39\xfb\xac\xbc\x87\x64\xcc\x56\x56\xbc\x81\x2b\x25\x41\xce\xc7\xd8\x6c\x18\x0f\x5b\xb3\x8a\x12\x44\x27\xc6\x96\x65\x22\xee\xef\x27\xab\x3c\xec\xa1\x25\xd5\xa3\x4c\x83\x23\x19\xeb\x76\xca\x83\x4f\x09\x62\x91\x02\xc8\x30\x4a\x02\xed\xc4\x17\x07\xe7\x94\x92\x7c\x35\xac\x31\xd6\xb6\xc0\x06\xac\xd8\x52\x4d\xc6\x92\x87\x88\x43\xa2\x91\xa5\xd9\xde\xc9\x42\x0a\xa7\xfb\x4d\x2a\x71\x91\xa5\xc2\xe8\x1f\x61\x32\x09\x43\x91\xb9\xed\x0f\x61\xb0\xe4\x4a\x3c\x2c\x96\xfb\x13\x09\x59\x4c\x37\xd1\xa5\xab\x89\x73\x6e\x88\x64\x3a\xdd\x4e\x2b\x8c\x7d\x9a\x33\xed\xa3\xd4\x38\x24\x85\x97\xdd\x2e\x57\x8e\xb9\x37\x87\x4f\x5b\x91\x38\x65\x11\xe9\xf9\x6a\x8c\xdd\x43\x0f\xb5\xcb\x30\x54\x8c\xb6\x43\x80\xa9\x64\x35\x6a\x52\x05\xea\xaa\x18\x8e\x97\xca\xce\xd0\xfc\x67\x8e\x6e\x6b\x55\x08\x61\x4d\xb1\xa9\xaf\x94\x20\x61\x03\x53\x38\xba\x72\x51\xdd\x4c\xd7\x87\xf7\xe5\x46\x5c\x07\x12\x1e\xf8\xf9\x8d\xa1\x51\x18\x6e\xe0\xc7\x27\xde\xf8\xc6\x88\x85\xec\x3a\x74\xa5\xb6\x9e\xfd\xaa\xbc\x97\x46\x53\x51\xb4\x21\x41\x7c\x1b\x79\x14\x7c\x98\x89\xb3\x9e\xaf\x73\x3c\x4e\x6b\x37\x0c\xc4\x68\xcd\xe4\x61\x1e\x77\xee\x9f\x29\xf8\xce\xf4\x57\xb2\xaf\xdc\x83\x2d\x22\xee\x9f\x01\xaf\xa2\x3a\x69\xff\xee\x44\x1a\x8e\x0e\x02\x88\x7e\x00\xe5\x68\x64\xa7\x64\xf1\x2d\xfa\xaa\x48\x1e\x93\x47\x19\x9f\xb4\xdc\xe1\xba\x02\x3d\x0c\xcd\x38\x43\xb3\x0c\xe9\x40\xd3\xdd\x87\x0a\x39\x71\xf5\x79\x8a\x53\xb7\x13\x21\x6e\x1e\xbb\x75\x49\x35\xdd\xf3\x9e\x13\x0b\x4b\xbd\xfe\xda\xe2\x4b\xbf\xb9\x43\xcd\x3d\x32\xfc\x67\x11\x96\x7c\xf7\x25\x03\xba\x04\xd4\x8b\x68\xf4\x18\xa5\x15\x1b\x68\xcc\xdd\x3d\x85\xb0\x6d\x72\x0c\x5a\xec\xc7\xb3\xd4\xc8\x3c\xd3\x21\x4b\x64\x83\xdf\xbd\x6b\xd5\x71\xc1\x7e\x79\x79\xf0\x1b\xc8\xa5\xdc\xe3\x34\xf1\x88\x8f\x37\xd2\xd0\x4c\x7a\xaa\x97\xa3\x32\x52\xa6\x70\xe2\xb1\x1f\x4b\xbc\xb5\xd6\x73\x71\xe9\x02\xab\x26\x25\x3e\x62\x1b\x74\x4a\x7f\x4c\x21\xc0\xee\x68\x22\x2e\x60\x7f\xe1\x29\xa1\x78\x20\x3e\xc5\xcc\x02\x19\x46\x66\xf1\xc6\xe7\xa0\x24\x62\xfa\xb4\xf2\x3b\x8c\xa9\x9e\xfa\x4e\x17\x73\x73\x70\x1f\x33\x55\x3b\x33\x85\xf0\x78\x54\xb0\xae\x76\x95\xbc\x16\x8b\x1b\xbc\xd3\x60\xb7\xaf\x39\xc7\x52\xd3\x2c\x0c\x12\x72\x0e\xac\x81\x81\x1b\x3c\x07\x65\xd4\xd3\x84\x4c\xec\xeb\x84\xa0\x2a\x39\xeb\x83\xff\x9f\xf9\x8c\xfd\xfd\x58\x92\xfe\x1f\x99\x49\xa0\x27\x25\x7d\x1b\x7f\xb4\x9e\x28\xbe\x87\x7b\x89\xb7\xbc\x75\x7e\xdc\x79\x62\xdf\xc2\x0d\x08\x88\xd4\xc4\xc4\xa7\x03\x8d\x51\x51\xd7\x3c\x3e\xdd\xb3\xce\x4e\xb1\xb4\xcd\xa2\xef\x60\xd9\x7c\xca\x72\x6d\xa2\x36\x11\xb8\x83\x6a\x77\x2b\xa0\xe7\x9a\x8b\x04\xa5\xcc\x0b\x2b\x1a\xa6\x70\x89\xed\x27\x72\x86\x50\xa9\xef\x2b\x21\x23\x12\x4d\x82\x1d\x1c\xfa\xa7\x07\x87\xf7\xa5\x53\x6a\xe2\x28\x65\x24\xcb\x5d\xdf\x06\xb6\xfb\x6f\x60\xd0\x71\xf4\xaf\x47\x67\x44\x71\x7f\x53\x22\x1b\x44\xe6\x6a\x44\x28\xbe\x87\x10\x01\x02\x33\xbe\x5a\x4a\xb5\xc1\xfd\x33\x92\x37\x33\x20\xfb\xbe\x0c\x4f\x5a\x8b\x52\xb4\xd8\x7a\x25\x43\xd8\x38\xcc\x17\x86\x57\xbc\x26\x2e\x42\x21\x38\x47\xbb\x67\xab\x1c\x24\xf7\xaa\x33\x5d\xf1\x86\x68\x3e\xcd\x0c\xb5\x1f\x12\x54\x2b\x69\xa1\x3b\x3d\xcc\xfd\xcf\xf4\x3f\x2f\xdd\x9a\x82\x03\x4d\xcc\xc5\x0e\xb0\xe4\x47\x82\x00\x50\xb3\x2e\xe8\x20\x6b\x88\x12\xa6\xbb\xd5\x5a\x12\xac\xff\x0f\x1b\x76\xc5\xd5\x61\xf7\x82\x7d\x09\xc4\xba\x62\x9b\x77\x67\x7b\x70\xf9\x32\x2b\xca\xd0\x28\xc6\xd8\x26\xbd\x07\x5f\x3c\x62\xed\x02\xc0\xe2\x68\x45\xfc\x00\x9f\x1c\xf5\x51\x1f\x9f\x70\xb2\xb8\x81\xee\x4c\x5b\x13\x45\x3d\x24\x14\xf9\xfc\x21\x3f\x56\xb9\x1f\x3a\x73\xc0\xb5\x30\x77\x2f\x4a\x05\xf0\x3d\xd8\x23\x9c\x16\x05\xef\x87\xaf\x7b\x2c\x1e\x06\x5b\x76\x1d\x9b\x87\x51\x7e\x51\x6a\x6a\x9b\x65\x71\x2a\x69\x6b\x32\x46\xfa\x58\xc2\xd5\x3a\x8c\xb3\x47\x06\x75\x2b\x08\xeb\x8b\x18\xfb\x2a\xfa\x05\x51\x8e\x57\x8f\xc8\x87\x04\x7b\x7c\xc8\x65\x19\x3a\x4e\xa0\x96\x59\x2f\x4b\x9c\x2b\xa3\x30\x99\x96\x22\xb9\xc2\xe4\xb0\x33\xad\xf9\xfe\xe8\xb9\x5d\xbe\xfb\xd3\x0a\x35\x3c\xb2\x05\x25\xb9\x72\xf4\x65\x04\xa0\x15\x3e\x0a\x17\x49\x90\xa4\x48\xf3\x4c\x7a\x01\x5e\x2e\xba\x73\x61\xf0\x08\x49\xd9\xdc\x35\x2a\x17\x64\xa0\xc0\x2f\x2b\x6d\xd7\x8f\xfa\x20\x5e\xbd\xf8\x29\xda\xb8\x76\x11\xbf\x5e\x08\x25\x2d\x59\x8a\x89\x32\x90\x95\xdd\x7e\x29\x9c\x2b\x20\xb4\xb7\xbd\x19\x98\x99\x1b\x12\x11\x8b\x0a\x93\x84\x9f\x95\x5b\x2b\x8e\xdf\x25\x33\xa3\x59\x9f\xcb\xd2\x8b\xd3\xcf\x5c\x92\x48\xcb\xfc\xaf\xab\x35\x40\xb4\x28\xf0\xd5\x42\x01\xca\x2a\x84\xa8\xca\xbd\xa5\xc8\xfa\x51\x22\xd3\xa4", 4096); *(uint64_t*)0x20012448 = 0x20012340; *(uint32_t*)0x20012340 = r[2]; *(uint32_t*)0x20012344 = r[2]; *(uint64_t*)0x20012450 = 0x20012380; *(uint64_t*)0x20012458 = 0x20012400; *(uint32_t*)0x20012460 = 0x1000; *(uint32_t*)0x20012464 = 2; *(uint32_t*)0x20012468 = 0x51; *(uint32_t*)0x2001246c = 5; res = -1; res = ((intptr_t(*)(intptr_t,intptr_t,intptr_t,intptr_t,intptr_t,intptr_t))CAST(zx_channel_call))(/*handle=*/r[2], /*options=*/0, /*deadline=*/r[0], /*args=*/0x20012440, /*actual_bytes=*/0x20012480, /*actual_handles=*/0x200124c0); if (res == ZX_OK) { r[3] = *(uint32_t*)0x2001240c; r[4] = *(uint32_t*)0x20012410; } break; case 7: ((intptr_t(*)(intptr_t,intptr_t,intptr_t,intptr_t,intptr_t,intptr_t,intptr_t,intptr_t))CAST(zx_channel_read))(/*handle=*/r[3], /*options=*/0, /*bytes=*/0x20012500, /*num_bytes=*/0x10000, /*handles=*/0x20022500, /*num_handles=*/0, /*actual_bytes=*/0x20022540, /*actual_handles=*/0x20022580); break; case 8: res = -1; res = ((intptr_t(*)(intptr_t,intptr_t,intptr_t,intptr_t,intptr_t,intptr_t))CAST(zx_pager_create_vmo))(/*pager=*/r[4], /*options=*/0, /*port=*/r[4], /*key=*/0x3eb, /*size=*/0x7fb, /*out=*/0x200225c0); if (res == ZX_OK) r[5] = *(uint32_t*)0x200225c0; break; case 9: ((intptr_t(*)(intptr_t,intptr_t,intptr_t,intptr_t))CAST(zx_stream_seek))(/*handle=*/r[5], /*whence=*/0, /*offset=*/0x401, /*out_seek=*/0x20022600); break; case 10: memcpy((void*)0x20000000, "\xc4\xa1\x49\xc2\xda\x0b\x0f\x18\xd2\x3e\x26\xf3\x36\x67\xdb\xe2\xc4\xc1\xd1\x16\x3b\xc4\xc1\xb4\xc6\x85\x0a\x00\x00\x00\x00\xf3\x40\xac\x85\x2f\x47\x0f\xf2\x4a\x00\x44\x79\xa5\x26\xf2\xad", 47); syz_execute_func(/*text=*/0x20000000); break; case 11: syz_future_time(/*when=*/1); break; case 12: syz_job_default(); break; case 13: syz_mmap(/*addr=*/0x20ffb000, /*len=*/0x4000); break; case 14: syz_process_self(); break; case 15: syz_thread_self(); break; case 16: syz_vmar_root_self(); break; } } int main(void) { syz_mmap(/*addr=*/0x20000000, /*len=*/0x1000000); setup_fault(); use_temporary_dir(); do_sandbox_none(); return 0; } :267:66: error: use of undeclared identifier 'zx_system_get_performance_info' ((intptr_t(*)(intptr_t,intptr_t,intptr_t,intptr_t,intptr_t))CAST(zx_system_get_performance_info))(/*res=*/0, /*topic=*/0, /*count=*/4, /*info=*/0x20000000, /*output_count=*/0x20000040); ^ 1 error generated. compiler invocation: /syzkaller/shared/fuchsia/prebuilt/third_party/clang/linux-x64/bin/clang [-o /tmp/syz-executor1168447230 -DGOOS_fuchsia=1 -DGOARCH_amd64=1 -DHOSTGOOS_linux=1 -x c - -Wno-deprecated -target x86_64-fuchsia -ldriver -lfdio -lzircon --sysroot /syzkaller/shared/fuchsia/out/x64/zircon_toolchain/obj/zircon/public/sysroot/sysroot -I /syzkaller/shared/fuchsia/sdk/lib/fdio/include -I /syzkaller/shared/fuchsia/zircon/system/ulib/fidl/include -I /syzkaller/shared/fuchsia/src/lib/ddk/include -I /syzkaller/shared/fuchsia/out/x64/fidling/gen/sdk/fidl/fuchsia.device -I /syzkaller/shared/fuchsia/out/x64/fidling/gen/sdk/fidl/fuchsia.device.manager -I /syzkaller/shared/fuchsia/out/x64/fidling/gen/sdk/fidl/fuchsia.hardware.nand -I /syzkaller/shared/fuchsia/out/x64/fidling/gen/sdk/fidl/fuchsia.hardware.power.statecontrol -I /syzkaller/shared/fuchsia/out/x64/fidling/gen/sdk/fidl/fuchsia.hardware.usb.peripheral -I /syzkaller/shared/fuchsia/out/x64/fidling/gen/zircon/vdso/zx -L /syzkaller/shared/fuchsia/out/x64/x64-shared -O2 -pthread -Wall -Werror -Wparentheses -Wunused-const-variable -Wframe-larger-than=16384 -Wno-array-bounds -Wno-unused-command-line-argument] --- FAIL: TestGenerate/fuchsia/amd64/6 (0.65s) csource_test.go:150: opts: {Threaded:true Repeat:true RepeatTimes:0 Procs:0 Slowdown:10 Sandbox:none SandboxArg:0 Leak:false NetInjection:false NetDevices:false NetReset:false Cgroups:false BinfmtMisc:false CloseFDs:false KCSAN:false DevlinkPCI:false NicVF:false USB:false VhciInjection:false Wifi:false IEEE802154:false Sysctl:false Swap:false UseTmpDir:true HandleSegv:false Repro:false Trace:false LegacyOptions:{Collide:false Fault:false FaultCall:0 FaultNth:0}} program: zx_system_get_performance_info(0x0, 0x0, 0x4, &(0x7f0000000000)=""/1, &(0x7f0000000040)) (fail_nth: 1) r0 = syz_future_time(0x1) (async) zx_channel_call$fuchsia_io_FileSeek(0x0, 0x0, r0, &(0x7f0000010140)={&(0x7f0000000080)={{}, 0xffffffffffffffff, 0x2}, &(0x7f00000000c0), &(0x7f0000000100), &(0x7f0000010100), 0x1c, 0x0, 0x10000}, &(0x7f0000010180), &(0x7f00000101c0)) (rerun: 4) zx_process_create(0x0, &(0x7f0000010200)='\x00', 0x1, 0x0, &(0x7f0000010240)=0x0, &(0x7f0000010280)) zx_object_get_child(0x0, 0x0, 0x800, &(0x7f00000102c0)=0x0) zx_process_start(r1, r2, &(0x7f0000010300)="c4817d290e8051bf0065673666450ff7fdc401a1c40009c482f935f1c441fc52d0660fc5f398c4837909c6b1664b0f6ee5f341d8cd", &(0x7f0000010340)=""/4096, 0x0, 0x0) zx_channel_call(r2, 0x0, r0, &(0x7f0000012440)={&(0x7f0000011340)="68b92e90e81a0a65aba68ac3039007c40663fec316f1d3f030eb37cd0f8d9e056bc93cbf8811c6ec84bd43ee1dbc4eb9f291b1ff6296bf0f229b823cf75021ecdd1d843abece20ab3e287801d8a782d9947b008614b221e17c641ae2b5b0307cc6594759aaddde5b89ead9c032e8754ab98f09b03c802934cf4f75a4b153ae626a37333e7f35d166315311f3953ecf02f615822c58ac205d4da75d434ff36da5052a2f5d6c2a15477eb5536c80ee076e9894e6c63c0bf3d3004ce2107385919fcb771beebd389824689fbd28804b23cd933a3ab8d862c1f3cac7352fe4fccfc22d38777d69ba0fa2c820166ae8d351e116f0ca3dcfe6fc6d38f526411d407d0b2f97d822a054f440b05b7598b66e1848b0f2a8c2718f62c2c503fb28c8820626d9f46300f474feda0c816e43d9ed963447e0cd3d473ac3f0633d3d1fe4b43e587c3bfb5d3b9c3fb9472f7593c19a2d573f04796a7655ff5a1c0995834b07b62b79511946216d6c418af8ec0845782f112dfe0b7e4b6b0fb3604b4b2df31177a7c1976de255179553bff2544aa557a454b2657c5b3f0f71cff83c0b92d302d2201b7db36e9d8677dfad29ac432c25ea3b123db4f9240e9202c219a6479f05322aeb7da49f198893bdbfa0bf19a815e63aab70d4bcf3cb8b38f9ee914b43ee33e006d827919ce084d84257cb139979bb144e19cc8745478ea0ffde10d3cf590386497b43f4bc2725ec2d0df94f1a534a1ee8c429400e1078cc58a7bd8d1ded2cf4966766f21b4c07ce40d85593f8642b29652424a85aebdccdd8beba9fbfe6b1414cd3164552e7e49bb930019990dac4751a65be853b953b88eccac92c889c4d95116e94628480baab01a6cd991353ccbc8e78153038f45d9d2dc2c6fb96e37d9bdb69be948f12579371a43969e942ca69387296cf781526b7ef422f4c9bc644827237a03b2a60baaff7703ee33956dc669b1c04c721bf68f343c80b61f35ca1b19559965fd7026a1cec9bd9d92f1450ecbaf42de12042bd630d3445706c56775071deae54f2c531bc8c0be2268a13f12af588057f3ebd3ed17fa09a1a06071ec13e7e7638b15a8e0c55524a90c2d7c79c1b2f427fffaffa26390f1d6cd4abf2169604b2e779a734e06b15d03ed940bbc02ed1203f55dd3fd2957608398fc7265961dda28d626a8ea5edee28a37210c8c7321611e52b4e541c90e0721eda0de5f30cf3885eda30d6ece46263809aa1e5fe88b93106f1e7437faefcce951b197aa5b1f2780aa437cf6a1f9c069fe82d18c57ca9a705cf5202bbd1afc41e1d289a46a434cfd16bb7ce6ee764d5f0e6c81e8486eca116902abad6b98df389eaef8156b8b56325358e01f3ec30d050d9226ecfb0a1d7e2cae6b5ca6738c8cdeba6bc118327d682f8b5957c55617feac811ab2ab6ee3aee63639429f9979db5285c330da8a9f6a306b69cecfb2be3c640f04331fff3789a47445c5125fb99e996f401b319bfce5b08936db9c6f828c682bbe69e866ac0a6b204e02ecefd61142d0c20c1995562bc1fdab582296189a1b34bdb75722e64e7d4f00b8d83fdc2f8fc76971143750acd0d513b81298a2f8c72252cceb73633976f52fc2e93a1ef806ec7957c66eeac4c52f9b584580390c6fa4643e0cad59ad3f58104a728d93bc6869a6f649892eef9ecb3eebcebd34854f8e19db5ac62ba0b67a740bb39b1905e8d345e2ff21b4e25974bd5bc7c862607ddb6ac10cecde59c1a932b2fb5b22c673457bd4a396e3667f4227a276fa1a1b20fb60ff5841af64e981f6c84be84ad1bb10d941d615629654e1d128c9a377ad60b04c3cf2aad7118626eaae0b4068dd623e1a2d98b95524f9db16049ecffd5c8fee7e1bba747a1ee9ec5f67aee0b69951dfa0b587c34beb36be3c16c3ab024eb271f3716499ed5a1795eac3423c37b8fa9d20d1af4e967164263fc60e0cd8e84cfc312b34185f40a7d0777749147f60438653bc3d36a1dad3ea433684464e0c9c12a88c44d862e022992cb4bfa603d1f8d21a0a5bd6c62fc3e8427f196507daed74f62a17ba9781a4740cf7f9c5df12362ded5aaa835c1943c3d93241e9c312bff7232e6e92321400ddacb84b84b1c4120575c5d0246d78ad3e9fd4acbbb5115944d1c39f3e07405baf7dd4bd633c0bfdbaafdb42954eb6206668d53e9947594e4d0911b09036cba8f09f4cc198dc064c68d5a7b848dd2a6a664619611845767f992b1527a62771d36527cc881b5ccc06fbbf864e27dca99a433424bdb6ef631a7c824c246b7222216000dba03d7664c485a2cdfc04042db57164aa760078abb80ed030c0e6c83ae5b9fb4225c7ab72479d1762c730fe1fd9deac13d6cba0d78c01e03c12d9410cfb11ed20166a5780dd5e2eb221aaf424eddde14f4ac8302f16b699713d3225436ed4912aaef584979246f60a5168577856b82c2f809ccea64488fad8de0dccc30e7396c27c60d1da0f294ef98d596707439c35e248849121788643726329c1acd0bd79125240782d8af03b2b5cce2d960b8a9b3c81e1f88b9a07860a916e46053094622c6057af203c842ff84375729030665c5705240949e1b729d29496a29ed39d29317483eec8cbfb7dceac0b0ca6c3fb07aeb6a2368dc767eb07d7ed9cc62b910b801d08989a83f3be58618701c713f298ca7f17eae72510b29568c3159a44a01f7ffaeeddeae9d22c68ea261bc2060bce8a1213142b60b5a8d1e7314fe7fc39364b049d54f2a73cc7780f6ec477cb2738a0cb28a919f2c0cf935c1ef51bbac891338b72813acc379848bfc3b39969aeaa9f2787ddd183c3722a12b0b90f48ce2f7533f00d122c9835280f7fd8a0ad41aa1b08ba6d7dfca7b583c1e03989906040f5984c6699f382909f5939599585232c92776a1b5592712a42d5f44fc21a1882850261042ea98762309ded8799d909d6a406336a5f276fb29e9a8589736ded2e97ebc6f82b5f577d0a07021f4fcd6371c5ed29a5380d9dbf0d0ca34b684631dfb501e2ae243877432dad26a3cd3c94664a295461d6e78d057ef89842bac7a33f6a634b2e374ffac86aee35fd80008ab9809830554d7404e7540f11a7ef273dc846a57eef2b27204be709c3eaea2b305df401e4007f7f2978ebd37190e5e7cbf2d8ee418d6d9fa59ecba7603cba8d2f731733f42e49499c68592f87fea94354e0c066c30a256eab36495b10d082ede4e20630e4d799141cc44801408cd3b28a71c075504b3acc1b69d72ec615275781bf9bbdd87b7d409cf3cdd18e7cc86a164ddb980bf1adac888b7bab3d7c968a46481321c10748b79450303e5aa0860d6fcc4304e80d698866593ff7f18cdd1f93df672c7ce860b192d9e033d8aef00d4685c4165547303848b91bcb2a3956e2d17e51a70a6e383bce71d49be32bd461aec0d691c8849e6b178558e47b28831113fa448e7c950fee79dd5d0190d4c11d29bc2e0477091138e1d3836f1bb86bea2edc7ee8ebfca693022823d4968a067b36c06b0caa8e84633d81ea62e548a4e8709671f0c928a28e524af78ebd0a815aac9f6df611df081b75f5527f3b5a04a501ef02e37afe7aeb077d2d7aab08ccbc243fe69395d77ec5db84c3b6c5c8480afb3b3ce91e6a4dfb9bbeb5e623d1cfeff8b53b1e4f0337a4d8d5b3818517d66704b5756375dd85712ea2ae3c643cb564a9bb8c032ee333d0eccc6fa0170b5dd7a78ad50d7255fa113dfa1b20317b1d4d508967a38306ebe3423233198d6e341339e90d3e31bae9a1528b8f100aec437f656670c2bb3917bf9dff0fc2138cf4de3852c71a0c27ac0e1da61fde7dfe96603fbbe61b7697f4676b73d46f10d092348effa957b9af16aef7fed036ba740eadb9e3ee518700351dd63fd54a7853c6aae180e9cf7e71660178ac8a82b590104827daf9bd1ef078ad56cd393d8c3d0b0c042d27ae4b6f531d02c9f464272a71426d588471c2a6159b36ee76e16585340d1a1831da941556a84eb7684547bba0040dc4198e768c09e38a67562612de6eff630ff92f3c885cc41d31f54b802e6b3b47d51c387d9b3c20b7680dcf0ce71aaa46bfec60eab7f750a534cdb02cfabde84968002558ad22157b0528d13558d2aefcfc47302ef05778e71003c19645d84a511571093fdf67623cde36bc8ca16689b7788841d9f3e0bc1fde3d6a72a98a64aa8b67bf1775b012575dae015b4b0e3a3f96d862f3e75997314bb7ad1e00ede8ba53160eaee9d75f6813ba0a600156e01c1b9ae8cfcf4bf39fbacbc8764cc5656bc812b2541cec7d86c180f5bb38a124427c6966522eeef27ab3ceca125d5a34c832319eb76ca834f09629102c8304a02edc41707e794927c35ac31d6b6c006acd8524dc692878843a291a5d9dec9420aa7fb4d2a7191a5c2e81f6132094391b9ed0f61b0e44a3c2c96fb1309594c37d1a5ab89736e88643add4e2b8c7d9a33eda3d438248597dd2e578eb937874f5b91386511e9f96a8cdd430fb5cb30548cb64380a964356a5205eaaa188e97caced0fc678e6e6b5508614db1a9af942061035338ba7251dd4cd787f7e5465c07121ef8f98da151186ee0c727def8c68885ec3a74a5b69efdaabc97465351b421417c1b79147c9889b39eaf733c4e6b370cc468cde4611e77ee9f29f8cef457b2afdc832d22ee9f01afa23a69ffee441a8e0e02887e00e56864a764f12dfaaa481e9347199fb4dce1ba023d0ccd3843b30ce940d3dd870a3971f5798a53b713216e1ebb754935ddf39e130b4bbdfedae24bbfb943cd3d32fc6711967cf72503ba04d48b68f418a5151b68ccdd3d85b06d720c5aecc7b3d4c83cd3214b6483dfbd6bd571c17e7979f01bc8a5dce334f1888f37d2d04c7aaa97a33252a670e2b11f4bbcb5d67371e902ab26253e621b744a7f4c21c0ee68222e607fe129a178203ec5cc02194666f1c6e7a02462fab4f23b8ca99efa4e177373701f33553b3385f07854b0ae7695bc168b1bbcd360b7af39c752d32c0c12720eac81811b3c0765d4d3844ceceb84a02a39eb83ff9ff98cfdfd5892fe1f9949a027257d1b7fb49e28be877b89b7bc757edc7962dfc20d0888d4c4c4a7038d5151d73c3eddb3ce4eb1b4cda2ef60d97cca726da23611b8836a772ba0e79a8b04a5cc0b2b1aa67089ed27728650a9ef2b2123124d821d1cfaa70787f7a5536ae2286524cb5ddf06b6fb6f60d071f4af476744717f53221b44e66a4428be8710010233be5a4ab5c1fd3392373320fbbe0c4f5a8b52b4d87a2543d838cc178657bc262e42213847bb67ab1c24f7aa335df186683ecd0cb51f12542b69a13b3dccfdcff43f2fdd9a82034dccc50eb0e447820050b32ee8206b8812a6bbd55a12acff0f1b76c5d561f7827d09c4ba629b77677b70f9322bcad028c6d826bd075f3c62ed02c0e26845fc009f1cf5511f9f70b2b881ee4c5b13453d2414f9fc213f56b91f3a73c0b530772f4a05f03dd8239c1605ef87af7b2c1e065b761d9b87517e516a6a9b65712a696b3246fa58c2d53a8cb34706752b08eb8b18fb2afa05518e578fc887047b7cc865193a4ea096592f4b9c2ba330999622b9c2e4b033adf9fee8b95dbefbd30a353cb20525b972f46504a0153e0a174990a448f34c7a015e2eba7361f00849d9dc352a1764a0c02f2b6dd78ffa205ebdf829dab87611bf5e08252d598a89329095dd7e299c2b20b4b7bd1998991b12118b0a93849f955b2b8edf2533a3599fcbd28bd3cf5c9248cbfcafab3540b428f0d54201ca2a84a8cabda5c8fa5122d3a4", &(0x7f0000012340)=[r2, r2], &(0x7f0000012380)=""/81, &(0x7f0000012400)=[0x0, 0x0, 0x0, 0x0, 0x0], 0x1000, 0x2, 0x51, 0x5}, &(0x7f0000012480), &(0x7f00000124c0)) zx_channel_read$fuchsia_io_DirectoryAdminOnOpen(r3, 0x0, &(0x7f0000012500), 0x10000, &(0x7f0000022500), 0x0, &(0x7f0000022540), &(0x7f0000022580)) zx_pager_create_vmo(r4, 0x0, r4, 0x3, 0x7fb, &(0x7f00000225c0)=0x0) zx_stream_seek(r5, 0x0, 0x401, &(0x7f0000022600)) syz_execute_func(&(0x7f0000000000)="c4a149c2da0b0f18d23e26f33667dbe2c4c1d1163bc4c1b4c6850a00000000f340ac852f470ff24a004479a526f2ad") syz_future_time(0x1) syz_job_default() syz_mmap(&(0x7f0000ffb000/0x4000)=nil, 0x4000) syz_process_self() syz_thread_self() syz_vmar_root_self() csource_test.go:151: failed to build program: // autogenerated by syzkaller (https://github.com/google/syzkaller) #define _GNU_SOURCE #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include static void sleep_ms(uint64_t ms) { usleep(ms * 1000); } static uint64_t current_time_ms(void) { struct timespec ts; if (clock_gettime(CLOCK_MONOTONIC, &ts)) exit(1); return (uint64_t)ts.tv_sec * 1000 + (uint64_t)ts.tv_nsec / 1000000; } static void use_temporary_dir(void) { char tmpdir_template[] = "/tmp/syzkaller.XXXXXX"; char* tmpdir = mkdtemp(tmpdir_template); if (!tmpdir) exit(1); if (chmod(tmpdir, 0777)) exit(1); if (chdir(tmpdir)) exit(1); } static int inject_fault(int nth) { return 0; } static void setup_fault() { } static void thread_start(void* (*fn)(void*), void* arg) { pthread_t th; pthread_attr_t attr; pthread_attr_init(&attr); pthread_attr_setstacksize(&attr, 128 << 10); int i = 0; for (; i < 100; i++) { if (pthread_create(&th, &attr, fn, arg) == 0) { pthread_attr_destroy(&attr); return; } if (errno == EAGAIN) { usleep(50); continue; } break; } exit(1); } typedef struct { int state; } event_t; static void event_init(event_t* ev) { ev->state = 0; } static void event_reset(event_t* ev) { ev->state = 0; } static void event_set(event_t* ev) { if (ev->state) exit(1); __atomic_store_n(&ev->state, 1, __ATOMIC_RELEASE); } static void event_wait(event_t* ev) { while (!__atomic_load_n(&ev->state, __ATOMIC_ACQUIRE)) usleep(200); } static int event_isset(event_t* ev) { return __atomic_load_n(&ev->state, __ATOMIC_ACQUIRE); } static int event_timedwait(event_t* ev, uint64_t timeout_ms) { uint64_t start = current_time_ms(); for (;;) { if (__atomic_load_n(&ev->state, __ATOMIC_RELAXED)) return 1; if (current_time_ms() - start > timeout_ms) return 0; usleep(200); } } long syz_mmap(size_t addr, size_t size) { zx_handle_t root = zx_vmar_root_self(); zx_info_vmar_t info; zx_status_t status = zx_object_get_info(root, ZX_INFO_VMAR, &info, sizeof(info), 0, 0); if (status != ZX_OK) { return status; } zx_handle_t vmo; status = zx_vmo_create(size, 0, &vmo); if (status != ZX_OK) { return status; } uintptr_t mapped_addr; status = zx_vmar_map(root, ZX_VM_FLAG_SPECIFIC_OVERWRITE | ZX_VM_FLAG_PERM_READ | ZX_VM_FLAG_PERM_WRITE, addr - info.base, vmo, 0, size, &mapped_addr); zx_status_t close_vmo_status = zx_handle_close(vmo); if (close_vmo_status != ZX_OK) { } return status; } static long syz_process_self(void) { return zx_process_self(); } static long syz_thread_self(void) { return zx_thread_self(); } static long syz_vmar_root_self(void) { return zx_vmar_root_self(); } static long syz_job_default(void) { return zx_job_default(); } static long syz_future_time(volatile long when) { zx_time_t delta_ms = 10000; switch (when) { case 0: delta_ms = 5; break; case 1: delta_ms = 30; break; } zx_time_t now = 0; zx_clock_read(ZX_CLOCK_MONOTONIC, &now); return now + delta_ms * 1000 * 1000; } static void loop(); static int do_sandbox_none(void) { loop(); return 0; } #define CAST(f) ({void* p = (void*)f; p; }) static long syz_execute_func(volatile long text) { ((void (*)(void))(text))(); return 0; } struct thread_t { int created, call; event_t ready, done; }; static struct thread_t threads[16]; static void execute_call(int call); static int running; static void* thr(void* arg) { struct thread_t* th = (struct thread_t*)arg; for (;;) { event_wait(&th->ready); event_reset(&th->ready); execute_call(th->call); __atomic_fetch_sub(&running, 1, __ATOMIC_RELAXED); event_set(&th->done); } return 0; } static void execute_one(void) { int i, call, thread; for (call = 0; call < 17; call++) { for (thread = 0; thread < (int)(sizeof(threads) / sizeof(threads[0])); thread++) { struct thread_t* th = &threads[thread]; if (!th->created) { th->created = 1; event_init(&th->ready); event_init(&th->done); event_set(&th->done); thread_start(thr, th); } if (!event_isset(&th->done)) continue; event_reset(&th->done); th->call = call; __atomic_fetch_add(&running, 1, __ATOMIC_RELAXED); event_set(&th->ready); if (call == 1) break; event_timedwait(&th->done, 500); break; } } for (i = 0; i < 100 && __atomic_load_n(&running, __ATOMIC_RELAXED); i++) sleep_ms(1); } static void execute_one(void); static void loop(void) { execute_one(); } uint64_t r[6] = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0}; void execute_call(int call) { intptr_t res = 0; switch (call) { case 0: inject_fault(1); ((intptr_t(*)(intptr_t,intptr_t,intptr_t,intptr_t,intptr_t))CAST(zx_system_get_performance_info))(/*res=*/0, /*topic=*/0, /*count=*/4, /*info=*/0x20000000, /*output_count=*/0x20000040); break; case 1: res = -1; res = syz_future_time(/*when=*/1); if ((int)res != -1) r[0] = res; break; case 2: *(uint64_t*)0x20010140 = 0x20000080; *(uint32_t*)0x20000080 = 0; memset((void*)0x20000084, 0, 3); *(uint8_t*)0x20000087 = 1; *(uint64_t*)0x20000088 = 0x782a774500000000; *(uint64_t*)0x20000090 = -1; *(uint32_t*)0x20000098 = 2; *(uint64_t*)0x20010148 = 0x200000c0; *(uint64_t*)0x20010150 = 0x20000100; *(uint64_t*)0x20010158 = 0x20010100; *(uint32_t*)0x20010160 = 0x1c; *(uint32_t*)0x20010164 = 0; *(uint32_t*)0x20010168 = 0x10000; *(uint32_t*)0x2001016c = 0; ((intptr_t(*)(intptr_t,intptr_t,intptr_t,intptr_t,intptr_t,intptr_t))CAST(zx_channel_call))(/*handle=*/0, /*options=*/0, /*deadline=*/r[0], /*args=*/0x20010140, /*actual_bytes=*/0x20010180, /*actual_handles=*/0x200101c0); { int i; for(i = 0; i < 4; i++) { ((intptr_t(*)(intptr_t,intptr_t,intptr_t,intptr_t,intptr_t,intptr_t))CAST(zx_channel_call))(/*handle=*/0, /*options=*/0, /*deadline=*/r[0], /*args=*/0x20010140, /*actual_bytes=*/0x20010180, /*actual_handles=*/0x200101c0); } } break; case 3: memset((void*)0x20010200, 0, 1); res = -1; res = ((intptr_t(*)(intptr_t,intptr_t,intptr_t,intptr_t,intptr_t,intptr_t))CAST(zx_process_create))(/*job=*/0, /*name=*/0x20010200, /*name_len=*/1, /*options=*/0, /*proc_handle=*/0x20010240, /*vmar_handle=*/0x20010280); if (res == ZX_OK) r[1] = *(uint32_t*)0x20010240; break; case 4: res = -1; res = ((intptr_t(*)(intptr_t,intptr_t,intptr_t,intptr_t))CAST(zx_object_get_child))(/*handle=*/0, /*koid=*/0, /*rights=*/0x800, /*out=*/0x200102c0); if (res == ZX_OK) r[2] = *(uint32_t*)0x200102c0; break; case 5: memcpy((void*)0x20010300, "\xc4\x81\x7d\x29\x0e\x80\x51\xbf\x00\x65\x67\x36\x66\x45\x0f\xf7\xfd\xc4\x01\xa1\xc4\x00\x09\xc4\x82\xf9\x35\xf1\xc4\x41\xfc\x52\xd0\x66\x0f\xc5\xf3\x98\xc4\x83\x79\x09\xc6\xb1\x66\x4b\x0f\x6e\xe5\xf3\x41\xd8\xcd", 53); ((intptr_t(*)(intptr_t,intptr_t,intptr_t,intptr_t,intptr_t,intptr_t))CAST(zx_process_start))(/*process=*/r[1], /*thread=*/r[2], /*entry=*/0x20010300, /*stack=*/0x20010340, /*arg1=*/0, /*arg2=*/0); break; case 6: *(uint64_t*)0x20012440 = 0x20011340; memcpy((void*)0x20011340, "\x68\xb9\x2e\x90\xe8\x1a\x0a\x65\xab\xa6\x8a\xc3\x03\x90\x07\xc4\x06\x63\xfe\xc3\x16\xf1\xd3\xf0\x30\xeb\x37\xcd\x0f\x8d\x9e\x05\x6b\xc9\x3c\xbf\x88\x11\xc6\xec\x84\xbd\x43\xee\x1d\xbc\x4e\xb9\xf2\x91\xb1\xff\x62\x96\xbf\x0f\x22\x9b\x82\x3c\xf7\x50\x21\xec\xdd\x1d\x84\x3a\xbe\xce\x20\xab\x3e\x28\x78\x01\xd8\xa7\x82\xd9\x94\x7b\x00\x86\x14\xb2\x21\xe1\x7c\x64\x1a\xe2\xb5\xb0\x30\x7c\xc6\x59\x47\x59\xaa\xdd\xde\x5b\x89\xea\xd9\xc0\x32\xe8\x75\x4a\xb9\x8f\x09\xb0\x3c\x80\x29\x34\xcf\x4f\x75\xa4\xb1\x53\xae\x62\x6a\x37\x33\x3e\x7f\x35\xd1\x66\x31\x53\x11\xf3\x95\x3e\xcf\x02\xf6\x15\x82\x2c\x58\xac\x20\x5d\x4d\xa7\x5d\x43\x4f\xf3\x6d\xa5\x05\x2a\x2f\x5d\x6c\x2a\x15\x47\x7e\xb5\x53\x6c\x80\xee\x07\x6e\x98\x94\xe6\xc6\x3c\x0b\xf3\xd3\x00\x4c\xe2\x10\x73\x85\x91\x9f\xcb\x77\x1b\xee\xbd\x38\x98\x24\x68\x9f\xbd\x28\x80\x4b\x23\xcd\x93\x3a\x3a\xb8\xd8\x62\xc1\xf3\xca\xc7\x35\x2f\xe4\xfc\xcf\xc2\x2d\x38\x77\x7d\x69\xba\x0f\xa2\xc8\x20\x16\x6a\xe8\xd3\x51\xe1\x16\xf0\xca\x3d\xcf\xe6\xfc\x6d\x38\xf5\x26\x41\x1d\x40\x7d\x0b\x2f\x97\xd8\x22\xa0\x54\xf4\x40\xb0\x5b\x75\x98\xb6\x6e\x18\x48\xb0\xf2\xa8\xc2\x71\x8f\x62\xc2\xc5\x03\xfb\x28\xc8\x82\x06\x26\xd9\xf4\x63\x00\xf4\x74\xfe\xda\x0c\x81\x6e\x43\xd9\xed\x96\x34\x47\xe0\xcd\x3d\x47\x3a\xc3\xf0\x63\x3d\x3d\x1f\xe4\xb4\x3e\x58\x7c\x3b\xfb\x5d\x3b\x9c\x3f\xb9\x47\x2f\x75\x93\xc1\x9a\x2d\x57\x3f\x04\x79\x6a\x76\x55\xff\x5a\x1c\x09\x95\x83\x4b\x07\xb6\x2b\x79\x51\x19\x46\x21\x6d\x6c\x41\x8a\xf8\xec\x08\x45\x78\x2f\x11\x2d\xfe\x0b\x7e\x4b\x6b\x0f\xb3\x60\x4b\x4b\x2d\xf3\x11\x77\xa7\xc1\x97\x6d\xe2\x55\x17\x95\x53\xbf\xf2\x54\x4a\xa5\x57\xa4\x54\xb2\x65\x7c\x5b\x3f\x0f\x71\xcf\xf8\x3c\x0b\x92\xd3\x02\xd2\x20\x1b\x7d\xb3\x6e\x9d\x86\x77\xdf\xad\x29\xac\x43\x2c\x25\xea\x3b\x12\x3d\xb4\xf9\x24\x0e\x92\x02\xc2\x19\xa6\x47\x9f\x05\x32\x2a\xeb\x7d\xa4\x9f\x19\x88\x93\xbd\xbf\xa0\xbf\x19\xa8\x15\xe6\x3a\xab\x70\xd4\xbc\xf3\xcb\x8b\x38\xf9\xee\x91\x4b\x43\xee\x33\xe0\x06\xd8\x27\x91\x9c\xe0\x84\xd8\x42\x57\xcb\x13\x99\x79\xbb\x14\x4e\x19\xcc\x87\x45\x47\x8e\xa0\xff\xde\x10\xd3\xcf\x59\x03\x86\x49\x7b\x43\xf4\xbc\x27\x25\xec\x2d\x0d\xf9\x4f\x1a\x53\x4a\x1e\xe8\xc4\x29\x40\x0e\x10\x78\xcc\x58\xa7\xbd\x8d\x1d\xed\x2c\xf4\x96\x67\x66\xf2\x1b\x4c\x07\xce\x40\xd8\x55\x93\xf8\x64\x2b\x29\x65\x24\x24\xa8\x5a\xeb\xdc\xcd\xd8\xbe\xba\x9f\xbf\xe6\xb1\x41\x4c\xd3\x16\x45\x52\xe7\xe4\x9b\xb9\x30\x01\x99\x90\xda\xc4\x75\x1a\x65\xbe\x85\x3b\x95\x3b\x88\xec\xca\xc9\x2c\x88\x9c\x4d\x95\x11\x6e\x94\x62\x84\x80\xba\xab\x01\xa6\xcd\x99\x13\x53\xcc\xbc\x8e\x78\x15\x30\x38\xf4\x5d\x9d\x2d\xc2\xc6\xfb\x96\xe3\x7d\x9b\xdb\x69\xbe\x94\x8f\x12\x57\x93\x71\xa4\x39\x69\xe9\x42\xca\x69\x38\x72\x96\xcf\x78\x15\x26\xb7\xef\x42\x2f\x4c\x9b\xc6\x44\x82\x72\x37\xa0\x3b\x2a\x60\xba\xaf\xf7\x70\x3e\xe3\x39\x56\xdc\x66\x9b\x1c\x04\xc7\x21\xbf\x68\xf3\x43\xc8\x0b\x61\xf3\x5c\xa1\xb1\x95\x59\x96\x5f\xd7\x02\x6a\x1c\xec\x9b\xd9\xd9\x2f\x14\x50\xec\xba\xf4\x2d\xe1\x20\x42\xbd\x63\x0d\x34\x45\x70\x6c\x56\x77\x50\x71\xde\xae\x54\xf2\xc5\x31\xbc\x8c\x0b\xe2\x26\x8a\x13\xf1\x2a\xf5\x88\x05\x7f\x3e\xbd\x3e\xd1\x7f\xa0\x9a\x1a\x06\x07\x1e\xc1\x3e\x7e\x76\x38\xb1\x5a\x8e\x0c\x55\x52\x4a\x90\xc2\xd7\xc7\x9c\x1b\x2f\x42\x7f\xff\xaf\xfa\x26\x39\x0f\x1d\x6c\xd4\xab\xf2\x16\x96\x04\xb2\xe7\x79\xa7\x34\xe0\x6b\x15\xd0\x3e\xd9\x40\xbb\xc0\x2e\xd1\x20\x3f\x55\xdd\x3f\xd2\x95\x76\x08\x39\x8f\xc7\x26\x59\x61\xdd\xa2\x8d\x62\x6a\x8e\xa5\xed\xee\x28\xa3\x72\x10\xc8\xc7\x32\x16\x11\xe5\x2b\x4e\x54\x1c\x90\xe0\x72\x1e\xda\x0d\xe5\xf3\x0c\xf3\x88\x5e\xda\x30\xd6\xec\xe4\x62\x63\x80\x9a\xa1\xe5\xfe\x88\xb9\x31\x06\xf1\xe7\x43\x7f\xae\xfc\xce\x95\x1b\x19\x7a\xa5\xb1\xf2\x78\x0a\xa4\x37\xcf\x6a\x1f\x9c\x06\x9f\xe8\x2d\x18\xc5\x7c\xa9\xa7\x05\xcf\x52\x02\xbb\xd1\xaf\xc4\x1e\x1d\x28\x9a\x46\xa4\x34\xcf\xd1\x6b\xb7\xce\x6e\xe7\x64\xd5\xf0\xe6\xc8\x1e\x84\x86\xec\xa1\x16\x90\x2a\xba\xd6\xb9\x8d\xf3\x89\xea\xef\x81\x56\xb8\xb5\x63\x25\x35\x8e\x01\xf3\xec\x30\xd0\x50\xd9\x22\x6e\xcf\xb0\xa1\xd7\xe2\xca\xe6\xb5\xca\x67\x38\xc8\xcd\xeb\xa6\xbc\x11\x83\x27\xd6\x82\xf8\xb5\x95\x7c\x55\x61\x7f\xea\xc8\x11\xab\x2a\xb6\xee\x3a\xee\x63\x63\x94\x29\xf9\x97\x9d\xb5\x28\x5c\x33\x0d\xa8\xa9\xf6\xa3\x06\xb6\x9c\xec\xfb\x2b\xe3\xc6\x40\xf0\x43\x31\xff\xf3\x78\x9a\x47\x44\x5c\x51\x25\xfb\x99\xe9\x96\xf4\x01\xb3\x19\xbf\xce\x5b\x08\x93\x6d\xb9\xc6\xf8\x28\xc6\x82\xbb\xe6\x9e\x86\x6a\xc0\xa6\xb2\x04\xe0\x2e\xce\xfd\x61\x14\x2d\x0c\x20\xc1\x99\x55\x62\xbc\x1f\xda\xb5\x82\x29\x61\x89\xa1\xb3\x4b\xdb\x75\x72\x2e\x64\xe7\xd4\xf0\x0b\x8d\x83\xfd\xc2\xf8\xfc\x76\x97\x11\x43\x75\x0a\xcd\x0d\x51\x3b\x81\x29\x8a\x2f\x8c\x72\x25\x2c\xce\xb7\x36\x33\x97\x6f\x52\xfc\x2e\x93\xa1\xef\x80\x6e\xc7\x95\x7c\x66\xee\xac\x4c\x52\xf9\xb5\x84\x58\x03\x90\xc6\xfa\x46\x43\xe0\xca\xd5\x9a\xd3\xf5\x81\x04\xa7\x28\xd9\x3b\xc6\x86\x9a\x6f\x64\x98\x92\xee\xf9\xec\xb3\xee\xbc\xeb\xd3\x48\x54\xf8\xe1\x9d\xb5\xac\x62\xba\x0b\x67\xa7\x40\xbb\x39\xb1\x90\x5e\x8d\x34\x5e\x2f\xf2\x1b\x4e\x25\x97\x4b\xd5\xbc\x7c\x86\x26\x07\xdd\xb6\xac\x10\xce\xcd\xe5\x9c\x1a\x93\x2b\x2f\xb5\xb2\x2c\x67\x34\x57\xbd\x4a\x39\x6e\x36\x67\xf4\x22\x7a\x27\x6f\xa1\xa1\xb2\x0f\xb6\x0f\xf5\x84\x1a\xf6\x4e\x98\x1f\x6c\x84\xbe\x84\xad\x1b\xb1\x0d\x94\x1d\x61\x56\x29\x65\x4e\x1d\x12\x8c\x9a\x37\x7a\xd6\x0b\x04\xc3\xcf\x2a\xad\x71\x18\x62\x6e\xaa\xe0\xb4\x06\x8d\xd6\x23\xe1\xa2\xd9\x8b\x95\x52\x4f\x9d\xb1\x60\x49\xec\xff\xd5\xc8\xfe\xe7\xe1\xbb\xa7\x47\xa1\xee\x9e\xc5\xf6\x7a\xee\x0b\x69\x95\x1d\xfa\x0b\x58\x7c\x34\xbe\xb3\x6b\xe3\xc1\x6c\x3a\xb0\x24\xeb\x27\x1f\x37\x16\x49\x9e\xd5\xa1\x79\x5e\xac\x34\x23\xc3\x7b\x8f\xa9\xd2\x0d\x1a\xf4\xe9\x67\x16\x42\x63\xfc\x60\xe0\xcd\x8e\x84\xcf\xc3\x12\xb3\x41\x85\xf4\x0a\x7d\x07\x77\x74\x91\x47\xf6\x04\x38\x65\x3b\xc3\xd3\x6a\x1d\xad\x3e\xa4\x33\x68\x44\x64\xe0\xc9\xc1\x2a\x88\xc4\x4d\x86\x2e\x02\x29\x92\xcb\x4b\xfa\x60\x3d\x1f\x8d\x21\xa0\xa5\xbd\x6c\x62\xfc\x3e\x84\x27\xf1\x96\x50\x7d\xae\xd7\x4f\x62\xa1\x7b\xa9\x78\x1a\x47\x40\xcf\x7f\x9c\x5d\xf1\x23\x62\xde\xd5\xaa\xa8\x35\xc1\x94\x3c\x3d\x93\x24\x1e\x9c\x31\x2b\xff\x72\x32\xe6\xe9\x23\x21\x40\x0d\xda\xcb\x84\xb8\x4b\x1c\x41\x20\x57\x5c\x5d\x02\x46\xd7\x8a\xd3\xe9\xfd\x4a\xcb\xbb\x51\x15\x94\x4d\x1c\x39\xf3\xe0\x74\x05\xba\xf7\xdd\x4b\xd6\x33\xc0\xbf\xdb\xaa\xfd\xb4\x29\x54\xeb\x62\x06\x66\x8d\x53\xe9\x94\x75\x94\xe4\xd0\x91\x1b\x09\x03\x6c\xba\x8f\x09\xf4\xcc\x19\x8d\xc0\x64\xc6\x8d\x5a\x7b\x84\x8d\xd2\xa6\xa6\x64\x61\x96\x11\x84\x57\x67\xf9\x92\xb1\x52\x7a\x62\x77\x1d\x36\x52\x7c\xc8\x81\xb5\xcc\xc0\x6f\xbb\xf8\x64\xe2\x7d\xca\x99\xa4\x33\x42\x4b\xdb\x6e\xf6\x31\xa7\xc8\x24\xc2\x46\xb7\x22\x22\x16\x00\x0d\xba\x03\xd7\x66\x4c\x48\x5a\x2c\xdf\xc0\x40\x42\xdb\x57\x16\x4a\xa7\x60\x07\x8a\xbb\x80\xed\x03\x0c\x0e\x6c\x83\xae\x5b\x9f\xb4\x22\x5c\x7a\xb7\x24\x79\xd1\x76\x2c\x73\x0f\xe1\xfd\x9d\xea\xc1\x3d\x6c\xba\x0d\x78\xc0\x1e\x03\xc1\x2d\x94\x10\xcf\xb1\x1e\xd2\x01\x66\xa5\x78\x0d\xd5\xe2\xeb\x22\x1a\xaf\x42\x4e\xdd\xde\x14\xf4\xac\x83\x02\xf1\x6b\x69\x97\x13\xd3\x22\x54\x36\xed\x49\x12\xaa\xef\x58\x49\x79\x24\x6f\x60\xa5\x16\x85\x77\x85\x6b\x82\xc2\xf8\x09\xcc\xea\x64\x48\x8f\xad\x8d\xe0\xdc\xcc\x30\xe7\x39\x6c\x27\xc6\x0d\x1d\xa0\xf2\x94\xef\x98\xd5\x96\x70\x74\x39\xc3\x5e\x24\x88\x49\x12\x17\x88\x64\x37\x26\x32\x9c\x1a\xcd\x0b\xd7\x91\x25\x24\x07\x82\xd8\xaf\x03\xb2\xb5\xcc\xe2\xd9\x60\xb8\xa9\xb3\xc8\x1e\x1f\x88\xb9\xa0\x78\x60\xa9\x16\xe4\x60\x53\x09\x46\x22\xc6\x05\x7a\xf2\x03\xc8\x42\xff\x84\x37\x57\x29\x03\x06\x65\xc5\x70\x52\x40\x94\x9e\x1b\x72\x9d\x29\x49\x6a\x29\xed\x39\xd2\x93\x17\x48\x3e\xec\x8c\xbf\xb7\xdc\xea\xc0\xb0\xca\x6c\x3f\xb0\x7a\xeb\x6a\x23\x68\xdc\x76\x7e\xb0\x7d\x7e\xd9\xcc\x62\xb9\x10\xb8\x01\xd0\x89\x89\xa8\x3f\x3b\xe5\x86\x18\x70\x1c\x71\x3f\x29\x8c\xa7\xf1\x7e\xae\x72\x51\x0b\x29\x56\x8c\x31\x59\xa4\x4a\x01\xf7\xff\xae\xed\xde\xae\x9d\x22\xc6\x8e\xa2\x61\xbc\x20\x60\xbc\xe8\xa1\x21\x31\x42\xb6\x0b\x5a\x8d\x1e\x73\x14\xfe\x7f\xc3\x93\x64\xb0\x49\xd5\x4f\x2a\x73\xcc\x77\x80\xf6\xec\x47\x7c\xb2\x73\x8a\x0c\xb2\x8a\x91\x9f\x2c\x0c\xf9\x35\xc1\xef\x51\xbb\xac\x89\x13\x38\xb7\x28\x13\xac\xc3\x79\x84\x8b\xfc\x3b\x39\x96\x9a\xea\xa9\xf2\x78\x7d\xdd\x18\x3c\x37\x22\xa1\x2b\x0b\x90\xf4\x8c\xe2\xf7\x53\x3f\x00\xd1\x22\xc9\x83\x52\x80\xf7\xfd\x8a\x0a\xd4\x1a\xa1\xb0\x8b\xa6\xd7\xdf\xca\x7b\x58\x3c\x1e\x03\x98\x99\x06\x04\x0f\x59\x84\xc6\x69\x9f\x38\x29\x09\xf5\x93\x95\x99\x58\x52\x32\xc9\x27\x76\xa1\xb5\x59\x27\x12\xa4\x2d\x5f\x44\xfc\x21\xa1\x88\x28\x50\x26\x10\x42\xea\x98\x76\x23\x09\xde\xd8\x79\x9d\x90\x9d\x6a\x40\x63\x36\xa5\xf2\x76\xfb\x29\xe9\xa8\x58\x97\x36\xde\xd2\xe9\x7e\xbc\x6f\x82\xb5\xf5\x77\xd0\xa0\x70\x21\xf4\xfc\xd6\x37\x1c\x5e\xd2\x9a\x53\x80\xd9\xdb\xf0\xd0\xca\x34\xb6\x84\x63\x1d\xfb\x50\x1e\x2a\xe2\x43\x87\x74\x32\xda\xd2\x6a\x3c\xd3\xc9\x46\x64\xa2\x95\x46\x1d\x6e\x78\xd0\x57\xef\x89\x84\x2b\xac\x7a\x33\xf6\xa6\x34\xb2\xe3\x74\xff\xac\x86\xae\xe3\x5f\xd8\x00\x08\xab\x98\x09\x83\x05\x54\xd7\x40\x4e\x75\x40\xf1\x1a\x7e\xf2\x73\xdc\x84\x6a\x57\xee\xf2\xb2\x72\x04\xbe\x70\x9c\x3e\xae\xa2\xb3\x05\xdf\x40\x1e\x40\x07\xf7\xf2\x97\x8e\xbd\x37\x19\x0e\x5e\x7c\xbf\x2d\x8e\xe4\x18\xd6\xd9\xfa\x59\xec\xba\x76\x03\xcb\xa8\xd2\xf7\x31\x73\x3f\x42\xe4\x94\x99\xc6\x85\x92\xf8\x7f\xea\x94\x35\x4e\x0c\x06\x6c\x30\xa2\x56\xea\xb3\x64\x95\xb1\x0d\x08\x2e\xde\x4e\x20\x63\x0e\x4d\x79\x91\x41\xcc\x44\x80\x14\x08\xcd\x3b\x28\xa7\x1c\x07\x55\x04\xb3\xac\xc1\xb6\x9d\x72\xec\x61\x52\x75\x78\x1b\xf9\xbb\xdd\x87\xb7\xd4\x09\xcf\x3c\xdd\x18\xe7\xcc\x86\xa1\x64\xdd\xb9\x80\xbf\x1a\xda\xc8\x88\xb7\xba\xb3\xd7\xc9\x68\xa4\x64\x81\x32\x1c\x10\x74\x8b\x79\x45\x03\x03\xe5\xaa\x08\x60\xd6\xfc\xc4\x30\x4e\x80\xd6\x98\x86\x65\x93\xff\x7f\x18\xcd\xd1\xf9\x3d\xf6\x72\xc7\xce\x86\x0b\x19\x2d\x9e\x03\x3d\x8a\xef\x00\xd4\x68\x5c\x41\x65\x54\x73\x03\x84\x8b\x91\xbc\xb2\xa3\x95\x6e\x2d\x17\xe5\x1a\x70\xa6\xe3\x83\xbc\xe7\x1d\x49\xbe\x32\xbd\x46\x1a\xec\x0d\x69\x1c\x88\x49\xe6\xb1\x78\x55\x8e\x47\xb2\x88\x31\x11\x3f\xa4\x48\xe7\xc9\x50\xfe\xe7\x9d\xd5\xd0\x19\x0d\x4c\x11\xd2\x9b\xc2\xe0\x47\x70\x91\x13\x8e\x1d\x38\x36\xf1\xbb\x86\xbe\xa2\xed\xc7\xee\x8e\xbf\xca\x69\x30\x22\x82\x3d\x49\x68\xa0\x67\xb3\x6c\x06\xb0\xca\xa8\xe8\x46\x33\xd8\x1e\xa6\x2e\x54\x8a\x4e\x87\x09\x67\x1f\x0c\x92\x8a\x28\xe5\x24\xaf\x78\xeb\xd0\xa8\x15\xaa\xc9\xf6\xdf\x61\x1d\xf0\x81\xb7\x5f\x55\x27\xf3\xb5\xa0\x4a\x50\x1e\xf0\x2e\x37\xaf\xe7\xae\xb0\x77\xd2\xd7\xaa\xb0\x8c\xcb\xc2\x43\xfe\x69\x39\x5d\x77\xec\x5d\xb8\x4c\x3b\x6c\x5c\x84\x80\xaf\xb3\xb3\xce\x91\xe6\xa4\xdf\xb9\xbb\xeb\x5e\x62\x3d\x1c\xfe\xff\x8b\x53\xb1\xe4\xf0\x33\x7a\x4d\x8d\x5b\x38\x18\x51\x7d\x66\x70\x4b\x57\x56\x37\x5d\xd8\x57\x12\xea\x2a\xe3\xc6\x43\xcb\x56\x4a\x9b\xb8\xc0\x32\xee\x33\x3d\x0e\xcc\xc6\xfa\x01\x70\xb5\xdd\x7a\x78\xad\x50\xd7\x25\x5f\xa1\x13\xdf\xa1\xb2\x03\x17\xb1\xd4\xd5\x08\x96\x7a\x38\x30\x6e\xbe\x34\x23\x23\x31\x98\xd6\xe3\x41\x33\x9e\x90\xd3\xe3\x1b\xae\x9a\x15\x28\xb8\xf1\x00\xae\xc4\x37\xf6\x56\x67\x0c\x2b\xb3\x91\x7b\xf9\xdf\xf0\xfc\x21\x38\xcf\x4d\xe3\x85\x2c\x71\xa0\xc2\x7a\xc0\xe1\xda\x61\xfd\xe7\xdf\xe9\x66\x03\xfb\xbe\x61\xb7\x69\x7f\x46\x76\xb7\x3d\x46\xf1\x0d\x09\x23\x48\xef\xfa\x95\x7b\x9a\xf1\x6a\xef\x7f\xed\x03\x6b\xa7\x40\xea\xdb\x9e\x3e\xe5\x18\x70\x03\x51\xdd\x63\xfd\x54\xa7\x85\x3c\x6a\xae\x18\x0e\x9c\xf7\xe7\x16\x60\x17\x8a\xc8\xa8\x2b\x59\x01\x04\x82\x7d\xaf\x9b\xd1\xef\x07\x8a\xd5\x6c\xd3\x93\xd8\xc3\xd0\xb0\xc0\x42\xd2\x7a\xe4\xb6\xf5\x31\xd0\x2c\x9f\x46\x42\x72\xa7\x14\x26\xd5\x88\x47\x1c\x2a\x61\x59\xb3\x6e\xe7\x6e\x16\x58\x53\x40\xd1\xa1\x83\x1d\xa9\x41\x55\x6a\x84\xeb\x76\x84\x54\x7b\xba\x00\x40\xdc\x41\x98\xe7\x68\xc0\x9e\x38\xa6\x75\x62\x61\x2d\xe6\xef\xf6\x30\xff\x92\xf3\xc8\x85\xcc\x41\xd3\x1f\x54\xb8\x02\xe6\xb3\xb4\x7d\x51\xc3\x87\xd9\xb3\xc2\x0b\x76\x80\xdc\xf0\xce\x71\xaa\xa4\x6b\xfe\xc6\x0e\xab\x7f\x75\x0a\x53\x4c\xdb\x02\xcf\xab\xde\x84\x96\x80\x02\x55\x8a\xd2\x21\x57\xb0\x52\x8d\x13\x55\x8d\x2a\xef\xcf\xc4\x73\x02\xef\x05\x77\x8e\x71\x00\x3c\x19\x64\x5d\x84\xa5\x11\x57\x10\x93\xfd\xf6\x76\x23\xcd\xe3\x6b\xc8\xca\x16\x68\x9b\x77\x88\x84\x1d\x9f\x3e\x0b\xc1\xfd\xe3\xd6\xa7\x2a\x98\xa6\x4a\xa8\xb6\x7b\xf1\x77\x5b\x01\x25\x75\xda\xe0\x15\xb4\xb0\xe3\xa3\xf9\x6d\x86\x2f\x3e\x75\x99\x73\x14\xbb\x7a\xd1\xe0\x0e\xde\x8b\xa5\x31\x60\xea\xee\x9d\x75\xf6\x81\x3b\xa0\xa6\x00\x15\x6e\x01\xc1\xb9\xae\x8c\xfc\xf4\xbf\x39\xfb\xac\xbc\x87\x64\xcc\x56\x56\xbc\x81\x2b\x25\x41\xce\xc7\xd8\x6c\x18\x0f\x5b\xb3\x8a\x12\x44\x27\xc6\x96\x65\x22\xee\xef\x27\xab\x3c\xec\xa1\x25\xd5\xa3\x4c\x83\x23\x19\xeb\x76\xca\x83\x4f\x09\x62\x91\x02\xc8\x30\x4a\x02\xed\xc4\x17\x07\xe7\x94\x92\x7c\x35\xac\x31\xd6\xb6\xc0\x06\xac\xd8\x52\x4d\xc6\x92\x87\x88\x43\xa2\x91\xa5\xd9\xde\xc9\x42\x0a\xa7\xfb\x4d\x2a\x71\x91\xa5\xc2\xe8\x1f\x61\x32\x09\x43\x91\xb9\xed\x0f\x61\xb0\xe4\x4a\x3c\x2c\x96\xfb\x13\x09\x59\x4c\x37\xd1\xa5\xab\x89\x73\x6e\x88\x64\x3a\xdd\x4e\x2b\x8c\x7d\x9a\x33\xed\xa3\xd4\x38\x24\x85\x97\xdd\x2e\x57\x8e\xb9\x37\x87\x4f\x5b\x91\x38\x65\x11\xe9\xf9\x6a\x8c\xdd\x43\x0f\xb5\xcb\x30\x54\x8c\xb6\x43\x80\xa9\x64\x35\x6a\x52\x05\xea\xaa\x18\x8e\x97\xca\xce\xd0\xfc\x67\x8e\x6e\x6b\x55\x08\x61\x4d\xb1\xa9\xaf\x94\x20\x61\x03\x53\x38\xba\x72\x51\xdd\x4c\xd7\x87\xf7\xe5\x46\x5c\x07\x12\x1e\xf8\xf9\x8d\xa1\x51\x18\x6e\xe0\xc7\x27\xde\xf8\xc6\x88\x85\xec\x3a\x74\xa5\xb6\x9e\xfd\xaa\xbc\x97\x46\x53\x51\xb4\x21\x41\x7c\x1b\x79\x14\x7c\x98\x89\xb3\x9e\xaf\x73\x3c\x4e\x6b\x37\x0c\xc4\x68\xcd\xe4\x61\x1e\x77\xee\x9f\x29\xf8\xce\xf4\x57\xb2\xaf\xdc\x83\x2d\x22\xee\x9f\x01\xaf\xa2\x3a\x69\xff\xee\x44\x1a\x8e\x0e\x02\x88\x7e\x00\xe5\x68\x64\xa7\x64\xf1\x2d\xfa\xaa\x48\x1e\x93\x47\x19\x9f\xb4\xdc\xe1\xba\x02\x3d\x0c\xcd\x38\x43\xb3\x0c\xe9\x40\xd3\xdd\x87\x0a\x39\x71\xf5\x79\x8a\x53\xb7\x13\x21\x6e\x1e\xbb\x75\x49\x35\xdd\xf3\x9e\x13\x0b\x4b\xbd\xfe\xda\xe2\x4b\xbf\xb9\x43\xcd\x3d\x32\xfc\x67\x11\x96\x7c\xf7\x25\x03\xba\x04\xd4\x8b\x68\xf4\x18\xa5\x15\x1b\x68\xcc\xdd\x3d\x85\xb0\x6d\x72\x0c\x5a\xec\xc7\xb3\xd4\xc8\x3c\xd3\x21\x4b\x64\x83\xdf\xbd\x6b\xd5\x71\xc1\x7e\x79\x79\xf0\x1b\xc8\xa5\xdc\xe3\x34\xf1\x88\x8f\x37\xd2\xd0\x4c\x7a\xaa\x97\xa3\x32\x52\xa6\x70\xe2\xb1\x1f\x4b\xbc\xb5\xd6\x73\x71\xe9\x02\xab\x26\x25\x3e\x62\x1b\x74\x4a\x7f\x4c\x21\xc0\xee\x68\x22\x2e\x60\x7f\xe1\x29\xa1\x78\x20\x3e\xc5\xcc\x02\x19\x46\x66\xf1\xc6\xe7\xa0\x24\x62\xfa\xb4\xf2\x3b\x8c\xa9\x9e\xfa\x4e\x17\x73\x73\x70\x1f\x33\x55\x3b\x33\x85\xf0\x78\x54\xb0\xae\x76\x95\xbc\x16\x8b\x1b\xbc\xd3\x60\xb7\xaf\x39\xc7\x52\xd3\x2c\x0c\x12\x72\x0e\xac\x81\x81\x1b\x3c\x07\x65\xd4\xd3\x84\x4c\xec\xeb\x84\xa0\x2a\x39\xeb\x83\xff\x9f\xf9\x8c\xfd\xfd\x58\x92\xfe\x1f\x99\x49\xa0\x27\x25\x7d\x1b\x7f\xb4\x9e\x28\xbe\x87\x7b\x89\xb7\xbc\x75\x7e\xdc\x79\x62\xdf\xc2\x0d\x08\x88\xd4\xc4\xc4\xa7\x03\x8d\x51\x51\xd7\x3c\x3e\xdd\xb3\xce\x4e\xb1\xb4\xcd\xa2\xef\x60\xd9\x7c\xca\x72\x6d\xa2\x36\x11\xb8\x83\x6a\x77\x2b\xa0\xe7\x9a\x8b\x04\xa5\xcc\x0b\x2b\x1a\xa6\x70\x89\xed\x27\x72\x86\x50\xa9\xef\x2b\x21\x23\x12\x4d\x82\x1d\x1c\xfa\xa7\x07\x87\xf7\xa5\x53\x6a\xe2\x28\x65\x24\xcb\x5d\xdf\x06\xb6\xfb\x6f\x60\xd0\x71\xf4\xaf\x47\x67\x44\x71\x7f\x53\x22\x1b\x44\xe6\x6a\x44\x28\xbe\x87\x10\x01\x02\x33\xbe\x5a\x4a\xb5\xc1\xfd\x33\x92\x37\x33\x20\xfb\xbe\x0c\x4f\x5a\x8b\x52\xb4\xd8\x7a\x25\x43\xd8\x38\xcc\x17\x86\x57\xbc\x26\x2e\x42\x21\x38\x47\xbb\x67\xab\x1c\x24\xf7\xaa\x33\x5d\xf1\x86\x68\x3e\xcd\x0c\xb5\x1f\x12\x54\x2b\x69\xa1\x3b\x3d\xcc\xfd\xcf\xf4\x3f\x2f\xdd\x9a\x82\x03\x4d\xcc\xc5\x0e\xb0\xe4\x47\x82\x00\x50\xb3\x2e\xe8\x20\x6b\x88\x12\xa6\xbb\xd5\x5a\x12\xac\xff\x0f\x1b\x76\xc5\xd5\x61\xf7\x82\x7d\x09\xc4\xba\x62\x9b\x77\x67\x7b\x70\xf9\x32\x2b\xca\xd0\x28\xc6\xd8\x26\xbd\x07\x5f\x3c\x62\xed\x02\xc0\xe2\x68\x45\xfc\x00\x9f\x1c\xf5\x51\x1f\x9f\x70\xb2\xb8\x81\xee\x4c\x5b\x13\x45\x3d\x24\x14\xf9\xfc\x21\x3f\x56\xb9\x1f\x3a\x73\xc0\xb5\x30\x77\x2f\x4a\x05\xf0\x3d\xd8\x23\x9c\x16\x05\xef\x87\xaf\x7b\x2c\x1e\x06\x5b\x76\x1d\x9b\x87\x51\x7e\x51\x6a\x6a\x9b\x65\x71\x2a\x69\x6b\x32\x46\xfa\x58\xc2\xd5\x3a\x8c\xb3\x47\x06\x75\x2b\x08\xeb\x8b\x18\xfb\x2a\xfa\x05\x51\x8e\x57\x8f\xc8\x87\x04\x7b\x7c\xc8\x65\x19\x3a\x4e\xa0\x96\x59\x2f\x4b\x9c\x2b\xa3\x30\x99\x96\x22\xb9\xc2\xe4\xb0\x33\xad\xf9\xfe\xe8\xb9\x5d\xbe\xfb\xd3\x0a\x35\x3c\xb2\x05\x25\xb9\x72\xf4\x65\x04\xa0\x15\x3e\x0a\x17\x49\x90\xa4\x48\xf3\x4c\x7a\x01\x5e\x2e\xba\x73\x61\xf0\x08\x49\xd9\xdc\x35\x2a\x17\x64\xa0\xc0\x2f\x2b\x6d\xd7\x8f\xfa\x20\x5e\xbd\xf8\x29\xda\xb8\x76\x11\xbf\x5e\x08\x25\x2d\x59\x8a\x89\x32\x90\x95\xdd\x7e\x29\x9c\x2b\x20\xb4\xb7\xbd\x19\x98\x99\x1b\x12\x11\x8b\x0a\x93\x84\x9f\x95\x5b\x2b\x8e\xdf\x25\x33\xa3\x59\x9f\xcb\xd2\x8b\xd3\xcf\x5c\x92\x48\xcb\xfc\xaf\xab\x35\x40\xb4\x28\xf0\xd5\x42\x01\xca\x2a\x84\xa8\xca\xbd\xa5\xc8\xfa\x51\x22\xd3\xa4", 4096); *(uint64_t*)0x20012448 = 0x20012340; *(uint32_t*)0x20012340 = r[2]; *(uint32_t*)0x20012344 = r[2]; *(uint64_t*)0x20012450 = 0x20012380; *(uint64_t*)0x20012458 = 0x20012400; *(uint32_t*)0x20012460 = 0x1000; *(uint32_t*)0x20012464 = 2; *(uint32_t*)0x20012468 = 0x51; *(uint32_t*)0x2001246c = 5; res = -1; res = ((intptr_t(*)(intptr_t,intptr_t,intptr_t,intptr_t,intptr_t,intptr_t))CAST(zx_channel_call))(/*handle=*/r[2], /*options=*/0, /*deadline=*/r[0], /*args=*/0x20012440, /*actual_bytes=*/0x20012480, /*actual_handles=*/0x200124c0); if (res == ZX_OK) { r[3] = *(uint32_t*)0x2001240c; r[4] = *(uint32_t*)0x20012410; } break; case 7: ((intptr_t(*)(intptr_t,intptr_t,intptr_t,intptr_t,intptr_t,intptr_t,intptr_t,intptr_t))CAST(zx_channel_read))(/*handle=*/r[3], /*options=*/0, /*bytes=*/0x20012500, /*num_bytes=*/0x10000, /*handles=*/0x20022500, /*num_handles=*/0, /*actual_bytes=*/0x20022540, /*actual_handles=*/0x20022580); break; case 8: res = -1; res = ((intptr_t(*)(intptr_t,intptr_t,intptr_t,intptr_t,intptr_t,intptr_t))CAST(zx_pager_create_vmo))(/*pager=*/r[4], /*options=*/0, /*port=*/r[4], /*key=*/0x3eb, /*size=*/0x7fb, /*out=*/0x200225c0); if (res == ZX_OK) r[5] = *(uint32_t*)0x200225c0; break; case 9: ((intptr_t(*)(intptr_t,intptr_t,intptr_t,intptr_t))CAST(zx_stream_seek))(/*handle=*/r[5], /*whence=*/0, /*offset=*/0x401, /*out_seek=*/0x20022600); break; case 10: memcpy((void*)0x20000000, "\xc4\xa1\x49\xc2\xda\x0b\x0f\x18\xd2\x3e\x26\xf3\x36\x67\xdb\xe2\xc4\xc1\xd1\x16\x3b\xc4\xc1\xb4\xc6\x85\x0a\x00\x00\x00\x00\xf3\x40\xac\x85\x2f\x47\x0f\xf2\x4a\x00\x44\x79\xa5\x26\xf2\xad", 47); syz_execute_func(/*text=*/0x20000000); break; case 11: syz_future_time(/*when=*/1); break; case 12: syz_job_default(); break; case 13: syz_mmap(/*addr=*/0x20ffb000, /*len=*/0x4000); break; case 14: syz_process_self(); break; case 15: syz_thread_self(); break; case 16: syz_vmar_root_self(); break; } } int main(void) { syz_mmap(/*addr=*/0x20000000, /*len=*/0x1000000); setup_fault(); use_temporary_dir(); do_sandbox_none(); return 0; } :267:66: error: use of undeclared identifier 'zx_system_get_performance_info' ((intptr_t(*)(intptr_t,intptr_t,intptr_t,intptr_t,intptr_t))CAST(zx_system_get_performance_info))(/*res=*/0, /*topic=*/0, /*count=*/4, /*info=*/0x20000000, /*output_count=*/0x20000040); ^ 1 error generated. compiler invocation: /syzkaller/shared/fuchsia/prebuilt/third_party/clang/linux-x64/bin/clang [-o /tmp/syz-executor1105643727 -DGOOS_fuchsia=1 -DGOARCH_amd64=1 -DHOSTGOOS_linux=1 -x c - -Wno-deprecated -target x86_64-fuchsia -ldriver -lfdio -lzircon --sysroot /syzkaller/shared/fuchsia/out/x64/zircon_toolchain/obj/zircon/public/sysroot/sysroot -I /syzkaller/shared/fuchsia/sdk/lib/fdio/include -I /syzkaller/shared/fuchsia/zircon/system/ulib/fidl/include -I /syzkaller/shared/fuchsia/src/lib/ddk/include -I /syzkaller/shared/fuchsia/out/x64/fidling/gen/sdk/fidl/fuchsia.device -I /syzkaller/shared/fuchsia/out/x64/fidling/gen/sdk/fidl/fuchsia.device.manager -I /syzkaller/shared/fuchsia/out/x64/fidling/gen/sdk/fidl/fuchsia.hardware.nand -I /syzkaller/shared/fuchsia/out/x64/fidling/gen/sdk/fidl/fuchsia.hardware.power.statecontrol -I /syzkaller/shared/fuchsia/out/x64/fidling/gen/sdk/fidl/fuchsia.hardware.usb.peripheral -I /syzkaller/shared/fuchsia/out/x64/fidling/gen/zircon/vdso/zx -L /syzkaller/shared/fuchsia/out/x64/x64-shared -O2 -pthread -Wall -Werror -Wparentheses -Wunused-const-variable -Wframe-larger-than=16384 -Wno-array-bounds -Wno-unused-command-line-argument] --- FAIL: TestGenerate/fuchsia/amd64/7 (0.38s) csource_test.go:150: opts: {Threaded:true Repeat:true RepeatTimes:0 Procs:0 Slowdown:1 Sandbox: SandboxArg:0 Leak:false NetInjection:false NetDevices:false NetReset:false Cgroups:false BinfmtMisc:false CloseFDs:false KCSAN:false DevlinkPCI:false NicVF:false USB:false VhciInjection:false Wifi:false IEEE802154:false Sysctl:false Swap:false UseTmpDir:true HandleSegv:false Repro:false Trace:false LegacyOptions:{Collide:false Fault:false FaultCall:0 FaultNth:0}} program: zx_system_get_performance_info(0x0, 0x0, 0x4, &(0x7f0000000000)=""/1, &(0x7f0000000040)) (fail_nth: 1) r0 = syz_future_time(0x1) (async) zx_channel_call$fuchsia_io_FileSeek(0x0, 0x0, r0, &(0x7f0000010140)={&(0x7f0000000080)={{}, 0xffffffffffffffff, 0x2}, &(0x7f00000000c0), &(0x7f0000000100), &(0x7f0000010100), 0x1c, 0x0, 0x10000}, &(0x7f0000010180), &(0x7f00000101c0)) (rerun: 4) zx_process_create(0x0, &(0x7f0000010200)='\x00', 0x1, 0x0, &(0x7f0000010240)=0x0, &(0x7f0000010280)) zx_object_get_child(0x0, 0x0, 0x800, &(0x7f00000102c0)=0x0) zx_process_start(r1, r2, &(0x7f0000010300)="c4817d290e8051bf0065673666450ff7fdc401a1c40009c482f935f1c441fc52d0660fc5f398c4837909c6b1664b0f6ee5f341d8cd", &(0x7f0000010340)=""/4096, 0x0, 0x0) zx_channel_call(r2, 0x0, r0, &(0x7f0000012440)={&(0x7f0000011340)="68b92e90e81a0a65aba68ac3039007c40663fec316f1d3f030eb37cd0f8d9e056bc93cbf8811c6ec84bd43ee1dbc4eb9f291b1ff6296bf0f229b823cf75021ecdd1d843abece20ab3e287801d8a782d9947b008614b221e17c641ae2b5b0307cc6594759aaddde5b89ead9c032e8754ab98f09b03c802934cf4f75a4b153ae626a37333e7f35d166315311f3953ecf02f615822c58ac205d4da75d434ff36da5052a2f5d6c2a15477eb5536c80ee076e9894e6c63c0bf3d3004ce2107385919fcb771beebd389824689fbd28804b23cd933a3ab8d862c1f3cac7352fe4fccfc22d38777d69ba0fa2c820166ae8d351e116f0ca3dcfe6fc6d38f526411d407d0b2f97d822a054f440b05b7598b66e1848b0f2a8c2718f62c2c503fb28c8820626d9f46300f474feda0c816e43d9ed963447e0cd3d473ac3f0633d3d1fe4b43e587c3bfb5d3b9c3fb9472f7593c19a2d573f04796a7655ff5a1c0995834b07b62b79511946216d6c418af8ec0845782f112dfe0b7e4b6b0fb3604b4b2df31177a7c1976de255179553bff2544aa557a454b2657c5b3f0f71cff83c0b92d302d2201b7db36e9d8677dfad29ac432c25ea3b123db4f9240e9202c219a6479f05322aeb7da49f198893bdbfa0bf19a815e63aab70d4bcf3cb8b38f9ee914b43ee33e006d827919ce084d84257cb139979bb144e19cc8745478ea0ffde10d3cf590386497b43f4bc2725ec2d0df94f1a534a1ee8c429400e1078cc58a7bd8d1ded2cf4966766f21b4c07ce40d85593f8642b29652424a85aebdccdd8beba9fbfe6b1414cd3164552e7e49bb930019990dac4751a65be853b953b88eccac92c889c4d95116e94628480baab01a6cd991353ccbc8e78153038f45d9d2dc2c6fb96e37d9bdb69be948f12579371a43969e942ca69387296cf781526b7ef422f4c9bc644827237a03b2a60baaff7703ee33956dc669b1c04c721bf68f343c80b61f35ca1b19559965fd7026a1cec9bd9d92f1450ecbaf42de12042bd630d3445706c56775071deae54f2c531bc8c0be2268a13f12af588057f3ebd3ed17fa09a1a06071ec13e7e7638b15a8e0c55524a90c2d7c79c1b2f427fffaffa26390f1d6cd4abf2169604b2e779a734e06b15d03ed940bbc02ed1203f55dd3fd2957608398fc7265961dda28d626a8ea5edee28a37210c8c7321611e52b4e541c90e0721eda0de5f30cf3885eda30d6ece46263809aa1e5fe88b93106f1e7437faefcce951b197aa5b1f2780aa437cf6a1f9c069fe82d18c57ca9a705cf5202bbd1afc41e1d289a46a434cfd16bb7ce6ee764d5f0e6c81e8486eca116902abad6b98df389eaef8156b8b56325358e01f3ec30d050d9226ecfb0a1d7e2cae6b5ca6738c8cdeba6bc118327d682f8b5957c55617feac811ab2ab6ee3aee63639429f9979db5285c330da8a9f6a306b69cecfb2be3c640f04331fff3789a47445c5125fb99e996f401b319bfce5b08936db9c6f828c682bbe69e866ac0a6b204e02ecefd61142d0c20c1995562bc1fdab582296189a1b34bdb75722e64e7d4f00b8d83fdc2f8fc76971143750acd0d513b81298a2f8c72252cceb73633976f52fc2e93a1ef806ec7957c66eeac4c52f9b584580390c6fa4643e0cad59ad3f58104a728d93bc6869a6f649892eef9ecb3eebcebd34854f8e19db5ac62ba0b67a740bb39b1905e8d345e2ff21b4e25974bd5bc7c862607ddb6ac10cecde59c1a932b2fb5b22c673457bd4a396e3667f4227a276fa1a1b20fb60ff5841af64e981f6c84be84ad1bb10d941d615629654e1d128c9a377ad60b04c3cf2aad7118626eaae0b4068dd623e1a2d98b95524f9db16049ecffd5c8fee7e1bba747a1ee9ec5f67aee0b69951dfa0b587c34beb36be3c16c3ab024eb271f3716499ed5a1795eac3423c37b8fa9d20d1af4e967164263fc60e0cd8e84cfc312b34185f40a7d0777749147f60438653bc3d36a1dad3ea433684464e0c9c12a88c44d862e022992cb4bfa603d1f8d21a0a5bd6c62fc3e8427f196507daed74f62a17ba9781a4740cf7f9c5df12362ded5aaa835c1943c3d93241e9c312bff7232e6e92321400ddacb84b84b1c4120575c5d0246d78ad3e9fd4acbbb5115944d1c39f3e07405baf7dd4bd633c0bfdbaafdb42954eb6206668d53e9947594e4d0911b09036cba8f09f4cc198dc064c68d5a7b848dd2a6a664619611845767f992b1527a62771d36527cc881b5ccc06fbbf864e27dca99a433424bdb6ef631a7c824c246b7222216000dba03d7664c485a2cdfc04042db57164aa760078abb80ed030c0e6c83ae5b9fb4225c7ab72479d1762c730fe1fd9deac13d6cba0d78c01e03c12d9410cfb11ed20166a5780dd5e2eb221aaf424eddde14f4ac8302f16b699713d3225436ed4912aaef584979246f60a5168577856b82c2f809ccea64488fad8de0dccc30e7396c27c60d1da0f294ef98d596707439c35e248849121788643726329c1acd0bd79125240782d8af03b2b5cce2d960b8a9b3c81e1f88b9a07860a916e46053094622c6057af203c842ff84375729030665c5705240949e1b729d29496a29ed39d29317483eec8cbfb7dceac0b0ca6c3fb07aeb6a2368dc767eb07d7ed9cc62b910b801d08989a83f3be58618701c713f298ca7f17eae72510b29568c3159a44a01f7ffaeeddeae9d22c68ea261bc2060bce8a1213142b60b5a8d1e7314fe7fc39364b049d54f2a73cc7780f6ec477cb2738a0cb28a919f2c0cf935c1ef51bbac891338b72813acc379848bfc3b39969aeaa9f2787ddd183c3722a12b0b90f48ce2f7533f00d122c9835280f7fd8a0ad41aa1b08ba6d7dfca7b583c1e03989906040f5984c6699f382909f5939599585232c92776a1b5592712a42d5f44fc21a1882850261042ea98762309ded8799d909d6a406336a5f276fb29e9a8589736ded2e97ebc6f82b5f577d0a07021f4fcd6371c5ed29a5380d9dbf0d0ca34b684631dfb501e2ae243877432dad26a3cd3c94664a295461d6e78d057ef89842bac7a33f6a634b2e374ffac86aee35fd80008ab9809830554d7404e7540f11a7ef273dc846a57eef2b27204be709c3eaea2b305df401e4007f7f2978ebd37190e5e7cbf2d8ee418d6d9fa59ecba7603cba8d2f731733f42e49499c68592f87fea94354e0c066c30a256eab36495b10d082ede4e20630e4d799141cc44801408cd3b28a71c075504b3acc1b69d72ec615275781bf9bbdd87b7d409cf3cdd18e7cc86a164ddb980bf1adac888b7bab3d7c968a46481321c10748b79450303e5aa0860d6fcc4304e80d698866593ff7f18cdd1f93df672c7ce860b192d9e033d8aef00d4685c4165547303848b91bcb2a3956e2d17e51a70a6e383bce71d49be32bd461aec0d691c8849e6b178558e47b28831113fa448e7c950fee79dd5d0190d4c11d29bc2e0477091138e1d3836f1bb86bea2edc7ee8ebfca693022823d4968a067b36c06b0caa8e84633d81ea62e548a4e8709671f0c928a28e524af78ebd0a815aac9f6df611df081b75f5527f3b5a04a501ef02e37afe7aeb077d2d7aab08ccbc243fe69395d77ec5db84c3b6c5c8480afb3b3ce91e6a4dfb9bbeb5e623d1cfeff8b53b1e4f0337a4d8d5b3818517d66704b5756375dd85712ea2ae3c643cb564a9bb8c032ee333d0eccc6fa0170b5dd7a78ad50d7255fa113dfa1b20317b1d4d508967a38306ebe3423233198d6e341339e90d3e31bae9a1528b8f100aec437f656670c2bb3917bf9dff0fc2138cf4de3852c71a0c27ac0e1da61fde7dfe96603fbbe61b7697f4676b73d46f10d092348effa957b9af16aef7fed036ba740eadb9e3ee518700351dd63fd54a7853c6aae180e9cf7e71660178ac8a82b590104827daf9bd1ef078ad56cd393d8c3d0b0c042d27ae4b6f531d02c9f464272a71426d588471c2a6159b36ee76e16585340d1a1831da941556a84eb7684547bba0040dc4198e768c09e38a67562612de6eff630ff92f3c885cc41d31f54b802e6b3b47d51c387d9b3c20b7680dcf0ce71aaa46bfec60eab7f750a534cdb02cfabde84968002558ad22157b0528d13558d2aefcfc47302ef05778e71003c19645d84a511571093fdf67623cde36bc8ca16689b7788841d9f3e0bc1fde3d6a72a98a64aa8b67bf1775b012575dae015b4b0e3a3f96d862f3e75997314bb7ad1e00ede8ba53160eaee9d75f6813ba0a600156e01c1b9ae8cfcf4bf39fbacbc8764cc5656bc812b2541cec7d86c180f5bb38a124427c6966522eeef27ab3ceca125d5a34c832319eb76ca834f09629102c8304a02edc41707e794927c35ac31d6b6c006acd8524dc692878843a291a5d9dec9420aa7fb4d2a7191a5c2e81f6132094391b9ed0f61b0e44a3c2c96fb1309594c37d1a5ab89736e88643add4e2b8c7d9a33eda3d438248597dd2e578eb937874f5b91386511e9f96a8cdd430fb5cb30548cb64380a964356a5205eaaa188e97caced0fc678e6e6b5508614db1a9af942061035338ba7251dd4cd787f7e5465c07121ef8f98da151186ee0c727def8c68885ec3a74a5b69efdaabc97465351b421417c1b79147c9889b39eaf733c4e6b370cc468cde4611e77ee9f29f8cef457b2afdc832d22ee9f01afa23a69ffee441a8e0e02887e00e56864a764f12dfaaa481e9347199fb4dce1ba023d0ccd3843b30ce940d3dd870a3971f5798a53b713216e1ebb754935ddf39e130b4bbdfedae24bbfb943cd3d32fc6711967cf72503ba04d48b68f418a5151b68ccdd3d85b06d720c5aecc7b3d4c83cd3214b6483dfbd6bd571c17e7979f01bc8a5dce334f1888f37d2d04c7aaa97a33252a670e2b11f4bbcb5d67371e902ab26253e621b744a7f4c21c0ee68222e607fe129a178203ec5cc02194666f1c6e7a02462fab4f23b8ca99efa4e177373701f33553b3385f07854b0ae7695bc168b1bbcd360b7af39c752d32c0c12720eac81811b3c0765d4d3844ceceb84a02a39eb83ff9ff98cfdfd5892fe1f9949a027257d1b7fb49e28be877b89b7bc757edc7962dfc20d0888d4c4c4a7038d5151d73c3eddb3ce4eb1b4cda2ef60d97cca726da23611b8836a772ba0e79a8b04a5cc0b2b1aa67089ed27728650a9ef2b2123124d821d1cfaa70787f7a5536ae2286524cb5ddf06b6fb6f60d071f4af476744717f53221b44e66a4428be8710010233be5a4ab5c1fd3392373320fbbe0c4f5a8b52b4d87a2543d838cc178657bc262e42213847bb67ab1c24f7aa335df186683ecd0cb51f12542b69a13b3dccfdcff43f2fdd9a82034dccc50eb0e447820050b32ee8206b8812a6bbd55a12acff0f1b76c5d561f7827d09c4ba629b77677b70f9322bcad028c6d826bd075f3c62ed02c0e26845fc009f1cf5511f9f70b2b881ee4c5b13453d2414f9fc213f56b91f3a73c0b530772f4a05f03dd8239c1605ef87af7b2c1e065b761d9b87517e516a6a9b65712a696b3246fa58c2d53a8cb34706752b08eb8b18fb2afa05518e578fc887047b7cc865193a4ea096592f4b9c2ba330999622b9c2e4b033adf9fee8b95dbefbd30a353cb20525b972f46504a0153e0a174990a448f34c7a015e2eba7361f00849d9dc352a1764a0c02f2b6dd78ffa205ebdf829dab87611bf5e08252d598a89329095dd7e299c2b20b4b7bd1998991b12118b0a93849f955b2b8edf2533a3599fcbd28bd3cf5c9248cbfcafab3540b428f0d54201ca2a84a8cabda5c8fa5122d3a4", &(0x7f0000012340)=[r2, r2], &(0x7f0000012380)=""/81, &(0x7f0000012400)=[0x0, 0x0, 0x0, 0x0, 0x0], 0x1000, 0x2, 0x51, 0x5}, &(0x7f0000012480), &(0x7f00000124c0)) zx_channel_read$fuchsia_io_DirectoryAdminOnOpen(r3, 0x0, &(0x7f0000012500), 0x10000, &(0x7f0000022500), 0x0, &(0x7f0000022540), &(0x7f0000022580)) zx_pager_create_vmo(r4, 0x0, r4, 0x3, 0x7fb, &(0x7f00000225c0)=0x0) zx_stream_seek(r5, 0x0, 0x401, &(0x7f0000022600)) syz_execute_func(&(0x7f0000000000)="c4a149c2da0b0f18d23e26f33667dbe2c4c1d1163bc4c1b4c6850a00000000f340ac852f470ff24a004479a526f2ad") syz_future_time(0x1) syz_job_default() syz_mmap(&(0x7f0000ffb000/0x4000)=nil, 0x4000) syz_process_self() syz_thread_self() syz_vmar_root_self() csource_test.go:151: failed to build program: // autogenerated by syzkaller (https://github.com/google/syzkaller) #define _GNU_SOURCE #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include static void sleep_ms(uint64_t ms) { usleep(ms * 1000); } static uint64_t current_time_ms(void) { struct timespec ts; if (clock_gettime(CLOCK_MONOTONIC, &ts)) exit(1); return (uint64_t)ts.tv_sec * 1000 + (uint64_t)ts.tv_nsec / 1000000; } static void use_temporary_dir(void) { char tmpdir_template[] = "/tmp/syzkaller.XXXXXX"; char* tmpdir = mkdtemp(tmpdir_template); if (!tmpdir) exit(1); if (chmod(tmpdir, 0777)) exit(1); if (chdir(tmpdir)) exit(1); } static int inject_fault(int nth) { return 0; } static void setup_fault() { } static void thread_start(void* (*fn)(void*), void* arg) { pthread_t th; pthread_attr_t attr; pthread_attr_init(&attr); pthread_attr_setstacksize(&attr, 128 << 10); int i = 0; for (; i < 100; i++) { if (pthread_create(&th, &attr, fn, arg) == 0) { pthread_attr_destroy(&attr); return; } if (errno == EAGAIN) { usleep(50); continue; } break; } exit(1); } typedef struct { int state; } event_t; static void event_init(event_t* ev) { ev->state = 0; } static void event_reset(event_t* ev) { ev->state = 0; } static void event_set(event_t* ev) { if (ev->state) exit(1); __atomic_store_n(&ev->state, 1, __ATOMIC_RELEASE); } static void event_wait(event_t* ev) { while (!__atomic_load_n(&ev->state, __ATOMIC_ACQUIRE)) usleep(200); } static int event_isset(event_t* ev) { return __atomic_load_n(&ev->state, __ATOMIC_ACQUIRE); } static int event_timedwait(event_t* ev, uint64_t timeout_ms) { uint64_t start = current_time_ms(); for (;;) { if (__atomic_load_n(&ev->state, __ATOMIC_RELAXED)) return 1; if (current_time_ms() - start > timeout_ms) return 0; usleep(200); } } long syz_mmap(size_t addr, size_t size) { zx_handle_t root = zx_vmar_root_self(); zx_info_vmar_t info; zx_status_t status = zx_object_get_info(root, ZX_INFO_VMAR, &info, sizeof(info), 0, 0); if (status != ZX_OK) { return status; } zx_handle_t vmo; status = zx_vmo_create(size, 0, &vmo); if (status != ZX_OK) { return status; } uintptr_t mapped_addr; status = zx_vmar_map(root, ZX_VM_FLAG_SPECIFIC_OVERWRITE | ZX_VM_FLAG_PERM_READ | ZX_VM_FLAG_PERM_WRITE, addr - info.base, vmo, 0, size, &mapped_addr); zx_status_t close_vmo_status = zx_handle_close(vmo); if (close_vmo_status != ZX_OK) { } return status; } static long syz_process_self(void) { return zx_process_self(); } static long syz_thread_self(void) { return zx_thread_self(); } static long syz_vmar_root_self(void) { return zx_vmar_root_self(); } static long syz_job_default(void) { return zx_job_default(); } static long syz_future_time(volatile long when) { zx_time_t delta_ms = 10000; switch (when) { case 0: delta_ms = 5; break; case 1: delta_ms = 30; break; } zx_time_t now = 0; zx_clock_read(ZX_CLOCK_MONOTONIC, &now); return now + delta_ms * 1000 * 1000; } #define CAST(f) ({void* p = (void*)f; p; }) static long syz_execute_func(volatile long text) { ((void (*)(void))(text))(); return 0; } struct thread_t { int created, call; event_t ready, done; }; static struct thread_t threads[16]; static void execute_call(int call); static int running; static void* thr(void* arg) { struct thread_t* th = (struct thread_t*)arg; for (;;) { event_wait(&th->ready); event_reset(&th->ready); execute_call(th->call); __atomic_fetch_sub(&running, 1, __ATOMIC_RELAXED); event_set(&th->done); } return 0; } static void execute_one(void) { int i, call, thread; for (call = 0; call < 17; call++) { for (thread = 0; thread < (int)(sizeof(threads) / sizeof(threads[0])); thread++) { struct thread_t* th = &threads[thread]; if (!th->created) { th->created = 1; event_init(&th->ready); event_init(&th->done); event_set(&th->done); thread_start(thr, th); } if (!event_isset(&th->done)) continue; event_reset(&th->done); th->call = call; __atomic_fetch_add(&running, 1, __ATOMIC_RELAXED); event_set(&th->ready); if (call == 1) break; event_timedwait(&th->done, 50); break; } } for (i = 0; i < 100 && __atomic_load_n(&running, __ATOMIC_RELAXED); i++) sleep_ms(1); } static void execute_one(void); static void loop(void) { execute_one(); } uint64_t r[6] = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0}; void execute_call(int call) { intptr_t res = 0; switch (call) { case 0: inject_fault(1); ((intptr_t(*)(intptr_t,intptr_t,intptr_t,intptr_t,intptr_t))CAST(zx_system_get_performance_info))(/*res=*/0, /*topic=*/0, /*count=*/4, /*info=*/0x20000000, /*output_count=*/0x20000040); break; case 1: res = -1; res = syz_future_time(/*when=*/1); if ((int)res != -1) r[0] = res; break; case 2: *(uint64_t*)0x20010140 = 0x20000080; *(uint32_t*)0x20000080 = 0; memset((void*)0x20000084, 0, 3); *(uint8_t*)0x20000087 = 1; *(uint64_t*)0x20000088 = 0x782a774500000000; *(uint64_t*)0x20000090 = -1; *(uint32_t*)0x20000098 = 2; *(uint64_t*)0x20010148 = 0x200000c0; *(uint64_t*)0x20010150 = 0x20000100; *(uint64_t*)0x20010158 = 0x20010100; *(uint32_t*)0x20010160 = 0x1c; *(uint32_t*)0x20010164 = 0; *(uint32_t*)0x20010168 = 0x10000; *(uint32_t*)0x2001016c = 0; ((intptr_t(*)(intptr_t,intptr_t,intptr_t,intptr_t,intptr_t,intptr_t))CAST(zx_channel_call))(/*handle=*/0, /*options=*/0, /*deadline=*/r[0], /*args=*/0x20010140, /*actual_bytes=*/0x20010180, /*actual_handles=*/0x200101c0); { int i; for(i = 0; i < 4; i++) { ((intptr_t(*)(intptr_t,intptr_t,intptr_t,intptr_t,intptr_t,intptr_t))CAST(zx_channel_call))(/*handle=*/0, /*options=*/0, /*deadline=*/r[0], /*args=*/0x20010140, /*actual_bytes=*/0x20010180, /*actual_handles=*/0x200101c0); } } break; case 3: memset((void*)0x20010200, 0, 1); res = -1; res = ((intptr_t(*)(intptr_t,intptr_t,intptr_t,intptr_t,intptr_t,intptr_t))CAST(zx_process_create))(/*job=*/0, /*name=*/0x20010200, /*name_len=*/1, /*options=*/0, /*proc_handle=*/0x20010240, /*vmar_handle=*/0x20010280); if (res == ZX_OK) r[1] = *(uint32_t*)0x20010240; break; case 4: res = -1; res = ((intptr_t(*)(intptr_t,intptr_t,intptr_t,intptr_t))CAST(zx_object_get_child))(/*handle=*/0, /*koid=*/0, /*rights=*/0x800, /*out=*/0x200102c0); if (res == ZX_OK) r[2] = *(uint32_t*)0x200102c0; break; case 5: memcpy((void*)0x20010300, "\xc4\x81\x7d\x29\x0e\x80\x51\xbf\x00\x65\x67\x36\x66\x45\x0f\xf7\xfd\xc4\x01\xa1\xc4\x00\x09\xc4\x82\xf9\x35\xf1\xc4\x41\xfc\x52\xd0\x66\x0f\xc5\xf3\x98\xc4\x83\x79\x09\xc6\xb1\x66\x4b\x0f\x6e\xe5\xf3\x41\xd8\xcd", 53); ((intptr_t(*)(intptr_t,intptr_t,intptr_t,intptr_t,intptr_t,intptr_t))CAST(zx_process_start))(/*process=*/r[1], /*thread=*/r[2], /*entry=*/0x20010300, /*stack=*/0x20010340, /*arg1=*/0, /*arg2=*/0); break; case 6: *(uint64_t*)0x20012440 = 0x20011340; memcpy((void*)0x20011340, "\x68\xb9\x2e\x90\xe8\x1a\x0a\x65\xab\xa6\x8a\xc3\x03\x90\x07\xc4\x06\x63\xfe\xc3\x16\xf1\xd3\xf0\x30\xeb\x37\xcd\x0f\x8d\x9e\x05\x6b\xc9\x3c\xbf\x88\x11\xc6\xec\x84\xbd\x43\xee\x1d\xbc\x4e\xb9\xf2\x91\xb1\xff\x62\x96\xbf\x0f\x22\x9b\x82\x3c\xf7\x50\x21\xec\xdd\x1d\x84\x3a\xbe\xce\x20\xab\x3e\x28\x78\x01\xd8\xa7\x82\xd9\x94\x7b\x00\x86\x14\xb2\x21\xe1\x7c\x64\x1a\xe2\xb5\xb0\x30\x7c\xc6\x59\x47\x59\xaa\xdd\xde\x5b\x89\xea\xd9\xc0\x32\xe8\x75\x4a\xb9\x8f\x09\xb0\x3c\x80\x29\x34\xcf\x4f\x75\xa4\xb1\x53\xae\x62\x6a\x37\x33\x3e\x7f\x35\xd1\x66\x31\x53\x11\xf3\x95\x3e\xcf\x02\xf6\x15\x82\x2c\x58\xac\x20\x5d\x4d\xa7\x5d\x43\x4f\xf3\x6d\xa5\x05\x2a\x2f\x5d\x6c\x2a\x15\x47\x7e\xb5\x53\x6c\x80\xee\x07\x6e\x98\x94\xe6\xc6\x3c\x0b\xf3\xd3\x00\x4c\xe2\x10\x73\x85\x91\x9f\xcb\x77\x1b\xee\xbd\x38\x98\x24\x68\x9f\xbd\x28\x80\x4b\x23\xcd\x93\x3a\x3a\xb8\xd8\x62\xc1\xf3\xca\xc7\x35\x2f\xe4\xfc\xcf\xc2\x2d\x38\x77\x7d\x69\xba\x0f\xa2\xc8\x20\x16\x6a\xe8\xd3\x51\xe1\x16\xf0\xca\x3d\xcf\xe6\xfc\x6d\x38\xf5\x26\x41\x1d\x40\x7d\x0b\x2f\x97\xd8\x22\xa0\x54\xf4\x40\xb0\x5b\x75\x98\xb6\x6e\x18\x48\xb0\xf2\xa8\xc2\x71\x8f\x62\xc2\xc5\x03\xfb\x28\xc8\x82\x06\x26\xd9\xf4\x63\x00\xf4\x74\xfe\xda\x0c\x81\x6e\x43\xd9\xed\x96\x34\x47\xe0\xcd\x3d\x47\x3a\xc3\xf0\x63\x3d\x3d\x1f\xe4\xb4\x3e\x58\x7c\x3b\xfb\x5d\x3b\x9c\x3f\xb9\x47\x2f\x75\x93\xc1\x9a\x2d\x57\x3f\x04\x79\x6a\x76\x55\xff\x5a\x1c\x09\x95\x83\x4b\x07\xb6\x2b\x79\x51\x19\x46\x21\x6d\x6c\x41\x8a\xf8\xec\x08\x45\x78\x2f\x11\x2d\xfe\x0b\x7e\x4b\x6b\x0f\xb3\x60\x4b\x4b\x2d\xf3\x11\x77\xa7\xc1\x97\x6d\xe2\x55\x17\x95\x53\xbf\xf2\x54\x4a\xa5\x57\xa4\x54\xb2\x65\x7c\x5b\x3f\x0f\x71\xcf\xf8\x3c\x0b\x92\xd3\x02\xd2\x20\x1b\x7d\xb3\x6e\x9d\x86\x77\xdf\xad\x29\xac\x43\x2c\x25\xea\x3b\x12\x3d\xb4\xf9\x24\x0e\x92\x02\xc2\x19\xa6\x47\x9f\x05\x32\x2a\xeb\x7d\xa4\x9f\x19\x88\x93\xbd\xbf\xa0\xbf\x19\xa8\x15\xe6\x3a\xab\x70\xd4\xbc\xf3\xcb\x8b\x38\xf9\xee\x91\x4b\x43\xee\x33\xe0\x06\xd8\x27\x91\x9c\xe0\x84\xd8\x42\x57\xcb\x13\x99\x79\xbb\x14\x4e\x19\xcc\x87\x45\x47\x8e\xa0\xff\xde\x10\xd3\xcf\x59\x03\x86\x49\x7b\x43\xf4\xbc\x27\x25\xec\x2d\x0d\xf9\x4f\x1a\x53\x4a\x1e\xe8\xc4\x29\x40\x0e\x10\x78\xcc\x58\xa7\xbd\x8d\x1d\xed\x2c\xf4\x96\x67\x66\xf2\x1b\x4c\x07\xce\x40\xd8\x55\x93\xf8\x64\x2b\x29\x65\x24\x24\xa8\x5a\xeb\xdc\xcd\xd8\xbe\xba\x9f\xbf\xe6\xb1\x41\x4c\xd3\x16\x45\x52\xe7\xe4\x9b\xb9\x30\x01\x99\x90\xda\xc4\x75\x1a\x65\xbe\x85\x3b\x95\x3b\x88\xec\xca\xc9\x2c\x88\x9c\x4d\x95\x11\x6e\x94\x62\x84\x80\xba\xab\x01\xa6\xcd\x99\x13\x53\xcc\xbc\x8e\x78\x15\x30\x38\xf4\x5d\x9d\x2d\xc2\xc6\xfb\x96\xe3\x7d\x9b\xdb\x69\xbe\x94\x8f\x12\x57\x93\x71\xa4\x39\x69\xe9\x42\xca\x69\x38\x72\x96\xcf\x78\x15\x26\xb7\xef\x42\x2f\x4c\x9b\xc6\x44\x82\x72\x37\xa0\x3b\x2a\x60\xba\xaf\xf7\x70\x3e\xe3\x39\x56\xdc\x66\x9b\x1c\x04\xc7\x21\xbf\x68\xf3\x43\xc8\x0b\x61\xf3\x5c\xa1\xb1\x95\x59\x96\x5f\xd7\x02\x6a\x1c\xec\x9b\xd9\xd9\x2f\x14\x50\xec\xba\xf4\x2d\xe1\x20\x42\xbd\x63\x0d\x34\x45\x70\x6c\x56\x77\x50\x71\xde\xae\x54\xf2\xc5\x31\xbc\x8c\x0b\xe2\x26\x8a\x13\xf1\x2a\xf5\x88\x05\x7f\x3e\xbd\x3e\xd1\x7f\xa0\x9a\x1a\x06\x07\x1e\xc1\x3e\x7e\x76\x38\xb1\x5a\x8e\x0c\x55\x52\x4a\x90\xc2\xd7\xc7\x9c\x1b\x2f\x42\x7f\xff\xaf\xfa\x26\x39\x0f\x1d\x6c\xd4\xab\xf2\x16\x96\x04\xb2\xe7\x79\xa7\x34\xe0\x6b\x15\xd0\x3e\xd9\x40\xbb\xc0\x2e\xd1\x20\x3f\x55\xdd\x3f\xd2\x95\x76\x08\x39\x8f\xc7\x26\x59\x61\xdd\xa2\x8d\x62\x6a\x8e\xa5\xed\xee\x28\xa3\x72\x10\xc8\xc7\x32\x16\x11\xe5\x2b\x4e\x54\x1c\x90\xe0\x72\x1e\xda\x0d\xe5\xf3\x0c\xf3\x88\x5e\xda\x30\xd6\xec\xe4\x62\x63\x80\x9a\xa1\xe5\xfe\x88\xb9\x31\x06\xf1\xe7\x43\x7f\xae\xfc\xce\x95\x1b\x19\x7a\xa5\xb1\xf2\x78\x0a\xa4\x37\xcf\x6a\x1f\x9c\x06\x9f\xe8\x2d\x18\xc5\x7c\xa9\xa7\x05\xcf\x52\x02\xbb\xd1\xaf\xc4\x1e\x1d\x28\x9a\x46\xa4\x34\xcf\xd1\x6b\xb7\xce\x6e\xe7\x64\xd5\xf0\xe6\xc8\x1e\x84\x86\xec\xa1\x16\x90\x2a\xba\xd6\xb9\x8d\xf3\x89\xea\xef\x81\x56\xb8\xb5\x63\x25\x35\x8e\x01\xf3\xec\x30\xd0\x50\xd9\x22\x6e\xcf\xb0\xa1\xd7\xe2\xca\xe6\xb5\xca\x67\x38\xc8\xcd\xeb\xa6\xbc\x11\x83\x27\xd6\x82\xf8\xb5\x95\x7c\x55\x61\x7f\xea\xc8\x11\xab\x2a\xb6\xee\x3a\xee\x63\x63\x94\x29\xf9\x97\x9d\xb5\x28\x5c\x33\x0d\xa8\xa9\xf6\xa3\x06\xb6\x9c\xec\xfb\x2b\xe3\xc6\x40\xf0\x43\x31\xff\xf3\x78\x9a\x47\x44\x5c\x51\x25\xfb\x99\xe9\x96\xf4\x01\xb3\x19\xbf\xce\x5b\x08\x93\x6d\xb9\xc6\xf8\x28\xc6\x82\xbb\xe6\x9e\x86\x6a\xc0\xa6\xb2\x04\xe0\x2e\xce\xfd\x61\x14\x2d\x0c\x20\xc1\x99\x55\x62\xbc\x1f\xda\xb5\x82\x29\x61\x89\xa1\xb3\x4b\xdb\x75\x72\x2e\x64\xe7\xd4\xf0\x0b\x8d\x83\xfd\xc2\xf8\xfc\x76\x97\x11\x43\x75\x0a\xcd\x0d\x51\x3b\x81\x29\x8a\x2f\x8c\x72\x25\x2c\xce\xb7\x36\x33\x97\x6f\x52\xfc\x2e\x93\xa1\xef\x80\x6e\xc7\x95\x7c\x66\xee\xac\x4c\x52\xf9\xb5\x84\x58\x03\x90\xc6\xfa\x46\x43\xe0\xca\xd5\x9a\xd3\xf5\x81\x04\xa7\x28\xd9\x3b\xc6\x86\x9a\x6f\x64\x98\x92\xee\xf9\xec\xb3\xee\xbc\xeb\xd3\x48\x54\xf8\xe1\x9d\xb5\xac\x62\xba\x0b\x67\xa7\x40\xbb\x39\xb1\x90\x5e\x8d\x34\x5e\x2f\xf2\x1b\x4e\x25\x97\x4b\xd5\xbc\x7c\x86\x26\x07\xdd\xb6\xac\x10\xce\xcd\xe5\x9c\x1a\x93\x2b\x2f\xb5\xb2\x2c\x67\x34\x57\xbd\x4a\x39\x6e\x36\x67\xf4\x22\x7a\x27\x6f\xa1\xa1\xb2\x0f\xb6\x0f\xf5\x84\x1a\xf6\x4e\x98\x1f\x6c\x84\xbe\x84\xad\x1b\xb1\x0d\x94\x1d\x61\x56\x29\x65\x4e\x1d\x12\x8c\x9a\x37\x7a\xd6\x0b\x04\xc3\xcf\x2a\xad\x71\x18\x62\x6e\xaa\xe0\xb4\x06\x8d\xd6\x23\xe1\xa2\xd9\x8b\x95\x52\x4f\x9d\xb1\x60\x49\xec\xff\xd5\xc8\xfe\xe7\xe1\xbb\xa7\x47\xa1\xee\x9e\xc5\xf6\x7a\xee\x0b\x69\x95\x1d\xfa\x0b\x58\x7c\x34\xbe\xb3\x6b\xe3\xc1\x6c\x3a\xb0\x24\xeb\x27\x1f\x37\x16\x49\x9e\xd5\xa1\x79\x5e\xac\x34\x23\xc3\x7b\x8f\xa9\xd2\x0d\x1a\xf4\xe9\x67\x16\x42\x63\xfc\x60\xe0\xcd\x8e\x84\xcf\xc3\x12\xb3\x41\x85\xf4\x0a\x7d\x07\x77\x74\x91\x47\xf6\x04\x38\x65\x3b\xc3\xd3\x6a\x1d\xad\x3e\xa4\x33\x68\x44\x64\xe0\xc9\xc1\x2a\x88\xc4\x4d\x86\x2e\x02\x29\x92\xcb\x4b\xfa\x60\x3d\x1f\x8d\x21\xa0\xa5\xbd\x6c\x62\xfc\x3e\x84\x27\xf1\x96\x50\x7d\xae\xd7\x4f\x62\xa1\x7b\xa9\x78\x1a\x47\x40\xcf\x7f\x9c\x5d\xf1\x23\x62\xde\xd5\xaa\xa8\x35\xc1\x94\x3c\x3d\x93\x24\x1e\x9c\x31\x2b\xff\x72\x32\xe6\xe9\x23\x21\x40\x0d\xda\xcb\x84\xb8\x4b\x1c\x41\x20\x57\x5c\x5d\x02\x46\xd7\x8a\xd3\xe9\xfd\x4a\xcb\xbb\x51\x15\x94\x4d\x1c\x39\xf3\xe0\x74\x05\xba\xf7\xdd\x4b\xd6\x33\xc0\xbf\xdb\xaa\xfd\xb4\x29\x54\xeb\x62\x06\x66\x8d\x53\xe9\x94\x75\x94\xe4\xd0\x91\x1b\x09\x03\x6c\xba\x8f\x09\xf4\xcc\x19\x8d\xc0\x64\xc6\x8d\x5a\x7b\x84\x8d\xd2\xa6\xa6\x64\x61\x96\x11\x84\x57\x67\xf9\x92\xb1\x52\x7a\x62\x77\x1d\x36\x52\x7c\xc8\x81\xb5\xcc\xc0\x6f\xbb\xf8\x64\xe2\x7d\xca\x99\xa4\x33\x42\x4b\xdb\x6e\xf6\x31\xa7\xc8\x24\xc2\x46\xb7\x22\x22\x16\x00\x0d\xba\x03\xd7\x66\x4c\x48\x5a\x2c\xdf\xc0\x40\x42\xdb\x57\x16\x4a\xa7\x60\x07\x8a\xbb\x80\xed\x03\x0c\x0e\x6c\x83\xae\x5b\x9f\xb4\x22\x5c\x7a\xb7\x24\x79\xd1\x76\x2c\x73\x0f\xe1\xfd\x9d\xea\xc1\x3d\x6c\xba\x0d\x78\xc0\x1e\x03\xc1\x2d\x94\x10\xcf\xb1\x1e\xd2\x01\x66\xa5\x78\x0d\xd5\xe2\xeb\x22\x1a\xaf\x42\x4e\xdd\xde\x14\xf4\xac\x83\x02\xf1\x6b\x69\x97\x13\xd3\x22\x54\x36\xed\x49\x12\xaa\xef\x58\x49\x79\x24\x6f\x60\xa5\x16\x85\x77\x85\x6b\x82\xc2\xf8\x09\xcc\xea\x64\x48\x8f\xad\x8d\xe0\xdc\xcc\x30\xe7\x39\x6c\x27\xc6\x0d\x1d\xa0\xf2\x94\xef\x98\xd5\x96\x70\x74\x39\xc3\x5e\x24\x88\x49\x12\x17\x88\x64\x37\x26\x32\x9c\x1a\xcd\x0b\xd7\x91\x25\x24\x07\x82\xd8\xaf\x03\xb2\xb5\xcc\xe2\xd9\x60\xb8\xa9\xb3\xc8\x1e\x1f\x88\xb9\xa0\x78\x60\xa9\x16\xe4\x60\x53\x09\x46\x22\xc6\x05\x7a\xf2\x03\xc8\x42\xff\x84\x37\x57\x29\x03\x06\x65\xc5\x70\x52\x40\x94\x9e\x1b\x72\x9d\x29\x49\x6a\x29\xed\x39\xd2\x93\x17\x48\x3e\xec\x8c\xbf\xb7\xdc\xea\xc0\xb0\xca\x6c\x3f\xb0\x7a\xeb\x6a\x23\x68\xdc\x76\x7e\xb0\x7d\x7e\xd9\xcc\x62\xb9\x10\xb8\x01\xd0\x89\x89\xa8\x3f\x3b\xe5\x86\x18\x70\x1c\x71\x3f\x29\x8c\xa7\xf1\x7e\xae\x72\x51\x0b\x29\x56\x8c\x31\x59\xa4\x4a\x01\xf7\xff\xae\xed\xde\xae\x9d\x22\xc6\x8e\xa2\x61\xbc\x20\x60\xbc\xe8\xa1\x21\x31\x42\xb6\x0b\x5a\x8d\x1e\x73\x14\xfe\x7f\xc3\x93\x64\xb0\x49\xd5\x4f\x2a\x73\xcc\x77\x80\xf6\xec\x47\x7c\xb2\x73\x8a\x0c\xb2\x8a\x91\x9f\x2c\x0c\xf9\x35\xc1\xef\x51\xbb\xac\x89\x13\x38\xb7\x28\x13\xac\xc3\x79\x84\x8b\xfc\x3b\x39\x96\x9a\xea\xa9\xf2\x78\x7d\xdd\x18\x3c\x37\x22\xa1\x2b\x0b\x90\xf4\x8c\xe2\xf7\x53\x3f\x00\xd1\x22\xc9\x83\x52\x80\xf7\xfd\x8a\x0a\xd4\x1a\xa1\xb0\x8b\xa6\xd7\xdf\xca\x7b\x58\x3c\x1e\x03\x98\x99\x06\x04\x0f\x59\x84\xc6\x69\x9f\x38\x29\x09\xf5\x93\x95\x99\x58\x52\x32\xc9\x27\x76\xa1\xb5\x59\x27\x12\xa4\x2d\x5f\x44\xfc\x21\xa1\x88\x28\x50\x26\x10\x42\xea\x98\x76\x23\x09\xde\xd8\x79\x9d\x90\x9d\x6a\x40\x63\x36\xa5\xf2\x76\xfb\x29\xe9\xa8\x58\x97\x36\xde\xd2\xe9\x7e\xbc\x6f\x82\xb5\xf5\x77\xd0\xa0\x70\x21\xf4\xfc\xd6\x37\x1c\x5e\xd2\x9a\x53\x80\xd9\xdb\xf0\xd0\xca\x34\xb6\x84\x63\x1d\xfb\x50\x1e\x2a\xe2\x43\x87\x74\x32\xda\xd2\x6a\x3c\xd3\xc9\x46\x64\xa2\x95\x46\x1d\x6e\x78\xd0\x57\xef\x89\x84\x2b\xac\x7a\x33\xf6\xa6\x34\xb2\xe3\x74\xff\xac\x86\xae\xe3\x5f\xd8\x00\x08\xab\x98\x09\x83\x05\x54\xd7\x40\x4e\x75\x40\xf1\x1a\x7e\xf2\x73\xdc\x84\x6a\x57\xee\xf2\xb2\x72\x04\xbe\x70\x9c\x3e\xae\xa2\xb3\x05\xdf\x40\x1e\x40\x07\xf7\xf2\x97\x8e\xbd\x37\x19\x0e\x5e\x7c\xbf\x2d\x8e\xe4\x18\xd6\xd9\xfa\x59\xec\xba\x76\x03\xcb\xa8\xd2\xf7\x31\x73\x3f\x42\xe4\x94\x99\xc6\x85\x92\xf8\x7f\xea\x94\x35\x4e\x0c\x06\x6c\x30\xa2\x56\xea\xb3\x64\x95\xb1\x0d\x08\x2e\xde\x4e\x20\x63\x0e\x4d\x79\x91\x41\xcc\x44\x80\x14\x08\xcd\x3b\x28\xa7\x1c\x07\x55\x04\xb3\xac\xc1\xb6\x9d\x72\xec\x61\x52\x75\x78\x1b\xf9\xbb\xdd\x87\xb7\xd4\x09\xcf\x3c\xdd\x18\xe7\xcc\x86\xa1\x64\xdd\xb9\x80\xbf\x1a\xda\xc8\x88\xb7\xba\xb3\xd7\xc9\x68\xa4\x64\x81\x32\x1c\x10\x74\x8b\x79\x45\x03\x03\xe5\xaa\x08\x60\xd6\xfc\xc4\x30\x4e\x80\xd6\x98\x86\x65\x93\xff\x7f\x18\xcd\xd1\xf9\x3d\xf6\x72\xc7\xce\x86\x0b\x19\x2d\x9e\x03\x3d\x8a\xef\x00\xd4\x68\x5c\x41\x65\x54\x73\x03\x84\x8b\x91\xbc\xb2\xa3\x95\x6e\x2d\x17\xe5\x1a\x70\xa6\xe3\x83\xbc\xe7\x1d\x49\xbe\x32\xbd\x46\x1a\xec\x0d\x69\x1c\x88\x49\xe6\xb1\x78\x55\x8e\x47\xb2\x88\x31\x11\x3f\xa4\x48\xe7\xc9\x50\xfe\xe7\x9d\xd5\xd0\x19\x0d\x4c\x11\xd2\x9b\xc2\xe0\x47\x70\x91\x13\x8e\x1d\x38\x36\xf1\xbb\x86\xbe\xa2\xed\xc7\xee\x8e\xbf\xca\x69\x30\x22\x82\x3d\x49\x68\xa0\x67\xb3\x6c\x06\xb0\xca\xa8\xe8\x46\x33\xd8\x1e\xa6\x2e\x54\x8a\x4e\x87\x09\x67\x1f\x0c\x92\x8a\x28\xe5\x24\xaf\x78\xeb\xd0\xa8\x15\xaa\xc9\xf6\xdf\x61\x1d\xf0\x81\xb7\x5f\x55\x27\xf3\xb5\xa0\x4a\x50\x1e\xf0\x2e\x37\xaf\xe7\xae\xb0\x77\xd2\xd7\xaa\xb0\x8c\xcb\xc2\x43\xfe\x69\x39\x5d\x77\xec\x5d\xb8\x4c\x3b\x6c\x5c\x84\x80\xaf\xb3\xb3\xce\x91\xe6\xa4\xdf\xb9\xbb\xeb\x5e\x62\x3d\x1c\xfe\xff\x8b\x53\xb1\xe4\xf0\x33\x7a\x4d\x8d\x5b\x38\x18\x51\x7d\x66\x70\x4b\x57\x56\x37\x5d\xd8\x57\x12\xea\x2a\xe3\xc6\x43\xcb\x56\x4a\x9b\xb8\xc0\x32\xee\x33\x3d\x0e\xcc\xc6\xfa\x01\x70\xb5\xdd\x7a\x78\xad\x50\xd7\x25\x5f\xa1\x13\xdf\xa1\xb2\x03\x17\xb1\xd4\xd5\x08\x96\x7a\x38\x30\x6e\xbe\x34\x23\x23\x31\x98\xd6\xe3\x41\x33\x9e\x90\xd3\xe3\x1b\xae\x9a\x15\x28\xb8\xf1\x00\xae\xc4\x37\xf6\x56\x67\x0c\x2b\xb3\x91\x7b\xf9\xdf\xf0\xfc\x21\x38\xcf\x4d\xe3\x85\x2c\x71\xa0\xc2\x7a\xc0\xe1\xda\x61\xfd\xe7\xdf\xe9\x66\x03\xfb\xbe\x61\xb7\x69\x7f\x46\x76\xb7\x3d\x46\xf1\x0d\x09\x23\x48\xef\xfa\x95\x7b\x9a\xf1\x6a\xef\x7f\xed\x03\x6b\xa7\x40\xea\xdb\x9e\x3e\xe5\x18\x70\x03\x51\xdd\x63\xfd\x54\xa7\x85\x3c\x6a\xae\x18\x0e\x9c\xf7\xe7\x16\x60\x17\x8a\xc8\xa8\x2b\x59\x01\x04\x82\x7d\xaf\x9b\xd1\xef\x07\x8a\xd5\x6c\xd3\x93\xd8\xc3\xd0\xb0\xc0\x42\xd2\x7a\xe4\xb6\xf5\x31\xd0\x2c\x9f\x46\x42\x72\xa7\x14\x26\xd5\x88\x47\x1c\x2a\x61\x59\xb3\x6e\xe7\x6e\x16\x58\x53\x40\xd1\xa1\x83\x1d\xa9\x41\x55\x6a\x84\xeb\x76\x84\x54\x7b\xba\x00\x40\xdc\x41\x98\xe7\x68\xc0\x9e\x38\xa6\x75\x62\x61\x2d\xe6\xef\xf6\x30\xff\x92\xf3\xc8\x85\xcc\x41\xd3\x1f\x54\xb8\x02\xe6\xb3\xb4\x7d\x51\xc3\x87\xd9\xb3\xc2\x0b\x76\x80\xdc\xf0\xce\x71\xaa\xa4\x6b\xfe\xc6\x0e\xab\x7f\x75\x0a\x53\x4c\xdb\x02\xcf\xab\xde\x84\x96\x80\x02\x55\x8a\xd2\x21\x57\xb0\x52\x8d\x13\x55\x8d\x2a\xef\xcf\xc4\x73\x02\xef\x05\x77\x8e\x71\x00\x3c\x19\x64\x5d\x84\xa5\x11\x57\x10\x93\xfd\xf6\x76\x23\xcd\xe3\x6b\xc8\xca\x16\x68\x9b\x77\x88\x84\x1d\x9f\x3e\x0b\xc1\xfd\xe3\xd6\xa7\x2a\x98\xa6\x4a\xa8\xb6\x7b\xf1\x77\x5b\x01\x25\x75\xda\xe0\x15\xb4\xb0\xe3\xa3\xf9\x6d\x86\x2f\x3e\x75\x99\x73\x14\xbb\x7a\xd1\xe0\x0e\xde\x8b\xa5\x31\x60\xea\xee\x9d\x75\xf6\x81\x3b\xa0\xa6\x00\x15\x6e\x01\xc1\xb9\xae\x8c\xfc\xf4\xbf\x39\xfb\xac\xbc\x87\x64\xcc\x56\x56\xbc\x81\x2b\x25\x41\xce\xc7\xd8\x6c\x18\x0f\x5b\xb3\x8a\x12\x44\x27\xc6\x96\x65\x22\xee\xef\x27\xab\x3c\xec\xa1\x25\xd5\xa3\x4c\x83\x23\x19\xeb\x76\xca\x83\x4f\x09\x62\x91\x02\xc8\x30\x4a\x02\xed\xc4\x17\x07\xe7\x94\x92\x7c\x35\xac\x31\xd6\xb6\xc0\x06\xac\xd8\x52\x4d\xc6\x92\x87\x88\x43\xa2\x91\xa5\xd9\xde\xc9\x42\x0a\xa7\xfb\x4d\x2a\x71\x91\xa5\xc2\xe8\x1f\x61\x32\x09\x43\x91\xb9\xed\x0f\x61\xb0\xe4\x4a\x3c\x2c\x96\xfb\x13\x09\x59\x4c\x37\xd1\xa5\xab\x89\x73\x6e\x88\x64\x3a\xdd\x4e\x2b\x8c\x7d\x9a\x33\xed\xa3\xd4\x38\x24\x85\x97\xdd\x2e\x57\x8e\xb9\x37\x87\x4f\x5b\x91\x38\x65\x11\xe9\xf9\x6a\x8c\xdd\x43\x0f\xb5\xcb\x30\x54\x8c\xb6\x43\x80\xa9\x64\x35\x6a\x52\x05\xea\xaa\x18\x8e\x97\xca\xce\xd0\xfc\x67\x8e\x6e\x6b\x55\x08\x61\x4d\xb1\xa9\xaf\x94\x20\x61\x03\x53\x38\xba\x72\x51\xdd\x4c\xd7\x87\xf7\xe5\x46\x5c\x07\x12\x1e\xf8\xf9\x8d\xa1\x51\x18\x6e\xe0\xc7\x27\xde\xf8\xc6\x88\x85\xec\x3a\x74\xa5\xb6\x9e\xfd\xaa\xbc\x97\x46\x53\x51\xb4\x21\x41\x7c\x1b\x79\x14\x7c\x98\x89\xb3\x9e\xaf\x73\x3c\x4e\x6b\x37\x0c\xc4\x68\xcd\xe4\x61\x1e\x77\xee\x9f\x29\xf8\xce\xf4\x57\xb2\xaf\xdc\x83\x2d\x22\xee\x9f\x01\xaf\xa2\x3a\x69\xff\xee\x44\x1a\x8e\x0e\x02\x88\x7e\x00\xe5\x68\x64\xa7\x64\xf1\x2d\xfa\xaa\x48\x1e\x93\x47\x19\x9f\xb4\xdc\xe1\xba\x02\x3d\x0c\xcd\x38\x43\xb3\x0c\xe9\x40\xd3\xdd\x87\x0a\x39\x71\xf5\x79\x8a\x53\xb7\x13\x21\x6e\x1e\xbb\x75\x49\x35\xdd\xf3\x9e\x13\x0b\x4b\xbd\xfe\xda\xe2\x4b\xbf\xb9\x43\xcd\x3d\x32\xfc\x67\x11\x96\x7c\xf7\x25\x03\xba\x04\xd4\x8b\x68\xf4\x18\xa5\x15\x1b\x68\xcc\xdd\x3d\x85\xb0\x6d\x72\x0c\x5a\xec\xc7\xb3\xd4\xc8\x3c\xd3\x21\x4b\x64\x83\xdf\xbd\x6b\xd5\x71\xc1\x7e\x79\x79\xf0\x1b\xc8\xa5\xdc\xe3\x34\xf1\x88\x8f\x37\xd2\xd0\x4c\x7a\xaa\x97\xa3\x32\x52\xa6\x70\xe2\xb1\x1f\x4b\xbc\xb5\xd6\x73\x71\xe9\x02\xab\x26\x25\x3e\x62\x1b\x74\x4a\x7f\x4c\x21\xc0\xee\x68\x22\x2e\x60\x7f\xe1\x29\xa1\x78\x20\x3e\xc5\xcc\x02\x19\x46\x66\xf1\xc6\xe7\xa0\x24\x62\xfa\xb4\xf2\x3b\x8c\xa9\x9e\xfa\x4e\x17\x73\x73\x70\x1f\x33\x55\x3b\x33\x85\xf0\x78\x54\xb0\xae\x76\x95\xbc\x16\x8b\x1b\xbc\xd3\x60\xb7\xaf\x39\xc7\x52\xd3\x2c\x0c\x12\x72\x0e\xac\x81\x81\x1b\x3c\x07\x65\xd4\xd3\x84\x4c\xec\xeb\x84\xa0\x2a\x39\xeb\x83\xff\x9f\xf9\x8c\xfd\xfd\x58\x92\xfe\x1f\x99\x49\xa0\x27\x25\x7d\x1b\x7f\xb4\x9e\x28\xbe\x87\x7b\x89\xb7\xbc\x75\x7e\xdc\x79\x62\xdf\xc2\x0d\x08\x88\xd4\xc4\xc4\xa7\x03\x8d\x51\x51\xd7\x3c\x3e\xdd\xb3\xce\x4e\xb1\xb4\xcd\xa2\xef\x60\xd9\x7c\xca\x72\x6d\xa2\x36\x11\xb8\x83\x6a\x77\x2b\xa0\xe7\x9a\x8b\x04\xa5\xcc\x0b\x2b\x1a\xa6\x70\x89\xed\x27\x72\x86\x50\xa9\xef\x2b\x21\x23\x12\x4d\x82\x1d\x1c\xfa\xa7\x07\x87\xf7\xa5\x53\x6a\xe2\x28\x65\x24\xcb\x5d\xdf\x06\xb6\xfb\x6f\x60\xd0\x71\xf4\xaf\x47\x67\x44\x71\x7f\x53\x22\x1b\x44\xe6\x6a\x44\x28\xbe\x87\x10\x01\x02\x33\xbe\x5a\x4a\xb5\xc1\xfd\x33\x92\x37\x33\x20\xfb\xbe\x0c\x4f\x5a\x8b\x52\xb4\xd8\x7a\x25\x43\xd8\x38\xcc\x17\x86\x57\xbc\x26\x2e\x42\x21\x38\x47\xbb\x67\xab\x1c\x24\xf7\xaa\x33\x5d\xf1\x86\x68\x3e\xcd\x0c\xb5\x1f\x12\x54\x2b\x69\xa1\x3b\x3d\xcc\xfd\xcf\xf4\x3f\x2f\xdd\x9a\x82\x03\x4d\xcc\xc5\x0e\xb0\xe4\x47\x82\x00\x50\xb3\x2e\xe8\x20\x6b\x88\x12\xa6\xbb\xd5\x5a\x12\xac\xff\x0f\x1b\x76\xc5\xd5\x61\xf7\x82\x7d\x09\xc4\xba\x62\x9b\x77\x67\x7b\x70\xf9\x32\x2b\xca\xd0\x28\xc6\xd8\x26\xbd\x07\x5f\x3c\x62\xed\x02\xc0\xe2\x68\x45\xfc\x00\x9f\x1c\xf5\x51\x1f\x9f\x70\xb2\xb8\x81\xee\x4c\x5b\x13\x45\x3d\x24\x14\xf9\xfc\x21\x3f\x56\xb9\x1f\x3a\x73\xc0\xb5\x30\x77\x2f\x4a\x05\xf0\x3d\xd8\x23\x9c\x16\x05\xef\x87\xaf\x7b\x2c\x1e\x06\x5b\x76\x1d\x9b\x87\x51\x7e\x51\x6a\x6a\x9b\x65\x71\x2a\x69\x6b\x32\x46\xfa\x58\xc2\xd5\x3a\x8c\xb3\x47\x06\x75\x2b\x08\xeb\x8b\x18\xfb\x2a\xfa\x05\x51\x8e\x57\x8f\xc8\x87\x04\x7b\x7c\xc8\x65\x19\x3a\x4e\xa0\x96\x59\x2f\x4b\x9c\x2b\xa3\x30\x99\x96\x22\xb9\xc2\xe4\xb0\x33\xad\xf9\xfe\xe8\xb9\x5d\xbe\xfb\xd3\x0a\x35\x3c\xb2\x05\x25\xb9\x72\xf4\x65\x04\xa0\x15\x3e\x0a\x17\x49\x90\xa4\x48\xf3\x4c\x7a\x01\x5e\x2e\xba\x73\x61\xf0\x08\x49\xd9\xdc\x35\x2a\x17\x64\xa0\xc0\x2f\x2b\x6d\xd7\x8f\xfa\x20\x5e\xbd\xf8\x29\xda\xb8\x76\x11\xbf\x5e\x08\x25\x2d\x59\x8a\x89\x32\x90\x95\xdd\x7e\x29\x9c\x2b\x20\xb4\xb7\xbd\x19\x98\x99\x1b\x12\x11\x8b\x0a\x93\x84\x9f\x95\x5b\x2b\x8e\xdf\x25\x33\xa3\x59\x9f\xcb\xd2\x8b\xd3\xcf\x5c\x92\x48\xcb\xfc\xaf\xab\x35\x40\xb4\x28\xf0\xd5\x42\x01\xca\x2a\x84\xa8\xca\xbd\xa5\xc8\xfa\x51\x22\xd3\xa4", 4096); *(uint64_t*)0x20012448 = 0x20012340; *(uint32_t*)0x20012340 = r[2]; *(uint32_t*)0x20012344 = r[2]; *(uint64_t*)0x20012450 = 0x20012380; *(uint64_t*)0x20012458 = 0x20012400; *(uint32_t*)0x20012460 = 0x1000; *(uint32_t*)0x20012464 = 2; *(uint32_t*)0x20012468 = 0x51; *(uint32_t*)0x2001246c = 5; res = -1; res = ((intptr_t(*)(intptr_t,intptr_t,intptr_t,intptr_t,intptr_t,intptr_t))CAST(zx_channel_call))(/*handle=*/r[2], /*options=*/0, /*deadline=*/r[0], /*args=*/0x20012440, /*actual_bytes=*/0x20012480, /*actual_handles=*/0x200124c0); if (res == ZX_OK) { r[3] = *(uint32_t*)0x2001240c; r[4] = *(uint32_t*)0x20012410; } break; case 7: ((intptr_t(*)(intptr_t,intptr_t,intptr_t,intptr_t,intptr_t,intptr_t,intptr_t,intptr_t))CAST(zx_channel_read))(/*handle=*/r[3], /*options=*/0, /*bytes=*/0x20012500, /*num_bytes=*/0x10000, /*handles=*/0x20022500, /*num_handles=*/0, /*actual_bytes=*/0x20022540, /*actual_handles=*/0x20022580); break; case 8: res = -1; res = ((intptr_t(*)(intptr_t,intptr_t,intptr_t,intptr_t,intptr_t,intptr_t))CAST(zx_pager_create_vmo))(/*pager=*/r[4], /*options=*/0, /*port=*/r[4], /*key=*/0x3eb, /*size=*/0x7fb, /*out=*/0x200225c0); if (res == ZX_OK) r[5] = *(uint32_t*)0x200225c0; break; case 9: ((intptr_t(*)(intptr_t,intptr_t,intptr_t,intptr_t))CAST(zx_stream_seek))(/*handle=*/r[5], /*whence=*/0, /*offset=*/0x401, /*out_seek=*/0x20022600); break; case 10: memcpy((void*)0x20000000, "\xc4\xa1\x49\xc2\xda\x0b\x0f\x18\xd2\x3e\x26\xf3\x36\x67\xdb\xe2\xc4\xc1\xd1\x16\x3b\xc4\xc1\xb4\xc6\x85\x0a\x00\x00\x00\x00\xf3\x40\xac\x85\x2f\x47\x0f\xf2\x4a\x00\x44\x79\xa5\x26\xf2\xad", 47); syz_execute_func(/*text=*/0x20000000); break; case 11: syz_future_time(/*when=*/1); break; case 12: syz_job_default(); break; case 13: syz_mmap(/*addr=*/0x20ffb000, /*len=*/0x4000); break; case 14: syz_process_self(); break; case 15: syz_thread_self(); break; case 16: syz_vmar_root_self(); break; } } int main(void) { syz_mmap(/*addr=*/0x20000000, /*len=*/0x1000000); setup_fault(); use_temporary_dir(); loop(); return 0; } :261:66: error: use of undeclared identifier 'zx_system_get_performance_info' ((intptr_t(*)(intptr_t,intptr_t,intptr_t,intptr_t,intptr_t))CAST(zx_system_get_performance_info))(/*res=*/0, /*topic=*/0, /*count=*/4, /*info=*/0x20000000, /*output_count=*/0x20000040); ^ 1 error generated. compiler invocation: /syzkaller/shared/fuchsia/prebuilt/third_party/clang/linux-x64/bin/clang [-o /tmp/syz-executor3785600353 -DGOOS_fuchsia=1 -DGOARCH_amd64=1 -DHOSTGOOS_linux=1 -x c - -Wno-deprecated -target x86_64-fuchsia -ldriver -lfdio -lzircon --sysroot /syzkaller/shared/fuchsia/out/x64/zircon_toolchain/obj/zircon/public/sysroot/sysroot -I /syzkaller/shared/fuchsia/sdk/lib/fdio/include -I /syzkaller/shared/fuchsia/zircon/system/ulib/fidl/include -I /syzkaller/shared/fuchsia/src/lib/ddk/include -I /syzkaller/shared/fuchsia/out/x64/fidling/gen/sdk/fidl/fuchsia.device -I /syzkaller/shared/fuchsia/out/x64/fidling/gen/sdk/fidl/fuchsia.device.manager -I /syzkaller/shared/fuchsia/out/x64/fidling/gen/sdk/fidl/fuchsia.hardware.nand -I /syzkaller/shared/fuchsia/out/x64/fidling/gen/sdk/fidl/fuchsia.hardware.power.statecontrol -I /syzkaller/shared/fuchsia/out/x64/fidling/gen/sdk/fidl/fuchsia.hardware.usb.peripheral -I /syzkaller/shared/fuchsia/out/x64/fidling/gen/zircon/vdso/zx -L /syzkaller/shared/fuchsia/out/x64/x64-shared -O2 -pthread -Wall -Werror -Wparentheses -Wunused-const-variable -Wframe-larger-than=16384 -Wno-array-bounds -Wno-unused-command-line-argument] --- FAIL: TestGenerate/fuchsia/amd64/2 (0.33s) csource_test.go:150: opts: {Threaded:true Repeat:false RepeatTimes:0 Procs:0 Slowdown:1 Sandbox:none SandboxArg:0 Leak:false NetInjection:false NetDevices:false NetReset:false Cgroups:false BinfmtMisc:false CloseFDs:false KCSAN:false DevlinkPCI:false NicVF:false USB:false VhciInjection:false Wifi:false IEEE802154:false Sysctl:false Swap:false UseTmpDir:true HandleSegv:false Repro:false Trace:false LegacyOptions:{Collide:false Fault:false FaultCall:0 FaultNth:0}} program: zx_system_get_performance_info(0x0, 0x0, 0x4, &(0x7f0000000000)=""/1, &(0x7f0000000040)) (fail_nth: 1) r0 = syz_future_time(0x1) (async) zx_channel_call$fuchsia_io_FileSeek(0x0, 0x0, r0, &(0x7f0000010140)={&(0x7f0000000080)={{}, 0xffffffffffffffff, 0x2}, &(0x7f00000000c0), &(0x7f0000000100), &(0x7f0000010100), 0x1c, 0x0, 0x10000}, &(0x7f0000010180), &(0x7f00000101c0)) (rerun: 4) zx_process_create(0x0, &(0x7f0000010200)='\x00', 0x1, 0x0, &(0x7f0000010240)=0x0, &(0x7f0000010280)) zx_object_get_child(0x0, 0x0, 0x800, &(0x7f00000102c0)=0x0) zx_process_start(r1, r2, &(0x7f0000010300)="c4817d290e8051bf0065673666450ff7fdc401a1c40009c482f935f1c441fc52d0660fc5f398c4837909c6b1664b0f6ee5f341d8cd", &(0x7f0000010340)=""/4096, 0x0, 0x0) zx_channel_call(r2, 0x0, r0, &(0x7f0000012440)={&(0x7f0000011340)="68b92e90e81a0a65aba68ac3039007c40663fec316f1d3f030eb37cd0f8d9e056bc93cbf8811c6ec84bd43ee1dbc4eb9f291b1ff6296bf0f229b823cf75021ecdd1d843abece20ab3e287801d8a782d9947b008614b221e17c641ae2b5b0307cc6594759aaddde5b89ead9c032e8754ab98f09b03c802934cf4f75a4b153ae626a37333e7f35d166315311f3953ecf02f615822c58ac205d4da75d434ff36da5052a2f5d6c2a15477eb5536c80ee076e9894e6c63c0bf3d3004ce2107385919fcb771beebd389824689fbd28804b23cd933a3ab8d862c1f3cac7352fe4fccfc22d38777d69ba0fa2c820166ae8d351e116f0ca3dcfe6fc6d38f526411d407d0b2f97d822a054f440b05b7598b66e1848b0f2a8c2718f62c2c503fb28c8820626d9f46300f474feda0c816e43d9ed963447e0cd3d473ac3f0633d3d1fe4b43e587c3bfb5d3b9c3fb9472f7593c19a2d573f04796a7655ff5a1c0995834b07b62b79511946216d6c418af8ec0845782f112dfe0b7e4b6b0fb3604b4b2df31177a7c1976de255179553bff2544aa557a454b2657c5b3f0f71cff83c0b92d302d2201b7db36e9d8677dfad29ac432c25ea3b123db4f9240e9202c219a6479f05322aeb7da49f198893bdbfa0bf19a815e63aab70d4bcf3cb8b38f9ee914b43ee33e006d827919ce084d84257cb139979bb144e19cc8745478ea0ffde10d3cf590386497b43f4bc2725ec2d0df94f1a534a1ee8c429400e1078cc58a7bd8d1ded2cf4966766f21b4c07ce40d85593f8642b29652424a85aebdccdd8beba9fbfe6b1414cd3164552e7e49bb930019990dac4751a65be853b953b88eccac92c889c4d95116e94628480baab01a6cd991353ccbc8e78153038f45d9d2dc2c6fb96e37d9bdb69be948f12579371a43969e942ca69387296cf781526b7ef422f4c9bc644827237a03b2a60baaff7703ee33956dc669b1c04c721bf68f343c80b61f35ca1b19559965fd7026a1cec9bd9d92f1450ecbaf42de12042bd630d3445706c56775071deae54f2c531bc8c0be2268a13f12af588057f3ebd3ed17fa09a1a06071ec13e7e7638b15a8e0c55524a90c2d7c79c1b2f427fffaffa26390f1d6cd4abf2169604b2e779a734e06b15d03ed940bbc02ed1203f55dd3fd2957608398fc7265961dda28d626a8ea5edee28a37210c8c7321611e52b4e541c90e0721eda0de5f30cf3885eda30d6ece46263809aa1e5fe88b93106f1e7437faefcce951b197aa5b1f2780aa437cf6a1f9c069fe82d18c57ca9a705cf5202bbd1afc41e1d289a46a434cfd16bb7ce6ee764d5f0e6c81e8486eca116902abad6b98df389eaef8156b8b56325358e01f3ec30d050d9226ecfb0a1d7e2cae6b5ca6738c8cdeba6bc118327d682f8b5957c55617feac811ab2ab6ee3aee63639429f9979db5285c330da8a9f6a306b69cecfb2be3c640f04331fff3789a47445c5125fb99e996f401b319bfce5b08936db9c6f828c682bbe69e866ac0a6b204e02ecefd61142d0c20c1995562bc1fdab582296189a1b34bdb75722e64e7d4f00b8d83fdc2f8fc76971143750acd0d513b81298a2f8c72252cceb73633976f52fc2e93a1ef806ec7957c66eeac4c52f9b584580390c6fa4643e0cad59ad3f58104a728d93bc6869a6f649892eef9ecb3eebcebd34854f8e19db5ac62ba0b67a740bb39b1905e8d345e2ff21b4e25974bd5bc7c862607ddb6ac10cecde59c1a932b2fb5b22c673457bd4a396e3667f4227a276fa1a1b20fb60ff5841af64e981f6c84be84ad1bb10d941d615629654e1d128c9a377ad60b04c3cf2aad7118626eaae0b4068dd623e1a2d98b95524f9db16049ecffd5c8fee7e1bba747a1ee9ec5f67aee0b69951dfa0b587c34beb36be3c16c3ab024eb271f3716499ed5a1795eac3423c37b8fa9d20d1af4e967164263fc60e0cd8e84cfc312b34185f40a7d0777749147f60438653bc3d36a1dad3ea433684464e0c9c12a88c44d862e022992cb4bfa603d1f8d21a0a5bd6c62fc3e8427f196507daed74f62a17ba9781a4740cf7f9c5df12362ded5aaa835c1943c3d93241e9c312bff7232e6e92321400ddacb84b84b1c4120575c5d0246d78ad3e9fd4acbbb5115944d1c39f3e07405baf7dd4bd633c0bfdbaafdb42954eb6206668d53e9947594e4d0911b09036cba8f09f4cc198dc064c68d5a7b848dd2a6a664619611845767f992b1527a62771d36527cc881b5ccc06fbbf864e27dca99a433424bdb6ef631a7c824c246b7222216000dba03d7664c485a2cdfc04042db57164aa760078abb80ed030c0e6c83ae5b9fb4225c7ab72479d1762c730fe1fd9deac13d6cba0d78c01e03c12d9410cfb11ed20166a5780dd5e2eb221aaf424eddde14f4ac8302f16b699713d3225436ed4912aaef584979246f60a5168577856b82c2f809ccea64488fad8de0dccc30e7396c27c60d1da0f294ef98d596707439c35e248849121788643726329c1acd0bd79125240782d8af03b2b5cce2d960b8a9b3c81e1f88b9a07860a916e46053094622c6057af203c842ff84375729030665c5705240949e1b729d29496a29ed39d29317483eec8cbfb7dceac0b0ca6c3fb07aeb6a2368dc767eb07d7ed9cc62b910b801d08989a83f3be58618701c713f298ca7f17eae72510b29568c3159a44a01f7ffaeeddeae9d22c68ea261bc2060bce8a1213142b60b5a8d1e7314fe7fc39364b049d54f2a73cc7780f6ec477cb2738a0cb28a919f2c0cf935c1ef51bbac891338b72813acc379848bfc3b39969aeaa9f2787ddd183c3722a12b0b90f48ce2f7533f00d122c9835280f7fd8a0ad41aa1b08ba6d7dfca7b583c1e03989906040f5984c6699f382909f5939599585232c92776a1b5592712a42d5f44fc21a1882850261042ea98762309ded8799d909d6a406336a5f276fb29e9a8589736ded2e97ebc6f82b5f577d0a07021f4fcd6371c5ed29a5380d9dbf0d0ca34b684631dfb501e2ae243877432dad26a3cd3c94664a295461d6e78d057ef89842bac7a33f6a634b2e374ffac86aee35fd80008ab9809830554d7404e7540f11a7ef273dc846a57eef2b27204be709c3eaea2b305df401e4007f7f2978ebd37190e5e7cbf2d8ee418d6d9fa59ecba7603cba8d2f731733f42e49499c68592f87fea94354e0c066c30a256eab36495b10d082ede4e20630e4d799141cc44801408cd3b28a71c075504b3acc1b69d72ec615275781bf9bbdd87b7d409cf3cdd18e7cc86a164ddb980bf1adac888b7bab3d7c968a46481321c10748b79450303e5aa0860d6fcc4304e80d698866593ff7f18cdd1f93df672c7ce860b192d9e033d8aef00d4685c4165547303848b91bcb2a3956e2d17e51a70a6e383bce71d49be32bd461aec0d691c8849e6b178558e47b28831113fa448e7c950fee79dd5d0190d4c11d29bc2e0477091138e1d3836f1bb86bea2edc7ee8ebfca693022823d4968a067b36c06b0caa8e84633d81ea62e548a4e8709671f0c928a28e524af78ebd0a815aac9f6df611df081b75f5527f3b5a04a501ef02e37afe7aeb077d2d7aab08ccbc243fe69395d77ec5db84c3b6c5c8480afb3b3ce91e6a4dfb9bbeb5e623d1cfeff8b53b1e4f0337a4d8d5b3818517d66704b5756375dd85712ea2ae3c643cb564a9bb8c032ee333d0eccc6fa0170b5dd7a78ad50d7255fa113dfa1b20317b1d4d508967a38306ebe3423233198d6e341339e90d3e31bae9a1528b8f100aec437f656670c2bb3917bf9dff0fc2138cf4de3852c71a0c27ac0e1da61fde7dfe96603fbbe61b7697f4676b73d46f10d092348effa957b9af16aef7fed036ba740eadb9e3ee518700351dd63fd54a7853c6aae180e9cf7e71660178ac8a82b590104827daf9bd1ef078ad56cd393d8c3d0b0c042d27ae4b6f531d02c9f464272a71426d588471c2a6159b36ee76e16585340d1a1831da941556a84eb7684547bba0040dc4198e768c09e38a67562612de6eff630ff92f3c885cc41d31f54b802e6b3b47d51c387d9b3c20b7680dcf0ce71aaa46bfec60eab7f750a534cdb02cfabde84968002558ad22157b0528d13558d2aefcfc47302ef05778e71003c19645d84a511571093fdf67623cde36bc8ca16689b7788841d9f3e0bc1fde3d6a72a98a64aa8b67bf1775b012575dae015b4b0e3a3f96d862f3e75997314bb7ad1e00ede8ba53160eaee9d75f6813ba0a600156e01c1b9ae8cfcf4bf39fbacbc8764cc5656bc812b2541cec7d86c180f5bb38a124427c6966522eeef27ab3ceca125d5a34c832319eb76ca834f09629102c8304a02edc41707e794927c35ac31d6b6c006acd8524dc692878843a291a5d9dec9420aa7fb4d2a7191a5c2e81f6132094391b9ed0f61b0e44a3c2c96fb1309594c37d1a5ab89736e88643add4e2b8c7d9a33eda3d438248597dd2e578eb937874f5b91386511e9f96a8cdd430fb5cb30548cb64380a964356a5205eaaa188e97caced0fc678e6e6b5508614db1a9af942061035338ba7251dd4cd787f7e5465c07121ef8f98da151186ee0c727def8c68885ec3a74a5b69efdaabc97465351b421417c1b79147c9889b39eaf733c4e6b370cc468cde4611e77ee9f29f8cef457b2afdc832d22ee9f01afa23a69ffee441a8e0e02887e00e56864a764f12dfaaa481e9347199fb4dce1ba023d0ccd3843b30ce940d3dd870a3971f5798a53b713216e1ebb754935ddf39e130b4bbdfedae24bbfb943cd3d32fc6711967cf72503ba04d48b68f418a5151b68ccdd3d85b06d720c5aecc7b3d4c83cd3214b6483dfbd6bd571c17e7979f01bc8a5dce334f1888f37d2d04c7aaa97a33252a670e2b11f4bbcb5d67371e902ab26253e621b744a7f4c21c0ee68222e607fe129a178203ec5cc02194666f1c6e7a02462fab4f23b8ca99efa4e177373701f33553b3385f07854b0ae7695bc168b1bbcd360b7af39c752d32c0c12720eac81811b3c0765d4d3844ceceb84a02a39eb83ff9ff98cfdfd5892fe1f9949a027257d1b7fb49e28be877b89b7bc757edc7962dfc20d0888d4c4c4a7038d5151d73c3eddb3ce4eb1b4cda2ef60d97cca726da23611b8836a772ba0e79a8b04a5cc0b2b1aa67089ed27728650a9ef2b2123124d821d1cfaa70787f7a5536ae2286524cb5ddf06b6fb6f60d071f4af476744717f53221b44e66a4428be8710010233be5a4ab5c1fd3392373320fbbe0c4f5a8b52b4d87a2543d838cc178657bc262e42213847bb67ab1c24f7aa335df186683ecd0cb51f12542b69a13b3dccfdcff43f2fdd9a82034dccc50eb0e447820050b32ee8206b8812a6bbd55a12acff0f1b76c5d561f7827d09c4ba629b77677b70f9322bcad028c6d826bd075f3c62ed02c0e26845fc009f1cf5511f9f70b2b881ee4c5b13453d2414f9fc213f56b91f3a73c0b530772f4a05f03dd8239c1605ef87af7b2c1e065b761d9b87517e516a6a9b65712a696b3246fa58c2d53a8cb34706752b08eb8b18fb2afa05518e578fc887047b7cc865193a4ea096592f4b9c2ba330999622b9c2e4b033adf9fee8b95dbefbd30a353cb20525b972f46504a0153e0a174990a448f34c7a015e2eba7361f00849d9dc352a1764a0c02f2b6dd78ffa205ebdf829dab87611bf5e08252d598a89329095dd7e299c2b20b4b7bd1998991b12118b0a93849f955b2b8edf2533a3599fcbd28bd3cf5c9248cbfcafab3540b428f0d54201ca2a84a8cabda5c8fa5122d3a4", &(0x7f0000012340)=[r2, r2], &(0x7f0000012380)=""/81, &(0x7f0000012400)=[0x0, 0x0, 0x0, 0x0, 0x0], 0x1000, 0x2, 0x51, 0x5}, &(0x7f0000012480), &(0x7f00000124c0)) zx_channel_read$fuchsia_io_DirectoryAdminOnOpen(r3, 0x0, &(0x7f0000012500), 0x10000, &(0x7f0000022500), 0x0, &(0x7f0000022540), &(0x7f0000022580)) zx_pager_create_vmo(r4, 0x0, r4, 0x3, 0x7fb, &(0x7f00000225c0)=0x0) zx_stream_seek(r5, 0x0, 0x401, &(0x7f0000022600)) syz_execute_func(&(0x7f0000000000)="c4a149c2da0b0f18d23e26f33667dbe2c4c1d1163bc4c1b4c6850a00000000f340ac852f470ff24a004479a526f2ad") syz_future_time(0x1) syz_job_default() syz_mmap(&(0x7f0000ffb000/0x4000)=nil, 0x4000) syz_process_self() syz_thread_self() syz_vmar_root_self() csource_test.go:151: failed to build program: // autogenerated by syzkaller (https://github.com/google/syzkaller) #define _GNU_SOURCE #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include static void sleep_ms(uint64_t ms) { usleep(ms * 1000); } static uint64_t current_time_ms(void) { struct timespec ts; if (clock_gettime(CLOCK_MONOTONIC, &ts)) exit(1); return (uint64_t)ts.tv_sec * 1000 + (uint64_t)ts.tv_nsec / 1000000; } static void use_temporary_dir(void) { char tmpdir_template[] = "/tmp/syzkaller.XXXXXX"; char* tmpdir = mkdtemp(tmpdir_template); if (!tmpdir) exit(1); if (chmod(tmpdir, 0777)) exit(1); if (chdir(tmpdir)) exit(1); } static int inject_fault(int nth) { return 0; } static void setup_fault() { } static void thread_start(void* (*fn)(void*), void* arg) { pthread_t th; pthread_attr_t attr; pthread_attr_init(&attr); pthread_attr_setstacksize(&attr, 128 << 10); int i = 0; for (; i < 100; i++) { if (pthread_create(&th, &attr, fn, arg) == 0) { pthread_attr_destroy(&attr); return; } if (errno == EAGAIN) { usleep(50); continue; } break; } exit(1); } typedef struct { int state; } event_t; static void event_init(event_t* ev) { ev->state = 0; } static void event_reset(event_t* ev) { ev->state = 0; } static void event_set(event_t* ev) { if (ev->state) exit(1); __atomic_store_n(&ev->state, 1, __ATOMIC_RELEASE); } static void event_wait(event_t* ev) { while (!__atomic_load_n(&ev->state, __ATOMIC_ACQUIRE)) usleep(200); } static int event_isset(event_t* ev) { return __atomic_load_n(&ev->state, __ATOMIC_ACQUIRE); } static int event_timedwait(event_t* ev, uint64_t timeout_ms) { uint64_t start = current_time_ms(); for (;;) { if (__atomic_load_n(&ev->state, __ATOMIC_RELAXED)) return 1; if (current_time_ms() - start > timeout_ms) return 0; usleep(200); } } long syz_mmap(size_t addr, size_t size) { zx_handle_t root = zx_vmar_root_self(); zx_info_vmar_t info; zx_status_t status = zx_object_get_info(root, ZX_INFO_VMAR, &info, sizeof(info), 0, 0); if (status != ZX_OK) { return status; } zx_handle_t vmo; status = zx_vmo_create(size, 0, &vmo); if (status != ZX_OK) { return status; } uintptr_t mapped_addr; status = zx_vmar_map(root, ZX_VM_FLAG_SPECIFIC_OVERWRITE | ZX_VM_FLAG_PERM_READ | ZX_VM_FLAG_PERM_WRITE, addr - info.base, vmo, 0, size, &mapped_addr); zx_status_t close_vmo_status = zx_handle_close(vmo); if (close_vmo_status != ZX_OK) { } return status; } static long syz_process_self(void) { return zx_process_self(); } static long syz_thread_self(void) { return zx_thread_self(); } static long syz_vmar_root_self(void) { return zx_vmar_root_self(); } static long syz_job_default(void) { return zx_job_default(); } static long syz_future_time(volatile long when) { zx_time_t delta_ms = 10000; switch (when) { case 0: delta_ms = 5; break; case 1: delta_ms = 30; break; } zx_time_t now = 0; zx_clock_read(ZX_CLOCK_MONOTONIC, &now); return now + delta_ms * 1000 * 1000; } static void loop(); static int do_sandbox_none(void) { loop(); return 0; } #define CAST(f) ({void* p = (void*)f; p; }) static long syz_execute_func(volatile long text) { ((void (*)(void))(text))(); return 0; } struct thread_t { int created, call; event_t ready, done; }; static struct thread_t threads[16]; static void execute_call(int call); static int running; static void* thr(void* arg) { struct thread_t* th = (struct thread_t*)arg; for (;;) { event_wait(&th->ready); event_reset(&th->ready); execute_call(th->call); __atomic_fetch_sub(&running, 1, __ATOMIC_RELAXED); event_set(&th->done); } return 0; } static void loop(void) { int i, call, thread; for (call = 0; call < 17; call++) { for (thread = 0; thread < (int)(sizeof(threads) / sizeof(threads[0])); thread++) { struct thread_t* th = &threads[thread]; if (!th->created) { th->created = 1; event_init(&th->ready); event_init(&th->done); event_set(&th->done); thread_start(thr, th); } if (!event_isset(&th->done)) continue; event_reset(&th->done); th->call = call; __atomic_fetch_add(&running, 1, __ATOMIC_RELAXED); event_set(&th->ready); if (call == 1) break; event_timedwait(&th->done, 50); break; } } for (i = 0; i < 100 && __atomic_load_n(&running, __ATOMIC_RELAXED); i++) sleep_ms(1); } uint64_t r[6] = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0}; void execute_call(int call) { intptr_t res = 0; switch (call) { case 0: inject_fault(1); ((intptr_t(*)(intptr_t,intptr_t,intptr_t,intptr_t,intptr_t))CAST(zx_system_get_performance_info))(/*res=*/0, /*topic=*/0, /*count=*/4, /*info=*/0x20000000, /*output_count=*/0x20000040); break; case 1: res = -1; res = syz_future_time(/*when=*/1); if ((int)res != -1) r[0] = res; break; case 2: *(uint64_t*)0x20010140 = 0x20000080; *(uint32_t*)0x20000080 = 0; memset((void*)0x20000084, 0, 3); *(uint8_t*)0x20000087 = 1; *(uint64_t*)0x20000088 = 0x782a774500000000; *(uint64_t*)0x20000090 = -1; *(uint32_t*)0x20000098 = 2; *(uint64_t*)0x20010148 = 0x200000c0; *(uint64_t*)0x20010150 = 0x20000100; *(uint64_t*)0x20010158 = 0x20010100; *(uint32_t*)0x20010160 = 0x1c; *(uint32_t*)0x20010164 = 0; *(uint32_t*)0x20010168 = 0x10000; *(uint32_t*)0x2001016c = 0; ((intptr_t(*)(intptr_t,intptr_t,intptr_t,intptr_t,intptr_t,intptr_t))CAST(zx_channel_call))(/*handle=*/0, /*options=*/0, /*deadline=*/r[0], /*args=*/0x20010140, /*actual_bytes=*/0x20010180, /*actual_handles=*/0x200101c0); { int i; for(i = 0; i < 4; i++) { ((intptr_t(*)(intptr_t,intptr_t,intptr_t,intptr_t,intptr_t,intptr_t))CAST(zx_channel_call))(/*handle=*/0, /*options=*/0, /*deadline=*/r[0], /*args=*/0x20010140, /*actual_bytes=*/0x20010180, /*actual_handles=*/0x200101c0); } } break; case 3: memset((void*)0x20010200, 0, 1); res = -1; res = ((intptr_t(*)(intptr_t,intptr_t,intptr_t,intptr_t,intptr_t,intptr_t))CAST(zx_process_create))(/*job=*/0, /*name=*/0x20010200, /*name_len=*/1, /*options=*/0, /*proc_handle=*/0x20010240, /*vmar_handle=*/0x20010280); if (res == ZX_OK) r[1] = *(uint32_t*)0x20010240; break; case 4: res = -1; res = ((intptr_t(*)(intptr_t,intptr_t,intptr_t,intptr_t))CAST(zx_object_get_child))(/*handle=*/0, /*koid=*/0, /*rights=*/0x800, /*out=*/0x200102c0); if (res == ZX_OK) r[2] = *(uint32_t*)0x200102c0; break; case 5: memcpy((void*)0x20010300, "\xc4\x81\x7d\x29\x0e\x80\x51\xbf\x00\x65\x67\x36\x66\x45\x0f\xf7\xfd\xc4\x01\xa1\xc4\x00\x09\xc4\x82\xf9\x35\xf1\xc4\x41\xfc\x52\xd0\x66\x0f\xc5\xf3\x98\xc4\x83\x79\x09\xc6\xb1\x66\x4b\x0f\x6e\xe5\xf3\x41\xd8\xcd", 53); ((intptr_t(*)(intptr_t,intptr_t,intptr_t,intptr_t,intptr_t,intptr_t))CAST(zx_process_start))(/*process=*/r[1], /*thread=*/r[2], /*entry=*/0x20010300, /*stack=*/0x20010340, /*arg1=*/0, /*arg2=*/0); break; case 6: *(uint64_t*)0x20012440 = 0x20011340; memcpy((void*)0x20011340, "\x68\xb9\x2e\x90\xe8\x1a\x0a\x65\xab\xa6\x8a\xc3\x03\x90\x07\xc4\x06\x63\xfe\xc3\x16\xf1\xd3\xf0\x30\xeb\x37\xcd\x0f\x8d\x9e\x05\x6b\xc9\x3c\xbf\x88\x11\xc6\xec\x84\xbd\x43\xee\x1d\xbc\x4e\xb9\xf2\x91\xb1\xff\x62\x96\xbf\x0f\x22\x9b\x82\x3c\xf7\x50\x21\xec\xdd\x1d\x84\x3a\xbe\xce\x20\xab\x3e\x28\x78\x01\xd8\xa7\x82\xd9\x94\x7b\x00\x86\x14\xb2\x21\xe1\x7c\x64\x1a\xe2\xb5\xb0\x30\x7c\xc6\x59\x47\x59\xaa\xdd\xde\x5b\x89\xea\xd9\xc0\x32\xe8\x75\x4a\xb9\x8f\x09\xb0\x3c\x80\x29\x34\xcf\x4f\x75\xa4\xb1\x53\xae\x62\x6a\x37\x33\x3e\x7f\x35\xd1\x66\x31\x53\x11\xf3\x95\x3e\xcf\x02\xf6\x15\x82\x2c\x58\xac\x20\x5d\x4d\xa7\x5d\x43\x4f\xf3\x6d\xa5\x05\x2a\x2f\x5d\x6c\x2a\x15\x47\x7e\xb5\x53\x6c\x80\xee\x07\x6e\x98\x94\xe6\xc6\x3c\x0b\xf3\xd3\x00\x4c\xe2\x10\x73\x85\x91\x9f\xcb\x77\x1b\xee\xbd\x38\x98\x24\x68\x9f\xbd\x28\x80\x4b\x23\xcd\x93\x3a\x3a\xb8\xd8\x62\xc1\xf3\xca\xc7\x35\x2f\xe4\xfc\xcf\xc2\x2d\x38\x77\x7d\x69\xba\x0f\xa2\xc8\x20\x16\x6a\xe8\xd3\x51\xe1\x16\xf0\xca\x3d\xcf\xe6\xfc\x6d\x38\xf5\x26\x41\x1d\x40\x7d\x0b\x2f\x97\xd8\x22\xa0\x54\xf4\x40\xb0\x5b\x75\x98\xb6\x6e\x18\x48\xb0\xf2\xa8\xc2\x71\x8f\x62\xc2\xc5\x03\xfb\x28\xc8\x82\x06\x26\xd9\xf4\x63\x00\xf4\x74\xfe\xda\x0c\x81\x6e\x43\xd9\xed\x96\x34\x47\xe0\xcd\x3d\x47\x3a\xc3\xf0\x63\x3d\x3d\x1f\xe4\xb4\x3e\x58\x7c\x3b\xfb\x5d\x3b\x9c\x3f\xb9\x47\x2f\x75\x93\xc1\x9a\x2d\x57\x3f\x04\x79\x6a\x76\x55\xff\x5a\x1c\x09\x95\x83\x4b\x07\xb6\x2b\x79\x51\x19\x46\x21\x6d\x6c\x41\x8a\xf8\xec\x08\x45\x78\x2f\x11\x2d\xfe\x0b\x7e\x4b\x6b\x0f\xb3\x60\x4b\x4b\x2d\xf3\x11\x77\xa7\xc1\x97\x6d\xe2\x55\x17\x95\x53\xbf\xf2\x54\x4a\xa5\x57\xa4\x54\xb2\x65\x7c\x5b\x3f\x0f\x71\xcf\xf8\x3c\x0b\x92\xd3\x02\xd2\x20\x1b\x7d\xb3\x6e\x9d\x86\x77\xdf\xad\x29\xac\x43\x2c\x25\xea\x3b\x12\x3d\xb4\xf9\x24\x0e\x92\x02\xc2\x19\xa6\x47\x9f\x05\x32\x2a\xeb\x7d\xa4\x9f\x19\x88\x93\xbd\xbf\xa0\xbf\x19\xa8\x15\xe6\x3a\xab\x70\xd4\xbc\xf3\xcb\x8b\x38\xf9\xee\x91\x4b\x43\xee\x33\xe0\x06\xd8\x27\x91\x9c\xe0\x84\xd8\x42\x57\xcb\x13\x99\x79\xbb\x14\x4e\x19\xcc\x87\x45\x47\x8e\xa0\xff\xde\x10\xd3\xcf\x59\x03\x86\x49\x7b\x43\xf4\xbc\x27\x25\xec\x2d\x0d\xf9\x4f\x1a\x53\x4a\x1e\xe8\xc4\x29\x40\x0e\x10\x78\xcc\x58\xa7\xbd\x8d\x1d\xed\x2c\xf4\x96\x67\x66\xf2\x1b\x4c\x07\xce\x40\xd8\x55\x93\xf8\x64\x2b\x29\x65\x24\x24\xa8\x5a\xeb\xdc\xcd\xd8\xbe\xba\x9f\xbf\xe6\xb1\x41\x4c\xd3\x16\x45\x52\xe7\xe4\x9b\xb9\x30\x01\x99\x90\xda\xc4\x75\x1a\x65\xbe\x85\x3b\x95\x3b\x88\xec\xca\xc9\x2c\x88\x9c\x4d\x95\x11\x6e\x94\x62\x84\x80\xba\xab\x01\xa6\xcd\x99\x13\x53\xcc\xbc\x8e\x78\x15\x30\x38\xf4\x5d\x9d\x2d\xc2\xc6\xfb\x96\xe3\x7d\x9b\xdb\x69\xbe\x94\x8f\x12\x57\x93\x71\xa4\x39\x69\xe9\x42\xca\x69\x38\x72\x96\xcf\x78\x15\x26\xb7\xef\x42\x2f\x4c\x9b\xc6\x44\x82\x72\x37\xa0\x3b\x2a\x60\xba\xaf\xf7\x70\x3e\xe3\x39\x56\xdc\x66\x9b\x1c\x04\xc7\x21\xbf\x68\xf3\x43\xc8\x0b\x61\xf3\x5c\xa1\xb1\x95\x59\x96\x5f\xd7\x02\x6a\x1c\xec\x9b\xd9\xd9\x2f\x14\x50\xec\xba\xf4\x2d\xe1\x20\x42\xbd\x63\x0d\x34\x45\x70\x6c\x56\x77\x50\x71\xde\xae\x54\xf2\xc5\x31\xbc\x8c\x0b\xe2\x26\x8a\x13\xf1\x2a\xf5\x88\x05\x7f\x3e\xbd\x3e\xd1\x7f\xa0\x9a\x1a\x06\x07\x1e\xc1\x3e\x7e\x76\x38\xb1\x5a\x8e\x0c\x55\x52\x4a\x90\xc2\xd7\xc7\x9c\x1b\x2f\x42\x7f\xff\xaf\xfa\x26\x39\x0f\x1d\x6c\xd4\xab\xf2\x16\x96\x04\xb2\xe7\x79\xa7\x34\xe0\x6b\x15\xd0\x3e\xd9\x40\xbb\xc0\x2e\xd1\x20\x3f\x55\xdd\x3f\xd2\x95\x76\x08\x39\x8f\xc7\x26\x59\x61\xdd\xa2\x8d\x62\x6a\x8e\xa5\xed\xee\x28\xa3\x72\x10\xc8\xc7\x32\x16\x11\xe5\x2b\x4e\x54\x1c\x90\xe0\x72\x1e\xda\x0d\xe5\xf3\x0c\xf3\x88\x5e\xda\x30\xd6\xec\xe4\x62\x63\x80\x9a\xa1\xe5\xfe\x88\xb9\x31\x06\xf1\xe7\x43\x7f\xae\xfc\xce\x95\x1b\x19\x7a\xa5\xb1\xf2\x78\x0a\xa4\x37\xcf\x6a\x1f\x9c\x06\x9f\xe8\x2d\x18\xc5\x7c\xa9\xa7\x05\xcf\x52\x02\xbb\xd1\xaf\xc4\x1e\x1d\x28\x9a\x46\xa4\x34\xcf\xd1\x6b\xb7\xce\x6e\xe7\x64\xd5\xf0\xe6\xc8\x1e\x84\x86\xec\xa1\x16\x90\x2a\xba\xd6\xb9\x8d\xf3\x89\xea\xef\x81\x56\xb8\xb5\x63\x25\x35\x8e\x01\xf3\xec\x30\xd0\x50\xd9\x22\x6e\xcf\xb0\xa1\xd7\xe2\xca\xe6\xb5\xca\x67\x38\xc8\xcd\xeb\xa6\xbc\x11\x83\x27\xd6\x82\xf8\xb5\x95\x7c\x55\x61\x7f\xea\xc8\x11\xab\x2a\xb6\xee\x3a\xee\x63\x63\x94\x29\xf9\x97\x9d\xb5\x28\x5c\x33\x0d\xa8\xa9\xf6\xa3\x06\xb6\x9c\xec\xfb\x2b\xe3\xc6\x40\xf0\x43\x31\xff\xf3\x78\x9a\x47\x44\x5c\x51\x25\xfb\x99\xe9\x96\xf4\x01\xb3\x19\xbf\xce\x5b\x08\x93\x6d\xb9\xc6\xf8\x28\xc6\x82\xbb\xe6\x9e\x86\x6a\xc0\xa6\xb2\x04\xe0\x2e\xce\xfd\x61\x14\x2d\x0c\x20\xc1\x99\x55\x62\xbc\x1f\xda\xb5\x82\x29\x61\x89\xa1\xb3\x4b\xdb\x75\x72\x2e\x64\xe7\xd4\xf0\x0b\x8d\x83\xfd\xc2\xf8\xfc\x76\x97\x11\x43\x75\x0a\xcd\x0d\x51\x3b\x81\x29\x8a\x2f\x8c\x72\x25\x2c\xce\xb7\x36\x33\x97\x6f\x52\xfc\x2e\x93\xa1\xef\x80\x6e\xc7\x95\x7c\x66\xee\xac\x4c\x52\xf9\xb5\x84\x58\x03\x90\xc6\xfa\x46\x43\xe0\xca\xd5\x9a\xd3\xf5\x81\x04\xa7\x28\xd9\x3b\xc6\x86\x9a\x6f\x64\x98\x92\xee\xf9\xec\xb3\xee\xbc\xeb\xd3\x48\x54\xf8\xe1\x9d\xb5\xac\x62\xba\x0b\x67\xa7\x40\xbb\x39\xb1\x90\x5e\x8d\x34\x5e\x2f\xf2\x1b\x4e\x25\x97\x4b\xd5\xbc\x7c\x86\x26\x07\xdd\xb6\xac\x10\xce\xcd\xe5\x9c\x1a\x93\x2b\x2f\xb5\xb2\x2c\x67\x34\x57\xbd\x4a\x39\x6e\x36\x67\xf4\x22\x7a\x27\x6f\xa1\xa1\xb2\x0f\xb6\x0f\xf5\x84\x1a\xf6\x4e\x98\x1f\x6c\x84\xbe\x84\xad\x1b\xb1\x0d\x94\x1d\x61\x56\x29\x65\x4e\x1d\x12\x8c\x9a\x37\x7a\xd6\x0b\x04\xc3\xcf\x2a\xad\x71\x18\x62\x6e\xaa\xe0\xb4\x06\x8d\xd6\x23\xe1\xa2\xd9\x8b\x95\x52\x4f\x9d\xb1\x60\x49\xec\xff\xd5\xc8\xfe\xe7\xe1\xbb\xa7\x47\xa1\xee\x9e\xc5\xf6\x7a\xee\x0b\x69\x95\x1d\xfa\x0b\x58\x7c\x34\xbe\xb3\x6b\xe3\xc1\x6c\x3a\xb0\x24\xeb\x27\x1f\x37\x16\x49\x9e\xd5\xa1\x79\x5e\xac\x34\x23\xc3\x7b\x8f\xa9\xd2\x0d\x1a\xf4\xe9\x67\x16\x42\x63\xfc\x60\xe0\xcd\x8e\x84\xcf\xc3\x12\xb3\x41\x85\xf4\x0a\x7d\x07\x77\x74\x91\x47\xf6\x04\x38\x65\x3b\xc3\xd3\x6a\x1d\xad\x3e\xa4\x33\x68\x44\x64\xe0\xc9\xc1\x2a\x88\xc4\x4d\x86\x2e\x02\x29\x92\xcb\x4b\xfa\x60\x3d\x1f\x8d\x21\xa0\xa5\xbd\x6c\x62\xfc\x3e\x84\x27\xf1\x96\x50\x7d\xae\xd7\x4f\x62\xa1\x7b\xa9\x78\x1a\x47\x40\xcf\x7f\x9c\x5d\xf1\x23\x62\xde\xd5\xaa\xa8\x35\xc1\x94\x3c\x3d\x93\x24\x1e\x9c\x31\x2b\xff\x72\x32\xe6\xe9\x23\x21\x40\x0d\xda\xcb\x84\xb8\x4b\x1c\x41\x20\x57\x5c\x5d\x02\x46\xd7\x8a\xd3\xe9\xfd\x4a\xcb\xbb\x51\x15\x94\x4d\x1c\x39\xf3\xe0\x74\x05\xba\xf7\xdd\x4b\xd6\x33\xc0\xbf\xdb\xaa\xfd\xb4\x29\x54\xeb\x62\x06\x66\x8d\x53\xe9\x94\x75\x94\xe4\xd0\x91\x1b\x09\x03\x6c\xba\x8f\x09\xf4\xcc\x19\x8d\xc0\x64\xc6\x8d\x5a\x7b\x84\x8d\xd2\xa6\xa6\x64\x61\x96\x11\x84\x57\x67\xf9\x92\xb1\x52\x7a\x62\x77\x1d\x36\x52\x7c\xc8\x81\xb5\xcc\xc0\x6f\xbb\xf8\x64\xe2\x7d\xca\x99\xa4\x33\x42\x4b\xdb\x6e\xf6\x31\xa7\xc8\x24\xc2\x46\xb7\x22\x22\x16\x00\x0d\xba\x03\xd7\x66\x4c\x48\x5a\x2c\xdf\xc0\x40\x42\xdb\x57\x16\x4a\xa7\x60\x07\x8a\xbb\x80\xed\x03\x0c\x0e\x6c\x83\xae\x5b\x9f\xb4\x22\x5c\x7a\xb7\x24\x79\xd1\x76\x2c\x73\x0f\xe1\xfd\x9d\xea\xc1\x3d\x6c\xba\x0d\x78\xc0\x1e\x03\xc1\x2d\x94\x10\xcf\xb1\x1e\xd2\x01\x66\xa5\x78\x0d\xd5\xe2\xeb\x22\x1a\xaf\x42\x4e\xdd\xde\x14\xf4\xac\x83\x02\xf1\x6b\x69\x97\x13\xd3\x22\x54\x36\xed\x49\x12\xaa\xef\x58\x49\x79\x24\x6f\x60\xa5\x16\x85\x77\x85\x6b\x82\xc2\xf8\x09\xcc\xea\x64\x48\x8f\xad\x8d\xe0\xdc\xcc\x30\xe7\x39\x6c\x27\xc6\x0d\x1d\xa0\xf2\x94\xef\x98\xd5\x96\x70\x74\x39\xc3\x5e\x24\x88\x49\x12\x17\x88\x64\x37\x26\x32\x9c\x1a\xcd\x0b\xd7\x91\x25\x24\x07\x82\xd8\xaf\x03\xb2\xb5\xcc\xe2\xd9\x60\xb8\xa9\xb3\xc8\x1e\x1f\x88\xb9\xa0\x78\x60\xa9\x16\xe4\x60\x53\x09\x46\x22\xc6\x05\x7a\xf2\x03\xc8\x42\xff\x84\x37\x57\x29\x03\x06\x65\xc5\x70\x52\x40\x94\x9e\x1b\x72\x9d\x29\x49\x6a\x29\xed\x39\xd2\x93\x17\x48\x3e\xec\x8c\xbf\xb7\xdc\xea\xc0\xb0\xca\x6c\x3f\xb0\x7a\xeb\x6a\x23\x68\xdc\x76\x7e\xb0\x7d\x7e\xd9\xcc\x62\xb9\x10\xb8\x01\xd0\x89\x89\xa8\x3f\x3b\xe5\x86\x18\x70\x1c\x71\x3f\x29\x8c\xa7\xf1\x7e\xae\x72\x51\x0b\x29\x56\x8c\x31\x59\xa4\x4a\x01\xf7\xff\xae\xed\xde\xae\x9d\x22\xc6\x8e\xa2\x61\xbc\x20\x60\xbc\xe8\xa1\x21\x31\x42\xb6\x0b\x5a\x8d\x1e\x73\x14\xfe\x7f\xc3\x93\x64\xb0\x49\xd5\x4f\x2a\x73\xcc\x77\x80\xf6\xec\x47\x7c\xb2\x73\x8a\x0c\xb2\x8a\x91\x9f\x2c\x0c\xf9\x35\xc1\xef\x51\xbb\xac\x89\x13\x38\xb7\x28\x13\xac\xc3\x79\x84\x8b\xfc\x3b\x39\x96\x9a\xea\xa9\xf2\x78\x7d\xdd\x18\x3c\x37\x22\xa1\x2b\x0b\x90\xf4\x8c\xe2\xf7\x53\x3f\x00\xd1\x22\xc9\x83\x52\x80\xf7\xfd\x8a\x0a\xd4\x1a\xa1\xb0\x8b\xa6\xd7\xdf\xca\x7b\x58\x3c\x1e\x03\x98\x99\x06\x04\x0f\x59\x84\xc6\x69\x9f\x38\x29\x09\xf5\x93\x95\x99\x58\x52\x32\xc9\x27\x76\xa1\xb5\x59\x27\x12\xa4\x2d\x5f\x44\xfc\x21\xa1\x88\x28\x50\x26\x10\x42\xea\x98\x76\x23\x09\xde\xd8\x79\x9d\x90\x9d\x6a\x40\x63\x36\xa5\xf2\x76\xfb\x29\xe9\xa8\x58\x97\x36\xde\xd2\xe9\x7e\xbc\x6f\x82\xb5\xf5\x77\xd0\xa0\x70\x21\xf4\xfc\xd6\x37\x1c\x5e\xd2\x9a\x53\x80\xd9\xdb\xf0\xd0\xca\x34\xb6\x84\x63\x1d\xfb\x50\x1e\x2a\xe2\x43\x87\x74\x32\xda\xd2\x6a\x3c\xd3\xc9\x46\x64\xa2\x95\x46\x1d\x6e\x78\xd0\x57\xef\x89\x84\x2b\xac\x7a\x33\xf6\xa6\x34\xb2\xe3\x74\xff\xac\x86\xae\xe3\x5f\xd8\x00\x08\xab\x98\x09\x83\x05\x54\xd7\x40\x4e\x75\x40\xf1\x1a\x7e\xf2\x73\xdc\x84\x6a\x57\xee\xf2\xb2\x72\x04\xbe\x70\x9c\x3e\xae\xa2\xb3\x05\xdf\x40\x1e\x40\x07\xf7\xf2\x97\x8e\xbd\x37\x19\x0e\x5e\x7c\xbf\x2d\x8e\xe4\x18\xd6\xd9\xfa\x59\xec\xba\x76\x03\xcb\xa8\xd2\xf7\x31\x73\x3f\x42\xe4\x94\x99\xc6\x85\x92\xf8\x7f\xea\x94\x35\x4e\x0c\x06\x6c\x30\xa2\x56\xea\xb3\x64\x95\xb1\x0d\x08\x2e\xde\x4e\x20\x63\x0e\x4d\x79\x91\x41\xcc\x44\x80\x14\x08\xcd\x3b\x28\xa7\x1c\x07\x55\x04\xb3\xac\xc1\xb6\x9d\x72\xec\x61\x52\x75\x78\x1b\xf9\xbb\xdd\x87\xb7\xd4\x09\xcf\x3c\xdd\x18\xe7\xcc\x86\xa1\x64\xdd\xb9\x80\xbf\x1a\xda\xc8\x88\xb7\xba\xb3\xd7\xc9\x68\xa4\x64\x81\x32\x1c\x10\x74\x8b\x79\x45\x03\x03\xe5\xaa\x08\x60\xd6\xfc\xc4\x30\x4e\x80\xd6\x98\x86\x65\x93\xff\x7f\x18\xcd\xd1\xf9\x3d\xf6\x72\xc7\xce\x86\x0b\x19\x2d\x9e\x03\x3d\x8a\xef\x00\xd4\x68\x5c\x41\x65\x54\x73\x03\x84\x8b\x91\xbc\xb2\xa3\x95\x6e\x2d\x17\xe5\x1a\x70\xa6\xe3\x83\xbc\xe7\x1d\x49\xbe\x32\xbd\x46\x1a\xec\x0d\x69\x1c\x88\x49\xe6\xb1\x78\x55\x8e\x47\xb2\x88\x31\x11\x3f\xa4\x48\xe7\xc9\x50\xfe\xe7\x9d\xd5\xd0\x19\x0d\x4c\x11\xd2\x9b\xc2\xe0\x47\x70\x91\x13\x8e\x1d\x38\x36\xf1\xbb\x86\xbe\xa2\xed\xc7\xee\x8e\xbf\xca\x69\x30\x22\x82\x3d\x49\x68\xa0\x67\xb3\x6c\x06\xb0\xca\xa8\xe8\x46\x33\xd8\x1e\xa6\x2e\x54\x8a\x4e\x87\x09\x67\x1f\x0c\x92\x8a\x28\xe5\x24\xaf\x78\xeb\xd0\xa8\x15\xaa\xc9\xf6\xdf\x61\x1d\xf0\x81\xb7\x5f\x55\x27\xf3\xb5\xa0\x4a\x50\x1e\xf0\x2e\x37\xaf\xe7\xae\xb0\x77\xd2\xd7\xaa\xb0\x8c\xcb\xc2\x43\xfe\x69\x39\x5d\x77\xec\x5d\xb8\x4c\x3b\x6c\x5c\x84\x80\xaf\xb3\xb3\xce\x91\xe6\xa4\xdf\xb9\xbb\xeb\x5e\x62\x3d\x1c\xfe\xff\x8b\x53\xb1\xe4\xf0\x33\x7a\x4d\x8d\x5b\x38\x18\x51\x7d\x66\x70\x4b\x57\x56\x37\x5d\xd8\x57\x12\xea\x2a\xe3\xc6\x43\xcb\x56\x4a\x9b\xb8\xc0\x32\xee\x33\x3d\x0e\xcc\xc6\xfa\x01\x70\xb5\xdd\x7a\x78\xad\x50\xd7\x25\x5f\xa1\x13\xdf\xa1\xb2\x03\x17\xb1\xd4\xd5\x08\x96\x7a\x38\x30\x6e\xbe\x34\x23\x23\x31\x98\xd6\xe3\x41\x33\x9e\x90\xd3\xe3\x1b\xae\x9a\x15\x28\xb8\xf1\x00\xae\xc4\x37\xf6\x56\x67\x0c\x2b\xb3\x91\x7b\xf9\xdf\xf0\xfc\x21\x38\xcf\x4d\xe3\x85\x2c\x71\xa0\xc2\x7a\xc0\xe1\xda\x61\xfd\xe7\xdf\xe9\x66\x03\xfb\xbe\x61\xb7\x69\x7f\x46\x76\xb7\x3d\x46\xf1\x0d\x09\x23\x48\xef\xfa\x95\x7b\x9a\xf1\x6a\xef\x7f\xed\x03\x6b\xa7\x40\xea\xdb\x9e\x3e\xe5\x18\x70\x03\x51\xdd\x63\xfd\x54\xa7\x85\x3c\x6a\xae\x18\x0e\x9c\xf7\xe7\x16\x60\x17\x8a\xc8\xa8\x2b\x59\x01\x04\x82\x7d\xaf\x9b\xd1\xef\x07\x8a\xd5\x6c\xd3\x93\xd8\xc3\xd0\xb0\xc0\x42\xd2\x7a\xe4\xb6\xf5\x31\xd0\x2c\x9f\x46\x42\x72\xa7\x14\x26\xd5\x88\x47\x1c\x2a\x61\x59\xb3\x6e\xe7\x6e\x16\x58\x53\x40\xd1\xa1\x83\x1d\xa9\x41\x55\x6a\x84\xeb\x76\x84\x54\x7b\xba\x00\x40\xdc\x41\x98\xe7\x68\xc0\x9e\x38\xa6\x75\x62\x61\x2d\xe6\xef\xf6\x30\xff\x92\xf3\xc8\x85\xcc\x41\xd3\x1f\x54\xb8\x02\xe6\xb3\xb4\x7d\x51\xc3\x87\xd9\xb3\xc2\x0b\x76\x80\xdc\xf0\xce\x71\xaa\xa4\x6b\xfe\xc6\x0e\xab\x7f\x75\x0a\x53\x4c\xdb\x02\xcf\xab\xde\x84\x96\x80\x02\x55\x8a\xd2\x21\x57\xb0\x52\x8d\x13\x55\x8d\x2a\xef\xcf\xc4\x73\x02\xef\x05\x77\x8e\x71\x00\x3c\x19\x64\x5d\x84\xa5\x11\x57\x10\x93\xfd\xf6\x76\x23\xcd\xe3\x6b\xc8\xca\x16\x68\x9b\x77\x88\x84\x1d\x9f\x3e\x0b\xc1\xfd\xe3\xd6\xa7\x2a\x98\xa6\x4a\xa8\xb6\x7b\xf1\x77\x5b\x01\x25\x75\xda\xe0\x15\xb4\xb0\xe3\xa3\xf9\x6d\x86\x2f\x3e\x75\x99\x73\x14\xbb\x7a\xd1\xe0\x0e\xde\x8b\xa5\x31\x60\xea\xee\x9d\x75\xf6\x81\x3b\xa0\xa6\x00\x15\x6e\x01\xc1\xb9\xae\x8c\xfc\xf4\xbf\x39\xfb\xac\xbc\x87\x64\xcc\x56\x56\xbc\x81\x2b\x25\x41\xce\xc7\xd8\x6c\x18\x0f\x5b\xb3\x8a\x12\x44\x27\xc6\x96\x65\x22\xee\xef\x27\xab\x3c\xec\xa1\x25\xd5\xa3\x4c\x83\x23\x19\xeb\x76\xca\x83\x4f\x09\x62\x91\x02\xc8\x30\x4a\x02\xed\xc4\x17\x07\xe7\x94\x92\x7c\x35\xac\x31\xd6\xb6\xc0\x06\xac\xd8\x52\x4d\xc6\x92\x87\x88\x43\xa2\x91\xa5\xd9\xde\xc9\x42\x0a\xa7\xfb\x4d\x2a\x71\x91\xa5\xc2\xe8\x1f\x61\x32\x09\x43\x91\xb9\xed\x0f\x61\xb0\xe4\x4a\x3c\x2c\x96\xfb\x13\x09\x59\x4c\x37\xd1\xa5\xab\x89\x73\x6e\x88\x64\x3a\xdd\x4e\x2b\x8c\x7d\x9a\x33\xed\xa3\xd4\x38\x24\x85\x97\xdd\x2e\x57\x8e\xb9\x37\x87\x4f\x5b\x91\x38\x65\x11\xe9\xf9\x6a\x8c\xdd\x43\x0f\xb5\xcb\x30\x54\x8c\xb6\x43\x80\xa9\x64\x35\x6a\x52\x05\xea\xaa\x18\x8e\x97\xca\xce\xd0\xfc\x67\x8e\x6e\x6b\x55\x08\x61\x4d\xb1\xa9\xaf\x94\x20\x61\x03\x53\x38\xba\x72\x51\xdd\x4c\xd7\x87\xf7\xe5\x46\x5c\x07\x12\x1e\xf8\xf9\x8d\xa1\x51\x18\x6e\xe0\xc7\x27\xde\xf8\xc6\x88\x85\xec\x3a\x74\xa5\xb6\x9e\xfd\xaa\xbc\x97\x46\x53\x51\xb4\x21\x41\x7c\x1b\x79\x14\x7c\x98\x89\xb3\x9e\xaf\x73\x3c\x4e\x6b\x37\x0c\xc4\x68\xcd\xe4\x61\x1e\x77\xee\x9f\x29\xf8\xce\xf4\x57\xb2\xaf\xdc\x83\x2d\x22\xee\x9f\x01\xaf\xa2\x3a\x69\xff\xee\x44\x1a\x8e\x0e\x02\x88\x7e\x00\xe5\x68\x64\xa7\x64\xf1\x2d\xfa\xaa\x48\x1e\x93\x47\x19\x9f\xb4\xdc\xe1\xba\x02\x3d\x0c\xcd\x38\x43\xb3\x0c\xe9\x40\xd3\xdd\x87\x0a\x39\x71\xf5\x79\x8a\x53\xb7\x13\x21\x6e\x1e\xbb\x75\x49\x35\xdd\xf3\x9e\x13\x0b\x4b\xbd\xfe\xda\xe2\x4b\xbf\xb9\x43\xcd\x3d\x32\xfc\x67\x11\x96\x7c\xf7\x25\x03\xba\x04\xd4\x8b\x68\xf4\x18\xa5\x15\x1b\x68\xcc\xdd\x3d\x85\xb0\x6d\x72\x0c\x5a\xec\xc7\xb3\xd4\xc8\x3c\xd3\x21\x4b\x64\x83\xdf\xbd\x6b\xd5\x71\xc1\x7e\x79\x79\xf0\x1b\xc8\xa5\xdc\xe3\x34\xf1\x88\x8f\x37\xd2\xd0\x4c\x7a\xaa\x97\xa3\x32\x52\xa6\x70\xe2\xb1\x1f\x4b\xbc\xb5\xd6\x73\x71\xe9\x02\xab\x26\x25\x3e\x62\x1b\x74\x4a\x7f\x4c\x21\xc0\xee\x68\x22\x2e\x60\x7f\xe1\x29\xa1\x78\x20\x3e\xc5\xcc\x02\x19\x46\x66\xf1\xc6\xe7\xa0\x24\x62\xfa\xb4\xf2\x3b\x8c\xa9\x9e\xfa\x4e\x17\x73\x73\x70\x1f\x33\x55\x3b\x33\x85\xf0\x78\x54\xb0\xae\x76\x95\xbc\x16\x8b\x1b\xbc\xd3\x60\xb7\xaf\x39\xc7\x52\xd3\x2c\x0c\x12\x72\x0e\xac\x81\x81\x1b\x3c\x07\x65\xd4\xd3\x84\x4c\xec\xeb\x84\xa0\x2a\x39\xeb\x83\xff\x9f\xf9\x8c\xfd\xfd\x58\x92\xfe\x1f\x99\x49\xa0\x27\x25\x7d\x1b\x7f\xb4\x9e\x28\xbe\x87\x7b\x89\xb7\xbc\x75\x7e\xdc\x79\x62\xdf\xc2\x0d\x08\x88\xd4\xc4\xc4\xa7\x03\x8d\x51\x51\xd7\x3c\x3e\xdd\xb3\xce\x4e\xb1\xb4\xcd\xa2\xef\x60\xd9\x7c\xca\x72\x6d\xa2\x36\x11\xb8\x83\x6a\x77\x2b\xa0\xe7\x9a\x8b\x04\xa5\xcc\x0b\x2b\x1a\xa6\x70\x89\xed\x27\x72\x86\x50\xa9\xef\x2b\x21\x23\x12\x4d\x82\x1d\x1c\xfa\xa7\x07\x87\xf7\xa5\x53\x6a\xe2\x28\x65\x24\xcb\x5d\xdf\x06\xb6\xfb\x6f\x60\xd0\x71\xf4\xaf\x47\x67\x44\x71\x7f\x53\x22\x1b\x44\xe6\x6a\x44\x28\xbe\x87\x10\x01\x02\x33\xbe\x5a\x4a\xb5\xc1\xfd\x33\x92\x37\x33\x20\xfb\xbe\x0c\x4f\x5a\x8b\x52\xb4\xd8\x7a\x25\x43\xd8\x38\xcc\x17\x86\x57\xbc\x26\x2e\x42\x21\x38\x47\xbb\x67\xab\x1c\x24\xf7\xaa\x33\x5d\xf1\x86\x68\x3e\xcd\x0c\xb5\x1f\x12\x54\x2b\x69\xa1\x3b\x3d\xcc\xfd\xcf\xf4\x3f\x2f\xdd\x9a\x82\x03\x4d\xcc\xc5\x0e\xb0\xe4\x47\x82\x00\x50\xb3\x2e\xe8\x20\x6b\x88\x12\xa6\xbb\xd5\x5a\x12\xac\xff\x0f\x1b\x76\xc5\xd5\x61\xf7\x82\x7d\x09\xc4\xba\x62\x9b\x77\x67\x7b\x70\xf9\x32\x2b\xca\xd0\x28\xc6\xd8\x26\xbd\x07\x5f\x3c\x62\xed\x02\xc0\xe2\x68\x45\xfc\x00\x9f\x1c\xf5\x51\x1f\x9f\x70\xb2\xb8\x81\xee\x4c\x5b\x13\x45\x3d\x24\x14\xf9\xfc\x21\x3f\x56\xb9\x1f\x3a\x73\xc0\xb5\x30\x77\x2f\x4a\x05\xf0\x3d\xd8\x23\x9c\x16\x05\xef\x87\xaf\x7b\x2c\x1e\x06\x5b\x76\x1d\x9b\x87\x51\x7e\x51\x6a\x6a\x9b\x65\x71\x2a\x69\x6b\x32\x46\xfa\x58\xc2\xd5\x3a\x8c\xb3\x47\x06\x75\x2b\x08\xeb\x8b\x18\xfb\x2a\xfa\x05\x51\x8e\x57\x8f\xc8\x87\x04\x7b\x7c\xc8\x65\x19\x3a\x4e\xa0\x96\x59\x2f\x4b\x9c\x2b\xa3\x30\x99\x96\x22\xb9\xc2\xe4\xb0\x33\xad\xf9\xfe\xe8\xb9\x5d\xbe\xfb\xd3\x0a\x35\x3c\xb2\x05\x25\xb9\x72\xf4\x65\x04\xa0\x15\x3e\x0a\x17\x49\x90\xa4\x48\xf3\x4c\x7a\x01\x5e\x2e\xba\x73\x61\xf0\x08\x49\xd9\xdc\x35\x2a\x17\x64\xa0\xc0\x2f\x2b\x6d\xd7\x8f\xfa\x20\x5e\xbd\xf8\x29\xda\xb8\x76\x11\xbf\x5e\x08\x25\x2d\x59\x8a\x89\x32\x90\x95\xdd\x7e\x29\x9c\x2b\x20\xb4\xb7\xbd\x19\x98\x99\x1b\x12\x11\x8b\x0a\x93\x84\x9f\x95\x5b\x2b\x8e\xdf\x25\x33\xa3\x59\x9f\xcb\xd2\x8b\xd3\xcf\x5c\x92\x48\xcb\xfc\xaf\xab\x35\x40\xb4\x28\xf0\xd5\x42\x01\xca\x2a\x84\xa8\xca\xbd\xa5\xc8\xfa\x51\x22\xd3\xa4", 4096); *(uint64_t*)0x20012448 = 0x20012340; *(uint32_t*)0x20012340 = r[2]; *(uint32_t*)0x20012344 = r[2]; *(uint64_t*)0x20012450 = 0x20012380; *(uint64_t*)0x20012458 = 0x20012400; *(uint32_t*)0x20012460 = 0x1000; *(uint32_t*)0x20012464 = 2; *(uint32_t*)0x20012468 = 0x51; *(uint32_t*)0x2001246c = 5; res = -1; res = ((intptr_t(*)(intptr_t,intptr_t,intptr_t,intptr_t,intptr_t,intptr_t))CAST(zx_channel_call))(/*handle=*/r[2], /*options=*/0, /*deadline=*/r[0], /*args=*/0x20012440, /*actual_bytes=*/0x20012480, /*actual_handles=*/0x200124c0); if (res == ZX_OK) { r[3] = *(uint32_t*)0x2001240c; r[4] = *(uint32_t*)0x20012410; } break; case 7: ((intptr_t(*)(intptr_t,intptr_t,intptr_t,intptr_t,intptr_t,intptr_t,intptr_t,intptr_t))CAST(zx_channel_read))(/*handle=*/r[3], /*options=*/0, /*bytes=*/0x20012500, /*num_bytes=*/0x10000, /*handles=*/0x20022500, /*num_handles=*/0, /*actual_bytes=*/0x20022540, /*actual_handles=*/0x20022580); break; case 8: res = -1; res = ((intptr_t(*)(intptr_t,intptr_t,intptr_t,intptr_t,intptr_t,intptr_t))CAST(zx_pager_create_vmo))(/*pager=*/r[4], /*options=*/0, /*port=*/r[4], /*key=*/0x3eb, /*size=*/0x7fb, /*out=*/0x200225c0); if (res == ZX_OK) r[5] = *(uint32_t*)0x200225c0; break; case 9: ((intptr_t(*)(intptr_t,intptr_t,intptr_t,intptr_t))CAST(zx_stream_seek))(/*handle=*/r[5], /*whence=*/0, /*offset=*/0x401, /*out_seek=*/0x20022600); break; case 10: memcpy((void*)0x20000000, "\xc4\xa1\x49\xc2\xda\x0b\x0f\x18\xd2\x3e\x26\xf3\x36\x67\xdb\xe2\xc4\xc1\xd1\x16\x3b\xc4\xc1\xb4\xc6\x85\x0a\x00\x00\x00\x00\xf3\x40\xac\x85\x2f\x47\x0f\xf2\x4a\x00\x44\x79\xa5\x26\xf2\xad", 47); syz_execute_func(/*text=*/0x20000000); break; case 11: syz_future_time(/*when=*/1); break; case 12: syz_job_default(); break; case 13: syz_mmap(/*addr=*/0x20ffb000, /*len=*/0x4000); break; case 14: syz_process_self(); break; case 15: syz_thread_self(); break; case 16: syz_vmar_root_self(); break; } } int main(void) { syz_mmap(/*addr=*/0x20000000, /*len=*/0x1000000); setup_fault(); use_temporary_dir(); do_sandbox_none(); return 0; } :261:66: error: use of undeclared identifier 'zx_system_get_performance_info' ((intptr_t(*)(intptr_t,intptr_t,intptr_t,intptr_t,intptr_t))CAST(zx_system_get_performance_info))(/*res=*/0, /*topic=*/0, /*count=*/4, /*info=*/0x20000000, /*output_count=*/0x20000040); ^ 1 error generated. compiler invocation: /syzkaller/shared/fuchsia/prebuilt/third_party/clang/linux-x64/bin/clang [-o /tmp/syz-executor905519937 -DGOOS_fuchsia=1 -DGOARCH_amd64=1 -DHOSTGOOS_linux=1 -x c - -Wno-deprecated -target x86_64-fuchsia -ldriver -lfdio -lzircon --sysroot /syzkaller/shared/fuchsia/out/x64/zircon_toolchain/obj/zircon/public/sysroot/sysroot -I /syzkaller/shared/fuchsia/sdk/lib/fdio/include -I /syzkaller/shared/fuchsia/zircon/system/ulib/fidl/include -I /syzkaller/shared/fuchsia/src/lib/ddk/include -I /syzkaller/shared/fuchsia/out/x64/fidling/gen/sdk/fidl/fuchsia.device -I /syzkaller/shared/fuchsia/out/x64/fidling/gen/sdk/fidl/fuchsia.device.manager -I /syzkaller/shared/fuchsia/out/x64/fidling/gen/sdk/fidl/fuchsia.hardware.nand -I /syzkaller/shared/fuchsia/out/x64/fidling/gen/sdk/fidl/fuchsia.hardware.power.statecontrol -I /syzkaller/shared/fuchsia/out/x64/fidling/gen/sdk/fidl/fuchsia.hardware.usb.peripheral -I /syzkaller/shared/fuchsia/out/x64/fidling/gen/zircon/vdso/zx -L /syzkaller/shared/fuchsia/out/x64/x64-shared -O2 -pthread -Wall -Werror -Wparentheses -Wunused-const-variable -Wframe-larger-than=16384 -Wno-array-bounds -Wno-unused-command-line-argument] --- FAIL: TestGenerate/fuchsia/amd64/8 (0.54s) csource_test.go:150: opts: {Threaded:true Repeat:true RepeatTimes:0 Procs:0 Slowdown:1 Sandbox:none SandboxArg:-9223372036854775808 Leak:false NetInjection:false NetDevices:false NetReset:false Cgroups:false BinfmtMisc:false CloseFDs:false KCSAN:false DevlinkPCI:false NicVF:false USB:false VhciInjection:false Wifi:false IEEE802154:false Sysctl:false Swap:false UseTmpDir:true HandleSegv:false Repro:false Trace:false LegacyOptions:{Collide:false Fault:false FaultCall:0 FaultNth:0}} program: zx_system_get_performance_info(0x0, 0x0, 0x4, &(0x7f0000000000)=""/1, &(0x7f0000000040)) (fail_nth: 1) r0 = syz_future_time(0x1) (async) zx_channel_call$fuchsia_io_FileSeek(0x0, 0x0, r0, &(0x7f0000010140)={&(0x7f0000000080)={{}, 0xffffffffffffffff, 0x2}, &(0x7f00000000c0), &(0x7f0000000100), &(0x7f0000010100), 0x1c, 0x0, 0x10000}, &(0x7f0000010180), &(0x7f00000101c0)) (rerun: 4) zx_process_create(0x0, &(0x7f0000010200)='\x00', 0x1, 0x0, &(0x7f0000010240)=0x0, &(0x7f0000010280)) zx_object_get_child(0x0, 0x0, 0x800, &(0x7f00000102c0)=0x0) zx_process_start(r1, r2, &(0x7f0000010300)="c4817d290e8051bf0065673666450ff7fdc401a1c40009c482f935f1c441fc52d0660fc5f398c4837909c6b1664b0f6ee5f341d8cd", &(0x7f0000010340)=""/4096, 0x0, 0x0) zx_channel_call(r2, 0x0, r0, &(0x7f0000012440)={&(0x7f0000011340)="68b92e90e81a0a65aba68ac3039007c40663fec316f1d3f030eb37cd0f8d9e056bc93cbf8811c6ec84bd43ee1dbc4eb9f291b1ff6296bf0f229b823cf75021ecdd1d843abece20ab3e287801d8a782d9947b008614b221e17c641ae2b5b0307cc6594759aaddde5b89ead9c032e8754ab98f09b03c802934cf4f75a4b153ae626a37333e7f35d166315311f3953ecf02f615822c58ac205d4da75d434ff36da5052a2f5d6c2a15477eb5536c80ee076e9894e6c63c0bf3d3004ce2107385919fcb771beebd389824689fbd28804b23cd933a3ab8d862c1f3cac7352fe4fccfc22d38777d69ba0fa2c820166ae8d351e116f0ca3dcfe6fc6d38f526411d407d0b2f97d822a054f440b05b7598b66e1848b0f2a8c2718f62c2c503fb28c8820626d9f46300f474feda0c816e43d9ed963447e0cd3d473ac3f0633d3d1fe4b43e587c3bfb5d3b9c3fb9472f7593c19a2d573f04796a7655ff5a1c0995834b07b62b79511946216d6c418af8ec0845782f112dfe0b7e4b6b0fb3604b4b2df31177a7c1976de255179553bff2544aa557a454b2657c5b3f0f71cff83c0b92d302d2201b7db36e9d8677dfad29ac432c25ea3b123db4f9240e9202c219a6479f05322aeb7da49f198893bdbfa0bf19a815e63aab70d4bcf3cb8b38f9ee914b43ee33e006d827919ce084d84257cb139979bb144e19cc8745478ea0ffde10d3cf590386497b43f4bc2725ec2d0df94f1a534a1ee8c429400e1078cc58a7bd8d1ded2cf4966766f21b4c07ce40d85593f8642b29652424a85aebdccdd8beba9fbfe6b1414cd3164552e7e49bb930019990dac4751a65be853b953b88eccac92c889c4d95116e94628480baab01a6cd991353ccbc8e78153038f45d9d2dc2c6fb96e37d9bdb69be948f12579371a43969e942ca69387296cf781526b7ef422f4c9bc644827237a03b2a60baaff7703ee33956dc669b1c04c721bf68f343c80b61f35ca1b19559965fd7026a1cec9bd9d92f1450ecbaf42de12042bd630d3445706c56775071deae54f2c531bc8c0be2268a13f12af588057f3ebd3ed17fa09a1a06071ec13e7e7638b15a8e0c55524a90c2d7c79c1b2f427fffaffa26390f1d6cd4abf2169604b2e779a734e06b15d03ed940bbc02ed1203f55dd3fd2957608398fc7265961dda28d626a8ea5edee28a37210c8c7321611e52b4e541c90e0721eda0de5f30cf3885eda30d6ece46263809aa1e5fe88b93106f1e7437faefcce951b197aa5b1f2780aa437cf6a1f9c069fe82d18c57ca9a705cf5202bbd1afc41e1d289a46a434cfd16bb7ce6ee764d5f0e6c81e8486eca116902abad6b98df389eaef8156b8b56325358e01f3ec30d050d9226ecfb0a1d7e2cae6b5ca6738c8cdeba6bc118327d682f8b5957c55617feac811ab2ab6ee3aee63639429f9979db5285c330da8a9f6a306b69cecfb2be3c640f04331fff3789a47445c5125fb99e996f401b319bfce5b08936db9c6f828c682bbe69e866ac0a6b204e02ecefd61142d0c20c1995562bc1fdab582296189a1b34bdb75722e64e7d4f00b8d83fdc2f8fc76971143750acd0d513b81298a2f8c72252cceb73633976f52fc2e93a1ef806ec7957c66eeac4c52f9b584580390c6fa4643e0cad59ad3f58104a728d93bc6869a6f649892eef9ecb3eebcebd34854f8e19db5ac62ba0b67a740bb39b1905e8d345e2ff21b4e25974bd5bc7c862607ddb6ac10cecde59c1a932b2fb5b22c673457bd4a396e3667f4227a276fa1a1b20fb60ff5841af64e981f6c84be84ad1bb10d941d615629654e1d128c9a377ad60b04c3cf2aad7118626eaae0b4068dd623e1a2d98b95524f9db16049ecffd5c8fee7e1bba747a1ee9ec5f67aee0b69951dfa0b587c34beb36be3c16c3ab024eb271f3716499ed5a1795eac3423c37b8fa9d20d1af4e967164263fc60e0cd8e84cfc312b34185f40a7d0777749147f60438653bc3d36a1dad3ea433684464e0c9c12a88c44d862e022992cb4bfa603d1f8d21a0a5bd6c62fc3e8427f196507daed74f62a17ba9781a4740cf7f9c5df12362ded5aaa835c1943c3d93241e9c312bff7232e6e92321400ddacb84b84b1c4120575c5d0246d78ad3e9fd4acbbb5115944d1c39f3e07405baf7dd4bd633c0bfdbaafdb42954eb6206668d53e9947594e4d0911b09036cba8f09f4cc198dc064c68d5a7b848dd2a6a664619611845767f992b1527a62771d36527cc881b5ccc06fbbf864e27dca99a433424bdb6ef631a7c824c246b7222216000dba03d7664c485a2cdfc04042db57164aa760078abb80ed030c0e6c83ae5b9fb4225c7ab72479d1762c730fe1fd9deac13d6cba0d78c01e03c12d9410cfb11ed20166a5780dd5e2eb221aaf424eddde14f4ac8302f16b699713d3225436ed4912aaef584979246f60a5168577856b82c2f809ccea64488fad8de0dccc30e7396c27c60d1da0f294ef98d596707439c35e248849121788643726329c1acd0bd79125240782d8af03b2b5cce2d960b8a9b3c81e1f88b9a07860a916e46053094622c6057af203c842ff84375729030665c5705240949e1b729d29496a29ed39d29317483eec8cbfb7dceac0b0ca6c3fb07aeb6a2368dc767eb07d7ed9cc62b910b801d08989a83f3be58618701c713f298ca7f17eae72510b29568c3159a44a01f7ffaeeddeae9d22c68ea261bc2060bce8a1213142b60b5a8d1e7314fe7fc39364b049d54f2a73cc7780f6ec477cb2738a0cb28a919f2c0cf935c1ef51bbac891338b72813acc379848bfc3b39969aeaa9f2787ddd183c3722a12b0b90f48ce2f7533f00d122c9835280f7fd8a0ad41aa1b08ba6d7dfca7b583c1e03989906040f5984c6699f382909f5939599585232c92776a1b5592712a42d5f44fc21a1882850261042ea98762309ded8799d909d6a406336a5f276fb29e9a8589736ded2e97ebc6f82b5f577d0a07021f4fcd6371c5ed29a5380d9dbf0d0ca34b684631dfb501e2ae243877432dad26a3cd3c94664a295461d6e78d057ef89842bac7a33f6a634b2e374ffac86aee35fd80008ab9809830554d7404e7540f11a7ef273dc846a57eef2b27204be709c3eaea2b305df401e4007f7f2978ebd37190e5e7cbf2d8ee418d6d9fa59ecba7603cba8d2f731733f42e49499c68592f87fea94354e0c066c30a256eab36495b10d082ede4e20630e4d799141cc44801408cd3b28a71c075504b3acc1b69d72ec615275781bf9bbdd87b7d409cf3cdd18e7cc86a164ddb980bf1adac888b7bab3d7c968a46481321c10748b79450303e5aa0860d6fcc4304e80d698866593ff7f18cdd1f93df672c7ce860b192d9e033d8aef00d4685c4165547303848b91bcb2a3956e2d17e51a70a6e383bce71d49be32bd461aec0d691c8849e6b178558e47b28831113fa448e7c950fee79dd5d0190d4c11d29bc2e0477091138e1d3836f1bb86bea2edc7ee8ebfca693022823d4968a067b36c06b0caa8e84633d81ea62e548a4e8709671f0c928a28e524af78ebd0a815aac9f6df611df081b75f5527f3b5a04a501ef02e37afe7aeb077d2d7aab08ccbc243fe69395d77ec5db84c3b6c5c8480afb3b3ce91e6a4dfb9bbeb5e623d1cfeff8b53b1e4f0337a4d8d5b3818517d66704b5756375dd85712ea2ae3c643cb564a9bb8c032ee333d0eccc6fa0170b5dd7a78ad50d7255fa113dfa1b20317b1d4d508967a38306ebe3423233198d6e341339e90d3e31bae9a1528b8f100aec437f656670c2bb3917bf9dff0fc2138cf4de3852c71a0c27ac0e1da61fde7dfe96603fbbe61b7697f4676b73d46f10d092348effa957b9af16aef7fed036ba740eadb9e3ee518700351dd63fd54a7853c6aae180e9cf7e71660178ac8a82b590104827daf9bd1ef078ad56cd393d8c3d0b0c042d27ae4b6f531d02c9f464272a71426d588471c2a6159b36ee76e16585340d1a1831da941556a84eb7684547bba0040dc4198e768c09e38a67562612de6eff630ff92f3c885cc41d31f54b802e6b3b47d51c387d9b3c20b7680dcf0ce71aaa46bfec60eab7f750a534cdb02cfabde84968002558ad22157b0528d13558d2aefcfc47302ef05778e71003c19645d84a511571093fdf67623cde36bc8ca16689b7788841d9f3e0bc1fde3d6a72a98a64aa8b67bf1775b012575dae015b4b0e3a3f96d862f3e75997314bb7ad1e00ede8ba53160eaee9d75f6813ba0a600156e01c1b9ae8cfcf4bf39fbacbc8764cc5656bc812b2541cec7d86c180f5bb38a124427c6966522eeef27ab3ceca125d5a34c832319eb76ca834f09629102c8304a02edc41707e794927c35ac31d6b6c006acd8524dc692878843a291a5d9dec9420aa7fb4d2a7191a5c2e81f6132094391b9ed0f61b0e44a3c2c96fb1309594c37d1a5ab89736e88643add4e2b8c7d9a33eda3d438248597dd2e578eb937874f5b91386511e9f96a8cdd430fb5cb30548cb64380a964356a5205eaaa188e97caced0fc678e6e6b5508614db1a9af942061035338ba7251dd4cd787f7e5465c07121ef8f98da151186ee0c727def8c68885ec3a74a5b69efdaabc97465351b421417c1b79147c9889b39eaf733c4e6b370cc468cde4611e77ee9f29f8cef457b2afdc832d22ee9f01afa23a69ffee441a8e0e02887e00e56864a764f12dfaaa481e9347199fb4dce1ba023d0ccd3843b30ce940d3dd870a3971f5798a53b713216e1ebb754935ddf39e130b4bbdfedae24bbfb943cd3d32fc6711967cf72503ba04d48b68f418a5151b68ccdd3d85b06d720c5aecc7b3d4c83cd3214b6483dfbd6bd571c17e7979f01bc8a5dce334f1888f37d2d04c7aaa97a33252a670e2b11f4bbcb5d67371e902ab26253e621b744a7f4c21c0ee68222e607fe129a178203ec5cc02194666f1c6e7a02462fab4f23b8ca99efa4e177373701f33553b3385f07854b0ae7695bc168b1bbcd360b7af39c752d32c0c12720eac81811b3c0765d4d3844ceceb84a02a39eb83ff9ff98cfdfd5892fe1f9949a027257d1b7fb49e28be877b89b7bc757edc7962dfc20d0888d4c4c4a7038d5151d73c3eddb3ce4eb1b4cda2ef60d97cca726da23611b8836a772ba0e79a8b04a5cc0b2b1aa67089ed27728650a9ef2b2123124d821d1cfaa70787f7a5536ae2286524cb5ddf06b6fb6f60d071f4af476744717f53221b44e66a4428be8710010233be5a4ab5c1fd3392373320fbbe0c4f5a8b52b4d87a2543d838cc178657bc262e42213847bb67ab1c24f7aa335df186683ecd0cb51f12542b69a13b3dccfdcff43f2fdd9a82034dccc50eb0e447820050b32ee8206b8812a6bbd55a12acff0f1b76c5d561f7827d09c4ba629b77677b70f9322bcad028c6d826bd075f3c62ed02c0e26845fc009f1cf5511f9f70b2b881ee4c5b13453d2414f9fc213f56b91f3a73c0b530772f4a05f03dd8239c1605ef87af7b2c1e065b761d9b87517e516a6a9b65712a696b3246fa58c2d53a8cb34706752b08eb8b18fb2afa05518e578fc887047b7cc865193a4ea096592f4b9c2ba330999622b9c2e4b033adf9fee8b95dbefbd30a353cb20525b972f46504a0153e0a174990a448f34c7a015e2eba7361f00849d9dc352a1764a0c02f2b6dd78ffa205ebdf829dab87611bf5e08252d598a89329095dd7e299c2b20b4b7bd1998991b12118b0a93849f955b2b8edf2533a3599fcbd28bd3cf5c9248cbfcafab3540b428f0d54201ca2a84a8cabda5c8fa5122d3a4", &(0x7f0000012340)=[r2, r2], &(0x7f0000012380)=""/81, &(0x7f0000012400)=[0x0, 0x0, 0x0, 0x0, 0x0], 0x1000, 0x2, 0x51, 0x5}, &(0x7f0000012480), &(0x7f00000124c0)) zx_channel_read$fuchsia_io_DirectoryAdminOnOpen(r3, 0x0, &(0x7f0000012500), 0x10000, &(0x7f0000022500), 0x0, &(0x7f0000022540), &(0x7f0000022580)) zx_pager_create_vmo(r4, 0x0, r4, 0x3, 0x7fb, &(0x7f00000225c0)=0x0) zx_stream_seek(r5, 0x0, 0x401, &(0x7f0000022600)) syz_execute_func(&(0x7f0000000000)="c4a149c2da0b0f18d23e26f33667dbe2c4c1d1163bc4c1b4c6850a00000000f340ac852f470ff24a004479a526f2ad") syz_future_time(0x1) syz_job_default() syz_mmap(&(0x7f0000ffb000/0x4000)=nil, 0x4000) syz_process_self() syz_thread_self() syz_vmar_root_self() csource_test.go:151: failed to build program: // autogenerated by syzkaller (https://github.com/google/syzkaller) #define _GNU_SOURCE #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include static void sleep_ms(uint64_t ms) { usleep(ms * 1000); } static uint64_t current_time_ms(void) { struct timespec ts; if (clock_gettime(CLOCK_MONOTONIC, &ts)) exit(1); return (uint64_t)ts.tv_sec * 1000 + (uint64_t)ts.tv_nsec / 1000000; } static void use_temporary_dir(void) { char tmpdir_template[] = "/tmp/syzkaller.XXXXXX"; char* tmpdir = mkdtemp(tmpdir_template); if (!tmpdir) exit(1); if (chmod(tmpdir, 0777)) exit(1); if (chdir(tmpdir)) exit(1); } static int inject_fault(int nth) { return 0; } static void setup_fault() { } static void thread_start(void* (*fn)(void*), void* arg) { pthread_t th; pthread_attr_t attr; pthread_attr_init(&attr); pthread_attr_setstacksize(&attr, 128 << 10); int i = 0; for (; i < 100; i++) { if (pthread_create(&th, &attr, fn, arg) == 0) { pthread_attr_destroy(&attr); return; } if (errno == EAGAIN) { usleep(50); continue; } break; } exit(1); } typedef struct { int state; } event_t; static void event_init(event_t* ev) { ev->state = 0; } static void event_reset(event_t* ev) { ev->state = 0; } static void event_set(event_t* ev) { if (ev->state) exit(1); __atomic_store_n(&ev->state, 1, __ATOMIC_RELEASE); } static void event_wait(event_t* ev) { while (!__atomic_load_n(&ev->state, __ATOMIC_ACQUIRE)) usleep(200); } static int event_isset(event_t* ev) { return __atomic_load_n(&ev->state, __ATOMIC_ACQUIRE); } static int event_timedwait(event_t* ev, uint64_t timeout_ms) { uint64_t start = current_time_ms(); for (;;) { if (__atomic_load_n(&ev->state, __ATOMIC_RELAXED)) return 1; if (current_time_ms() - start > timeout_ms) return 0; usleep(200); } } long syz_mmap(size_t addr, size_t size) { zx_handle_t root = zx_vmar_root_self(); zx_info_vmar_t info; zx_status_t status = zx_object_get_info(root, ZX_INFO_VMAR, &info, sizeof(info), 0, 0); if (status != ZX_OK) { return status; } zx_handle_t vmo; status = zx_vmo_create(size, 0, &vmo); if (status != ZX_OK) { return status; } uintptr_t mapped_addr; status = zx_vmar_map(root, ZX_VM_FLAG_SPECIFIC_OVERWRITE | ZX_VM_FLAG_PERM_READ | ZX_VM_FLAG_PERM_WRITE, addr - info.base, vmo, 0, size, &mapped_addr); zx_status_t close_vmo_status = zx_handle_close(vmo); if (close_vmo_status != ZX_OK) { } return status; } static long syz_process_self(void) { return zx_process_self(); } static long syz_thread_self(void) { return zx_thread_self(); } static long syz_vmar_root_self(void) { return zx_vmar_root_self(); } static long syz_job_default(void) { return zx_job_default(); } static long syz_future_time(volatile long when) { zx_time_t delta_ms = 10000; switch (when) { case 0: delta_ms = 5; break; case 1: delta_ms = 30; break; } zx_time_t now = 0; zx_clock_read(ZX_CLOCK_MONOTONIC, &now); return now + delta_ms * 1000 * 1000; } static void loop(); static int do_sandbox_none(void) { loop(); return 0; } #define CAST(f) ({void* p = (void*)f; p; }) static long syz_execute_func(volatile long text) { ((void (*)(void))(text))(); return 0; } struct thread_t { int created, call; event_t ready, done; }; static struct thread_t threads[16]; static void execute_call(int call); static int running; static void* thr(void* arg) { struct thread_t* th = (struct thread_t*)arg; for (;;) { event_wait(&th->ready); event_reset(&th->ready); execute_call(th->call); __atomic_fetch_sub(&running, 1, __ATOMIC_RELAXED); event_set(&th->done); } return 0; } static void execute_one(void) { int i, call, thread; for (call = 0; call < 17; call++) { for (thread = 0; thread < (int)(sizeof(threads) / sizeof(threads[0])); thread++) { struct thread_t* th = &threads[thread]; if (!th->created) { th->created = 1; event_init(&th->ready); event_init(&th->done); event_set(&th->done); thread_start(thr, th); } if (!event_isset(&th->done)) continue; event_reset(&th->done); th->call = call; __atomic_fetch_add(&running, 1, __ATOMIC_RELAXED); event_set(&th->ready); if (call == 1) break; event_timedwait(&th->done, 50); break; } } for (i = 0; i < 100 && __atomic_load_n(&running, __ATOMIC_RELAXED); i++) sleep_ms(1); } static void execute_one(void); static void loop(void) { execute_one(); } uint64_t r[6] = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0}; void execute_call(int call) { intptr_t res = 0; switch (call) { case 0: inject_fault(1); ((intptr_t(*)(intptr_t,intptr_t,intptr_t,intptr_t,intptr_t))CAST(zx_system_get_performance_info))(/*res=*/0, /*topic=*/0, /*count=*/4, /*info=*/0x20000000, /*output_count=*/0x20000040); break; case 1: res = -1; res = syz_future_time(/*when=*/1); if ((int)res != -1) r[0] = res; break; case 2: *(uint64_t*)0x20010140 = 0x20000080; *(uint32_t*)0x20000080 = 0; memset((void*)0x20000084, 0, 3); *(uint8_t*)0x20000087 = 1; *(uint64_t*)0x20000088 = 0x782a774500000000; *(uint64_t*)0x20000090 = -1; *(uint32_t*)0x20000098 = 2; *(uint64_t*)0x20010148 = 0x200000c0; *(uint64_t*)0x20010150 = 0x20000100; *(uint64_t*)0x20010158 = 0x20010100; *(uint32_t*)0x20010160 = 0x1c; *(uint32_t*)0x20010164 = 0; *(uint32_t*)0x20010168 = 0x10000; *(uint32_t*)0x2001016c = 0; ((intptr_t(*)(intptr_t,intptr_t,intptr_t,intptr_t,intptr_t,intptr_t))CAST(zx_channel_call))(/*handle=*/0, /*options=*/0, /*deadline=*/r[0], /*args=*/0x20010140, /*actual_bytes=*/0x20010180, /*actual_handles=*/0x200101c0); { int i; for(i = 0; i < 4; i++) { ((intptr_t(*)(intptr_t,intptr_t,intptr_t,intptr_t,intptr_t,intptr_t))CAST(zx_channel_call))(/*handle=*/0, /*options=*/0, /*deadline=*/r[0], /*args=*/0x20010140, /*actual_bytes=*/0x20010180, /*actual_handles=*/0x200101c0); } } break; case 3: memset((void*)0x20010200, 0, 1); res = -1; res = ((intptr_t(*)(intptr_t,intptr_t,intptr_t,intptr_t,intptr_t,intptr_t))CAST(zx_process_create))(/*job=*/0, /*name=*/0x20010200, /*name_len=*/1, /*options=*/0, /*proc_handle=*/0x20010240, /*vmar_handle=*/0x20010280); if (res == ZX_OK) r[1] = *(uint32_t*)0x20010240; break; case 4: res = -1; res = ((intptr_t(*)(intptr_t,intptr_t,intptr_t,intptr_t))CAST(zx_object_get_child))(/*handle=*/0, /*koid=*/0, /*rights=*/0x800, /*out=*/0x200102c0); if (res == ZX_OK) r[2] = *(uint32_t*)0x200102c0; break; case 5: memcpy((void*)0x20010300, "\xc4\x81\x7d\x29\x0e\x80\x51\xbf\x00\x65\x67\x36\x66\x45\x0f\xf7\xfd\xc4\x01\xa1\xc4\x00\x09\xc4\x82\xf9\x35\xf1\xc4\x41\xfc\x52\xd0\x66\x0f\xc5\xf3\x98\xc4\x83\x79\x09\xc6\xb1\x66\x4b\x0f\x6e\xe5\xf3\x41\xd8\xcd", 53); ((intptr_t(*)(intptr_t,intptr_t,intptr_t,intptr_t,intptr_t,intptr_t))CAST(zx_process_start))(/*process=*/r[1], /*thread=*/r[2], /*entry=*/0x20010300, /*stack=*/0x20010340, /*arg1=*/0, /*arg2=*/0); break; case 6: *(uint64_t*)0x20012440 = 0x20011340; memcpy((void*)0x20011340, "\x68\xb9\x2e\x90\xe8\x1a\x0a\x65\xab\xa6\x8a\xc3\x03\x90\x07\xc4\x06\x63\xfe\xc3\x16\xf1\xd3\xf0\x30\xeb\x37\xcd\x0f\x8d\x9e\x05\x6b\xc9\x3c\xbf\x88\x11\xc6\xec\x84\xbd\x43\xee\x1d\xbc\x4e\xb9\xf2\x91\xb1\xff\x62\x96\xbf\x0f\x22\x9b\x82\x3c\xf7\x50\x21\xec\xdd\x1d\x84\x3a\xbe\xce\x20\xab\x3e\x28\x78\x01\xd8\xa7\x82\xd9\x94\x7b\x00\x86\x14\xb2\x21\xe1\x7c\x64\x1a\xe2\xb5\xb0\x30\x7c\xc6\x59\x47\x59\xaa\xdd\xde\x5b\x89\xea\xd9\xc0\x32\xe8\x75\x4a\xb9\x8f\x09\xb0\x3c\x80\x29\x34\xcf\x4f\x75\xa4\xb1\x53\xae\x62\x6a\x37\x33\x3e\x7f\x35\xd1\x66\x31\x53\x11\xf3\x95\x3e\xcf\x02\xf6\x15\x82\x2c\x58\xac\x20\x5d\x4d\xa7\x5d\x43\x4f\xf3\x6d\xa5\x05\x2a\x2f\x5d\x6c\x2a\x15\x47\x7e\xb5\x53\x6c\x80\xee\x07\x6e\x98\x94\xe6\xc6\x3c\x0b\xf3\xd3\x00\x4c\xe2\x10\x73\x85\x91\x9f\xcb\x77\x1b\xee\xbd\x38\x98\x24\x68\x9f\xbd\x28\x80\x4b\x23\xcd\x93\x3a\x3a\xb8\xd8\x62\xc1\xf3\xca\xc7\x35\x2f\xe4\xfc\xcf\xc2\x2d\x38\x77\x7d\x69\xba\x0f\xa2\xc8\x20\x16\x6a\xe8\xd3\x51\xe1\x16\xf0\xca\x3d\xcf\xe6\xfc\x6d\x38\xf5\x26\x41\x1d\x40\x7d\x0b\x2f\x97\xd8\x22\xa0\x54\xf4\x40\xb0\x5b\x75\x98\xb6\x6e\x18\x48\xb0\xf2\xa8\xc2\x71\x8f\x62\xc2\xc5\x03\xfb\x28\xc8\x82\x06\x26\xd9\xf4\x63\x00\xf4\x74\xfe\xda\x0c\x81\x6e\x43\xd9\xed\x96\x34\x47\xe0\xcd\x3d\x47\x3a\xc3\xf0\x63\x3d\x3d\x1f\xe4\xb4\x3e\x58\x7c\x3b\xfb\x5d\x3b\x9c\x3f\xb9\x47\x2f\x75\x93\xc1\x9a\x2d\x57\x3f\x04\x79\x6a\x76\x55\xff\x5a\x1c\x09\x95\x83\x4b\x07\xb6\x2b\x79\x51\x19\x46\x21\x6d\x6c\x41\x8a\xf8\xec\x08\x45\x78\x2f\x11\x2d\xfe\x0b\x7e\x4b\x6b\x0f\xb3\x60\x4b\x4b\x2d\xf3\x11\x77\xa7\xc1\x97\x6d\xe2\x55\x17\x95\x53\xbf\xf2\x54\x4a\xa5\x57\xa4\x54\xb2\x65\x7c\x5b\x3f\x0f\x71\xcf\xf8\x3c\x0b\x92\xd3\x02\xd2\x20\x1b\x7d\xb3\x6e\x9d\x86\x77\xdf\xad\x29\xac\x43\x2c\x25\xea\x3b\x12\x3d\xb4\xf9\x24\x0e\x92\x02\xc2\x19\xa6\x47\x9f\x05\x32\x2a\xeb\x7d\xa4\x9f\x19\x88\x93\xbd\xbf\xa0\xbf\x19\xa8\x15\xe6\x3a\xab\x70\xd4\xbc\xf3\xcb\x8b\x38\xf9\xee\x91\x4b\x43\xee\x33\xe0\x06\xd8\x27\x91\x9c\xe0\x84\xd8\x42\x57\xcb\x13\x99\x79\xbb\x14\x4e\x19\xcc\x87\x45\x47\x8e\xa0\xff\xde\x10\xd3\xcf\x59\x03\x86\x49\x7b\x43\xf4\xbc\x27\x25\xec\x2d\x0d\xf9\x4f\x1a\x53\x4a\x1e\xe8\xc4\x29\x40\x0e\x10\x78\xcc\x58\xa7\xbd\x8d\x1d\xed\x2c\xf4\x96\x67\x66\xf2\x1b\x4c\x07\xce\x40\xd8\x55\x93\xf8\x64\x2b\x29\x65\x24\x24\xa8\x5a\xeb\xdc\xcd\xd8\xbe\xba\x9f\xbf\xe6\xb1\x41\x4c\xd3\x16\x45\x52\xe7\xe4\x9b\xb9\x30\x01\x99\x90\xda\xc4\x75\x1a\x65\xbe\x85\x3b\x95\x3b\x88\xec\xca\xc9\x2c\x88\x9c\x4d\x95\x11\x6e\x94\x62\x84\x80\xba\xab\x01\xa6\xcd\x99\x13\x53\xcc\xbc\x8e\x78\x15\x30\x38\xf4\x5d\x9d\x2d\xc2\xc6\xfb\x96\xe3\x7d\x9b\xdb\x69\xbe\x94\x8f\x12\x57\x93\x71\xa4\x39\x69\xe9\x42\xca\x69\x38\x72\x96\xcf\x78\x15\x26\xb7\xef\x42\x2f\x4c\x9b\xc6\x44\x82\x72\x37\xa0\x3b\x2a\x60\xba\xaf\xf7\x70\x3e\xe3\x39\x56\xdc\x66\x9b\x1c\x04\xc7\x21\xbf\x68\xf3\x43\xc8\x0b\x61\xf3\x5c\xa1\xb1\x95\x59\x96\x5f\xd7\x02\x6a\x1c\xec\x9b\xd9\xd9\x2f\x14\x50\xec\xba\xf4\x2d\xe1\x20\x42\xbd\x63\x0d\x34\x45\x70\x6c\x56\x77\x50\x71\xde\xae\x54\xf2\xc5\x31\xbc\x8c\x0b\xe2\x26\x8a\x13\xf1\x2a\xf5\x88\x05\x7f\x3e\xbd\x3e\xd1\x7f\xa0\x9a\x1a\x06\x07\x1e\xc1\x3e\x7e\x76\x38\xb1\x5a\x8e\x0c\x55\x52\x4a\x90\xc2\xd7\xc7\x9c\x1b\x2f\x42\x7f\xff\xaf\xfa\x26\x39\x0f\x1d\x6c\xd4\xab\xf2\x16\x96\x04\xb2\xe7\x79\xa7\x34\xe0\x6b\x15\xd0\x3e\xd9\x40\xbb\xc0\x2e\xd1\x20\x3f\x55\xdd\x3f\xd2\x95\x76\x08\x39\x8f\xc7\x26\x59\x61\xdd\xa2\x8d\x62\x6a\x8e\xa5\xed\xee\x28\xa3\x72\x10\xc8\xc7\x32\x16\x11\xe5\x2b\x4e\x54\x1c\x90\xe0\x72\x1e\xda\x0d\xe5\xf3\x0c\xf3\x88\x5e\xda\x30\xd6\xec\xe4\x62\x63\x80\x9a\xa1\xe5\xfe\x88\xb9\x31\x06\xf1\xe7\x43\x7f\xae\xfc\xce\x95\x1b\x19\x7a\xa5\xb1\xf2\x78\x0a\xa4\x37\xcf\x6a\x1f\x9c\x06\x9f\xe8\x2d\x18\xc5\x7c\xa9\xa7\x05\xcf\x52\x02\xbb\xd1\xaf\xc4\x1e\x1d\x28\x9a\x46\xa4\x34\xcf\xd1\x6b\xb7\xce\x6e\xe7\x64\xd5\xf0\xe6\xc8\x1e\x84\x86\xec\xa1\x16\x90\x2a\xba\xd6\xb9\x8d\xf3\x89\xea\xef\x81\x56\xb8\xb5\x63\x25\x35\x8e\x01\xf3\xec\x30\xd0\x50\xd9\x22\x6e\xcf\xb0\xa1\xd7\xe2\xca\xe6\xb5\xca\x67\x38\xc8\xcd\xeb\xa6\xbc\x11\x83\x27\xd6\x82\xf8\xb5\x95\x7c\x55\x61\x7f\xea\xc8\x11\xab\x2a\xb6\xee\x3a\xee\x63\x63\x94\x29\xf9\x97\x9d\xb5\x28\x5c\x33\x0d\xa8\xa9\xf6\xa3\x06\xb6\x9c\xec\xfb\x2b\xe3\xc6\x40\xf0\x43\x31\xff\xf3\x78\x9a\x47\x44\x5c\x51\x25\xfb\x99\xe9\x96\xf4\x01\xb3\x19\xbf\xce\x5b\x08\x93\x6d\xb9\xc6\xf8\x28\xc6\x82\xbb\xe6\x9e\x86\x6a\xc0\xa6\xb2\x04\xe0\x2e\xce\xfd\x61\x14\x2d\x0c\x20\xc1\x99\x55\x62\xbc\x1f\xda\xb5\x82\x29\x61\x89\xa1\xb3\x4b\xdb\x75\x72\x2e\x64\xe7\xd4\xf0\x0b\x8d\x83\xfd\xc2\xf8\xfc\x76\x97\x11\x43\x75\x0a\xcd\x0d\x51\x3b\x81\x29\x8a\x2f\x8c\x72\x25\x2c\xce\xb7\x36\x33\x97\x6f\x52\xfc\x2e\x93\xa1\xef\x80\x6e\xc7\x95\x7c\x66\xee\xac\x4c\x52\xf9\xb5\x84\x58\x03\x90\xc6\xfa\x46\x43\xe0\xca\xd5\x9a\xd3\xf5\x81\x04\xa7\x28\xd9\x3b\xc6\x86\x9a\x6f\x64\x98\x92\xee\xf9\xec\xb3\xee\xbc\xeb\xd3\x48\x54\xf8\xe1\x9d\xb5\xac\x62\xba\x0b\x67\xa7\x40\xbb\x39\xb1\x90\x5e\x8d\x34\x5e\x2f\xf2\x1b\x4e\x25\x97\x4b\xd5\xbc\x7c\x86\x26\x07\xdd\xb6\xac\x10\xce\xcd\xe5\x9c\x1a\x93\x2b\x2f\xb5\xb2\x2c\x67\x34\x57\xbd\x4a\x39\x6e\x36\x67\xf4\x22\x7a\x27\x6f\xa1\xa1\xb2\x0f\xb6\x0f\xf5\x84\x1a\xf6\x4e\x98\x1f\x6c\x84\xbe\x84\xad\x1b\xb1\x0d\x94\x1d\x61\x56\x29\x65\x4e\x1d\x12\x8c\x9a\x37\x7a\xd6\x0b\x04\xc3\xcf\x2a\xad\x71\x18\x62\x6e\xaa\xe0\xb4\x06\x8d\xd6\x23\xe1\xa2\xd9\x8b\x95\x52\x4f\x9d\xb1\x60\x49\xec\xff\xd5\xc8\xfe\xe7\xe1\xbb\xa7\x47\xa1\xee\x9e\xc5\xf6\x7a\xee\x0b\x69\x95\x1d\xfa\x0b\x58\x7c\x34\xbe\xb3\x6b\xe3\xc1\x6c\x3a\xb0\x24\xeb\x27\x1f\x37\x16\x49\x9e\xd5\xa1\x79\x5e\xac\x34\x23\xc3\x7b\x8f\xa9\xd2\x0d\x1a\xf4\xe9\x67\x16\x42\x63\xfc\x60\xe0\xcd\x8e\x84\xcf\xc3\x12\xb3\x41\x85\xf4\x0a\x7d\x07\x77\x74\x91\x47\xf6\x04\x38\x65\x3b\xc3\xd3\x6a\x1d\xad\x3e\xa4\x33\x68\x44\x64\xe0\xc9\xc1\x2a\x88\xc4\x4d\x86\x2e\x02\x29\x92\xcb\x4b\xfa\x60\x3d\x1f\x8d\x21\xa0\xa5\xbd\x6c\x62\xfc\x3e\x84\x27\xf1\x96\x50\x7d\xae\xd7\x4f\x62\xa1\x7b\xa9\x78\x1a\x47\x40\xcf\x7f\x9c\x5d\xf1\x23\x62\xde\xd5\xaa\xa8\x35\xc1\x94\x3c\x3d\x93\x24\x1e\x9c\x31\x2b\xff\x72\x32\xe6\xe9\x23\x21\x40\x0d\xda\xcb\x84\xb8\x4b\x1c\x41\x20\x57\x5c\x5d\x02\x46\xd7\x8a\xd3\xe9\xfd\x4a\xcb\xbb\x51\x15\x94\x4d\x1c\x39\xf3\xe0\x74\x05\xba\xf7\xdd\x4b\xd6\x33\xc0\xbf\xdb\xaa\xfd\xb4\x29\x54\xeb\x62\x06\x66\x8d\x53\xe9\x94\x75\x94\xe4\xd0\x91\x1b\x09\x03\x6c\xba\x8f\x09\xf4\xcc\x19\x8d\xc0\x64\xc6\x8d\x5a\x7b\x84\x8d\xd2\xa6\xa6\x64\x61\x96\x11\x84\x57\x67\xf9\x92\xb1\x52\x7a\x62\x77\x1d\x36\x52\x7c\xc8\x81\xb5\xcc\xc0\x6f\xbb\xf8\x64\xe2\x7d\xca\x99\xa4\x33\x42\x4b\xdb\x6e\xf6\x31\xa7\xc8\x24\xc2\x46\xb7\x22\x22\x16\x00\x0d\xba\x03\xd7\x66\x4c\x48\x5a\x2c\xdf\xc0\x40\x42\xdb\x57\x16\x4a\xa7\x60\x07\x8a\xbb\x80\xed\x03\x0c\x0e\x6c\x83\xae\x5b\x9f\xb4\x22\x5c\x7a\xb7\x24\x79\xd1\x76\x2c\x73\x0f\xe1\xfd\x9d\xea\xc1\x3d\x6c\xba\x0d\x78\xc0\x1e\x03\xc1\x2d\x94\x10\xcf\xb1\x1e\xd2\x01\x66\xa5\x78\x0d\xd5\xe2\xeb\x22\x1a\xaf\x42\x4e\xdd\xde\x14\xf4\xac\x83\x02\xf1\x6b\x69\x97\x13\xd3\x22\x54\x36\xed\x49\x12\xaa\xef\x58\x49\x79\x24\x6f\x60\xa5\x16\x85\x77\x85\x6b\x82\xc2\xf8\x09\xcc\xea\x64\x48\x8f\xad\x8d\xe0\xdc\xcc\x30\xe7\x39\x6c\x27\xc6\x0d\x1d\xa0\xf2\x94\xef\x98\xd5\x96\x70\x74\x39\xc3\x5e\x24\x88\x49\x12\x17\x88\x64\x37\x26\x32\x9c\x1a\xcd\x0b\xd7\x91\x25\x24\x07\x82\xd8\xaf\x03\xb2\xb5\xcc\xe2\xd9\x60\xb8\xa9\xb3\xc8\x1e\x1f\x88\xb9\xa0\x78\x60\xa9\x16\xe4\x60\x53\x09\x46\x22\xc6\x05\x7a\xf2\x03\xc8\x42\xff\x84\x37\x57\x29\x03\x06\x65\xc5\x70\x52\x40\x94\x9e\x1b\x72\x9d\x29\x49\x6a\x29\xed\x39\xd2\x93\x17\x48\x3e\xec\x8c\xbf\xb7\xdc\xea\xc0\xb0\xca\x6c\x3f\xb0\x7a\xeb\x6a\x23\x68\xdc\x76\x7e\xb0\x7d\x7e\xd9\xcc\x62\xb9\x10\xb8\x01\xd0\x89\x89\xa8\x3f\x3b\xe5\x86\x18\x70\x1c\x71\x3f\x29\x8c\xa7\xf1\x7e\xae\x72\x51\x0b\x29\x56\x8c\x31\x59\xa4\x4a\x01\xf7\xff\xae\xed\xde\xae\x9d\x22\xc6\x8e\xa2\x61\xbc\x20\x60\xbc\xe8\xa1\x21\x31\x42\xb6\x0b\x5a\x8d\x1e\x73\x14\xfe\x7f\xc3\x93\x64\xb0\x49\xd5\x4f\x2a\x73\xcc\x77\x80\xf6\xec\x47\x7c\xb2\x73\x8a\x0c\xb2\x8a\x91\x9f\x2c\x0c\xf9\x35\xc1\xef\x51\xbb\xac\x89\x13\x38\xb7\x28\x13\xac\xc3\x79\x84\x8b\xfc\x3b\x39\x96\x9a\xea\xa9\xf2\x78\x7d\xdd\x18\x3c\x37\x22\xa1\x2b\x0b\x90\xf4\x8c\xe2\xf7\x53\x3f\x00\xd1\x22\xc9\x83\x52\x80\xf7\xfd\x8a\x0a\xd4\x1a\xa1\xb0\x8b\xa6\xd7\xdf\xca\x7b\x58\x3c\x1e\x03\x98\x99\x06\x04\x0f\x59\x84\xc6\x69\x9f\x38\x29\x09\xf5\x93\x95\x99\x58\x52\x32\xc9\x27\x76\xa1\xb5\x59\x27\x12\xa4\x2d\x5f\x44\xfc\x21\xa1\x88\x28\x50\x26\x10\x42\xea\x98\x76\x23\x09\xde\xd8\x79\x9d\x90\x9d\x6a\x40\x63\x36\xa5\xf2\x76\xfb\x29\xe9\xa8\x58\x97\x36\xde\xd2\xe9\x7e\xbc\x6f\x82\xb5\xf5\x77\xd0\xa0\x70\x21\xf4\xfc\xd6\x37\x1c\x5e\xd2\x9a\x53\x80\xd9\xdb\xf0\xd0\xca\x34\xb6\x84\x63\x1d\xfb\x50\x1e\x2a\xe2\x43\x87\x74\x32\xda\xd2\x6a\x3c\xd3\xc9\x46\x64\xa2\x95\x46\x1d\x6e\x78\xd0\x57\xef\x89\x84\x2b\xac\x7a\x33\xf6\xa6\x34\xb2\xe3\x74\xff\xac\x86\xae\xe3\x5f\xd8\x00\x08\xab\x98\x09\x83\x05\x54\xd7\x40\x4e\x75\x40\xf1\x1a\x7e\xf2\x73\xdc\x84\x6a\x57\xee\xf2\xb2\x72\x04\xbe\x70\x9c\x3e\xae\xa2\xb3\x05\xdf\x40\x1e\x40\x07\xf7\xf2\x97\x8e\xbd\x37\x19\x0e\x5e\x7c\xbf\x2d\x8e\xe4\x18\xd6\xd9\xfa\x59\xec\xba\x76\x03\xcb\xa8\xd2\xf7\x31\x73\x3f\x42\xe4\x94\x99\xc6\x85\x92\xf8\x7f\xea\x94\x35\x4e\x0c\x06\x6c\x30\xa2\x56\xea\xb3\x64\x95\xb1\x0d\x08\x2e\xde\x4e\x20\x63\x0e\x4d\x79\x91\x41\xcc\x44\x80\x14\x08\xcd\x3b\x28\xa7\x1c\x07\x55\x04\xb3\xac\xc1\xb6\x9d\x72\xec\x61\x52\x75\x78\x1b\xf9\xbb\xdd\x87\xb7\xd4\x09\xcf\x3c\xdd\x18\xe7\xcc\x86\xa1\x64\xdd\xb9\x80\xbf\x1a\xda\xc8\x88\xb7\xba\xb3\xd7\xc9\x68\xa4\x64\x81\x32\x1c\x10\x74\x8b\x79\x45\x03\x03\xe5\xaa\x08\x60\xd6\xfc\xc4\x30\x4e\x80\xd6\x98\x86\x65\x93\xff\x7f\x18\xcd\xd1\xf9\x3d\xf6\x72\xc7\xce\x86\x0b\x19\x2d\x9e\x03\x3d\x8a\xef\x00\xd4\x68\x5c\x41\x65\x54\x73\x03\x84\x8b\x91\xbc\xb2\xa3\x95\x6e\x2d\x17\xe5\x1a\x70\xa6\xe3\x83\xbc\xe7\x1d\x49\xbe\x32\xbd\x46\x1a\xec\x0d\x69\x1c\x88\x49\xe6\xb1\x78\x55\x8e\x47\xb2\x88\x31\x11\x3f\xa4\x48\xe7\xc9\x50\xfe\xe7\x9d\xd5\xd0\x19\x0d\x4c\x11\xd2\x9b\xc2\xe0\x47\x70\x91\x13\x8e\x1d\x38\x36\xf1\xbb\x86\xbe\xa2\xed\xc7\xee\x8e\xbf\xca\x69\x30\x22\x82\x3d\x49\x68\xa0\x67\xb3\x6c\x06\xb0\xca\xa8\xe8\x46\x33\xd8\x1e\xa6\x2e\x54\x8a\x4e\x87\x09\x67\x1f\x0c\x92\x8a\x28\xe5\x24\xaf\x78\xeb\xd0\xa8\x15\xaa\xc9\xf6\xdf\x61\x1d\xf0\x81\xb7\x5f\x55\x27\xf3\xb5\xa0\x4a\x50\x1e\xf0\x2e\x37\xaf\xe7\xae\xb0\x77\xd2\xd7\xaa\xb0\x8c\xcb\xc2\x43\xfe\x69\x39\x5d\x77\xec\x5d\xb8\x4c\x3b\x6c\x5c\x84\x80\xaf\xb3\xb3\xce\x91\xe6\xa4\xdf\xb9\xbb\xeb\x5e\x62\x3d\x1c\xfe\xff\x8b\x53\xb1\xe4\xf0\x33\x7a\x4d\x8d\x5b\x38\x18\x51\x7d\x66\x70\x4b\x57\x56\x37\x5d\xd8\x57\x12\xea\x2a\xe3\xc6\x43\xcb\x56\x4a\x9b\xb8\xc0\x32\xee\x33\x3d\x0e\xcc\xc6\xfa\x01\x70\xb5\xdd\x7a\x78\xad\x50\xd7\x25\x5f\xa1\x13\xdf\xa1\xb2\x03\x17\xb1\xd4\xd5\x08\x96\x7a\x38\x30\x6e\xbe\x34\x23\x23\x31\x98\xd6\xe3\x41\x33\x9e\x90\xd3\xe3\x1b\xae\x9a\x15\x28\xb8\xf1\x00\xae\xc4\x37\xf6\x56\x67\x0c\x2b\xb3\x91\x7b\xf9\xdf\xf0\xfc\x21\x38\xcf\x4d\xe3\x85\x2c\x71\xa0\xc2\x7a\xc0\xe1\xda\x61\xfd\xe7\xdf\xe9\x66\x03\xfb\xbe\x61\xb7\x69\x7f\x46\x76\xb7\x3d\x46\xf1\x0d\x09\x23\x48\xef\xfa\x95\x7b\x9a\xf1\x6a\xef\x7f\xed\x03\x6b\xa7\x40\xea\xdb\x9e\x3e\xe5\x18\x70\x03\x51\xdd\x63\xfd\x54\xa7\x85\x3c\x6a\xae\x18\x0e\x9c\xf7\xe7\x16\x60\x17\x8a\xc8\xa8\x2b\x59\x01\x04\x82\x7d\xaf\x9b\xd1\xef\x07\x8a\xd5\x6c\xd3\x93\xd8\xc3\xd0\xb0\xc0\x42\xd2\x7a\xe4\xb6\xf5\x31\xd0\x2c\x9f\x46\x42\x72\xa7\x14\x26\xd5\x88\x47\x1c\x2a\x61\x59\xb3\x6e\xe7\x6e\x16\x58\x53\x40\xd1\xa1\x83\x1d\xa9\x41\x55\x6a\x84\xeb\x76\x84\x54\x7b\xba\x00\x40\xdc\x41\x98\xe7\x68\xc0\x9e\x38\xa6\x75\x62\x61\x2d\xe6\xef\xf6\x30\xff\x92\xf3\xc8\x85\xcc\x41\xd3\x1f\x54\xb8\x02\xe6\xb3\xb4\x7d\x51\xc3\x87\xd9\xb3\xc2\x0b\x76\x80\xdc\xf0\xce\x71\xaa\xa4\x6b\xfe\xc6\x0e\xab\x7f\x75\x0a\x53\x4c\xdb\x02\xcf\xab\xde\x84\x96\x80\x02\x55\x8a\xd2\x21\x57\xb0\x52\x8d\x13\x55\x8d\x2a\xef\xcf\xc4\x73\x02\xef\x05\x77\x8e\x71\x00\x3c\x19\x64\x5d\x84\xa5\x11\x57\x10\x93\xfd\xf6\x76\x23\xcd\xe3\x6b\xc8\xca\x16\x68\x9b\x77\x88\x84\x1d\x9f\x3e\x0b\xc1\xfd\xe3\xd6\xa7\x2a\x98\xa6\x4a\xa8\xb6\x7b\xf1\x77\x5b\x01\x25\x75\xda\xe0\x15\xb4\xb0\xe3\xa3\xf9\x6d\x86\x2f\x3e\x75\x99\x73\x14\xbb\x7a\xd1\xe0\x0e\xde\x8b\xa5\x31\x60\xea\xee\x9d\x75\xf6\x81\x3b\xa0\xa6\x00\x15\x6e\x01\xc1\xb9\xae\x8c\xfc\xf4\xbf\x39\xfb\xac\xbc\x87\x64\xcc\x56\x56\xbc\x81\x2b\x25\x41\xce\xc7\xd8\x6c\x18\x0f\x5b\xb3\x8a\x12\x44\x27\xc6\x96\x65\x22\xee\xef\x27\xab\x3c\xec\xa1\x25\xd5\xa3\x4c\x83\x23\x19\xeb\x76\xca\x83\x4f\x09\x62\x91\x02\xc8\x30\x4a\x02\xed\xc4\x17\x07\xe7\x94\x92\x7c\x35\xac\x31\xd6\xb6\xc0\x06\xac\xd8\x52\x4d\xc6\x92\x87\x88\x43\xa2\x91\xa5\xd9\xde\xc9\x42\x0a\xa7\xfb\x4d\x2a\x71\x91\xa5\xc2\xe8\x1f\x61\x32\x09\x43\x91\xb9\xed\x0f\x61\xb0\xe4\x4a\x3c\x2c\x96\xfb\x13\x09\x59\x4c\x37\xd1\xa5\xab\x89\x73\x6e\x88\x64\x3a\xdd\x4e\x2b\x8c\x7d\x9a\x33\xed\xa3\xd4\x38\x24\x85\x97\xdd\x2e\x57\x8e\xb9\x37\x87\x4f\x5b\x91\x38\x65\x11\xe9\xf9\x6a\x8c\xdd\x43\x0f\xb5\xcb\x30\x54\x8c\xb6\x43\x80\xa9\x64\x35\x6a\x52\x05\xea\xaa\x18\x8e\x97\xca\xce\xd0\xfc\x67\x8e\x6e\x6b\x55\x08\x61\x4d\xb1\xa9\xaf\x94\x20\x61\x03\x53\x38\xba\x72\x51\xdd\x4c\xd7\x87\xf7\xe5\x46\x5c\x07\x12\x1e\xf8\xf9\x8d\xa1\x51\x18\x6e\xe0\xc7\x27\xde\xf8\xc6\x88\x85\xec\x3a\x74\xa5\xb6\x9e\xfd\xaa\xbc\x97\x46\x53\x51\xb4\x21\x41\x7c\x1b\x79\x14\x7c\x98\x89\xb3\x9e\xaf\x73\x3c\x4e\x6b\x37\x0c\xc4\x68\xcd\xe4\x61\x1e\x77\xee\x9f\x29\xf8\xce\xf4\x57\xb2\xaf\xdc\x83\x2d\x22\xee\x9f\x01\xaf\xa2\x3a\x69\xff\xee\x44\x1a\x8e\x0e\x02\x88\x7e\x00\xe5\x68\x64\xa7\x64\xf1\x2d\xfa\xaa\x48\x1e\x93\x47\x19\x9f\xb4\xdc\xe1\xba\x02\x3d\x0c\xcd\x38\x43\xb3\x0c\xe9\x40\xd3\xdd\x87\x0a\x39\x71\xf5\x79\x8a\x53\xb7\x13\x21\x6e\x1e\xbb\x75\x49\x35\xdd\xf3\x9e\x13\x0b\x4b\xbd\xfe\xda\xe2\x4b\xbf\xb9\x43\xcd\x3d\x32\xfc\x67\x11\x96\x7c\xf7\x25\x03\xba\x04\xd4\x8b\x68\xf4\x18\xa5\x15\x1b\x68\xcc\xdd\x3d\x85\xb0\x6d\x72\x0c\x5a\xec\xc7\xb3\xd4\xc8\x3c\xd3\x21\x4b\x64\x83\xdf\xbd\x6b\xd5\x71\xc1\x7e\x79\x79\xf0\x1b\xc8\xa5\xdc\xe3\x34\xf1\x88\x8f\x37\xd2\xd0\x4c\x7a\xaa\x97\xa3\x32\x52\xa6\x70\xe2\xb1\x1f\x4b\xbc\xb5\xd6\x73\x71\xe9\x02\xab\x26\x25\x3e\x62\x1b\x74\x4a\x7f\x4c\x21\xc0\xee\x68\x22\x2e\x60\x7f\xe1\x29\xa1\x78\x20\x3e\xc5\xcc\x02\x19\x46\x66\xf1\xc6\xe7\xa0\x24\x62\xfa\xb4\xf2\x3b\x8c\xa9\x9e\xfa\x4e\x17\x73\x73\x70\x1f\x33\x55\x3b\x33\x85\xf0\x78\x54\xb0\xae\x76\x95\xbc\x16\x8b\x1b\xbc\xd3\x60\xb7\xaf\x39\xc7\x52\xd3\x2c\x0c\x12\x72\x0e\xac\x81\x81\x1b\x3c\x07\x65\xd4\xd3\x84\x4c\xec\xeb\x84\xa0\x2a\x39\xeb\x83\xff\x9f\xf9\x8c\xfd\xfd\x58\x92\xfe\x1f\x99\x49\xa0\x27\x25\x7d\x1b\x7f\xb4\x9e\x28\xbe\x87\x7b\x89\xb7\xbc\x75\x7e\xdc\x79\x62\xdf\xc2\x0d\x08\x88\xd4\xc4\xc4\xa7\x03\x8d\x51\x51\xd7\x3c\x3e\xdd\xb3\xce\x4e\xb1\xb4\xcd\xa2\xef\x60\xd9\x7c\xca\x72\x6d\xa2\x36\x11\xb8\x83\x6a\x77\x2b\xa0\xe7\x9a\x8b\x04\xa5\xcc\x0b\x2b\x1a\xa6\x70\x89\xed\x27\x72\x86\x50\xa9\xef\x2b\x21\x23\x12\x4d\x82\x1d\x1c\xfa\xa7\x07\x87\xf7\xa5\x53\x6a\xe2\x28\x65\x24\xcb\x5d\xdf\x06\xb6\xfb\x6f\x60\xd0\x71\xf4\xaf\x47\x67\x44\x71\x7f\x53\x22\x1b\x44\xe6\x6a\x44\x28\xbe\x87\x10\x01\x02\x33\xbe\x5a\x4a\xb5\xc1\xfd\x33\x92\x37\x33\x20\xfb\xbe\x0c\x4f\x5a\x8b\x52\xb4\xd8\x7a\x25\x43\xd8\x38\xcc\x17\x86\x57\xbc\x26\x2e\x42\x21\x38\x47\xbb\x67\xab\x1c\x24\xf7\xaa\x33\x5d\xf1\x86\x68\x3e\xcd\x0c\xb5\x1f\x12\x54\x2b\x69\xa1\x3b\x3d\xcc\xfd\xcf\xf4\x3f\x2f\xdd\x9a\x82\x03\x4d\xcc\xc5\x0e\xb0\xe4\x47\x82\x00\x50\xb3\x2e\xe8\x20\x6b\x88\x12\xa6\xbb\xd5\x5a\x12\xac\xff\x0f\x1b\x76\xc5\xd5\x61\xf7\x82\x7d\x09\xc4\xba\x62\x9b\x77\x67\x7b\x70\xf9\x32\x2b\xca\xd0\x28\xc6\xd8\x26\xbd\x07\x5f\x3c\x62\xed\x02\xc0\xe2\x68\x45\xfc\x00\x9f\x1c\xf5\x51\x1f\x9f\x70\xb2\xb8\x81\xee\x4c\x5b\x13\x45\x3d\x24\x14\xf9\xfc\x21\x3f\x56\xb9\x1f\x3a\x73\xc0\xb5\x30\x77\x2f\x4a\x05\xf0\x3d\xd8\x23\x9c\x16\x05\xef\x87\xaf\x7b\x2c\x1e\x06\x5b\x76\x1d\x9b\x87\x51\x7e\x51\x6a\x6a\x9b\x65\x71\x2a\x69\x6b\x32\x46\xfa\x58\xc2\xd5\x3a\x8c\xb3\x47\x06\x75\x2b\x08\xeb\x8b\x18\xfb\x2a\xfa\x05\x51\x8e\x57\x8f\xc8\x87\x04\x7b\x7c\xc8\x65\x19\x3a\x4e\xa0\x96\x59\x2f\x4b\x9c\x2b\xa3\x30\x99\x96\x22\xb9\xc2\xe4\xb0\x33\xad\xf9\xfe\xe8\xb9\x5d\xbe\xfb\xd3\x0a\x35\x3c\xb2\x05\x25\xb9\x72\xf4\x65\x04\xa0\x15\x3e\x0a\x17\x49\x90\xa4\x48\xf3\x4c\x7a\x01\x5e\x2e\xba\x73\x61\xf0\x08\x49\xd9\xdc\x35\x2a\x17\x64\xa0\xc0\x2f\x2b\x6d\xd7\x8f\xfa\x20\x5e\xbd\xf8\x29\xda\xb8\x76\x11\xbf\x5e\x08\x25\x2d\x59\x8a\x89\x32\x90\x95\xdd\x7e\x29\x9c\x2b\x20\xb4\xb7\xbd\x19\x98\x99\x1b\x12\x11\x8b\x0a\x93\x84\x9f\x95\x5b\x2b\x8e\xdf\x25\x33\xa3\x59\x9f\xcb\xd2\x8b\xd3\xcf\x5c\x92\x48\xcb\xfc\xaf\xab\x35\x40\xb4\x28\xf0\xd5\x42\x01\xca\x2a\x84\xa8\xca\xbd\xa5\xc8\xfa\x51\x22\xd3\xa4", 4096); *(uint64_t*)0x20012448 = 0x20012340; *(uint32_t*)0x20012340 = r[2]; *(uint32_t*)0x20012344 = r[2]; *(uint64_t*)0x20012450 = 0x20012380; *(uint64_t*)0x20012458 = 0x20012400; *(uint32_t*)0x20012460 = 0x1000; *(uint32_t*)0x20012464 = 2; *(uint32_t*)0x20012468 = 0x51; *(uint32_t*)0x2001246c = 5; res = -1; res = ((intptr_t(*)(intptr_t,intptr_t,intptr_t,intptr_t,intptr_t,intptr_t))CAST(zx_channel_call))(/*handle=*/r[2], /*options=*/0, /*deadline=*/r[0], /*args=*/0x20012440, /*actual_bytes=*/0x20012480, /*actual_handles=*/0x200124c0); if (res == ZX_OK) { r[3] = *(uint32_t*)0x2001240c; r[4] = *(uint32_t*)0x20012410; } break; case 7: ((intptr_t(*)(intptr_t,intptr_t,intptr_t,intptr_t,intptr_t,intptr_t,intptr_t,intptr_t))CAST(zx_channel_read))(/*handle=*/r[3], /*options=*/0, /*bytes=*/0x20012500, /*num_bytes=*/0x10000, /*handles=*/0x20022500, /*num_handles=*/0, /*actual_bytes=*/0x20022540, /*actual_handles=*/0x20022580); break; case 8: res = -1; res = ((intptr_t(*)(intptr_t,intptr_t,intptr_t,intptr_t,intptr_t,intptr_t))CAST(zx_pager_create_vmo))(/*pager=*/r[4], /*options=*/0, /*port=*/r[4], /*key=*/0x3eb, /*size=*/0x7fb, /*out=*/0x200225c0); if (res == ZX_OK) r[5] = *(uint32_t*)0x200225c0; break; case 9: ((intptr_t(*)(intptr_t,intptr_t,intptr_t,intptr_t))CAST(zx_stream_seek))(/*handle=*/r[5], /*whence=*/0, /*offset=*/0x401, /*out_seek=*/0x20022600); break; case 10: memcpy((void*)0x20000000, "\xc4\xa1\x49\xc2\xda\x0b\x0f\x18\xd2\x3e\x26\xf3\x36\x67\xdb\xe2\xc4\xc1\xd1\x16\x3b\xc4\xc1\xb4\xc6\x85\x0a\x00\x00\x00\x00\xf3\x40\xac\x85\x2f\x47\x0f\xf2\x4a\x00\x44\x79\xa5\x26\xf2\xad", 47); syz_execute_func(/*text=*/0x20000000); break; case 11: syz_future_time(/*when=*/1); break; case 12: syz_job_default(); break; case 13: syz_mmap(/*addr=*/0x20ffb000, /*len=*/0x4000); break; case 14: syz_process_self(); break; case 15: syz_thread_self(); break; case 16: syz_vmar_root_self(); break; } } int main(void) { syz_mmap(/*addr=*/0x20000000, /*len=*/0x1000000); setup_fault(); use_temporary_dir(); do_sandbox_none(); return 0; } :267:66: error: use of undeclared identifier 'zx_system_get_performance_info' ((intptr_t(*)(intptr_t,intptr_t,intptr_t,intptr_t,intptr_t))CAST(zx_system_get_performance_info))(/*res=*/0, /*topic=*/0, /*count=*/4, /*info=*/0x20000000, /*output_count=*/0x20000040); ^ 1 error generated. compiler invocation: /syzkaller/shared/fuchsia/prebuilt/third_party/clang/linux-x64/bin/clang [-o /tmp/syz-executor59998206 -DGOOS_fuchsia=1 -DGOARCH_amd64=1 -DHOSTGOOS_linux=1 -x c - -Wno-deprecated -target x86_64-fuchsia -ldriver -lfdio -lzircon --sysroot /syzkaller/shared/fuchsia/out/x64/zircon_toolchain/obj/zircon/public/sysroot/sysroot -I /syzkaller/shared/fuchsia/sdk/lib/fdio/include -I /syzkaller/shared/fuchsia/zircon/system/ulib/fidl/include -I /syzkaller/shared/fuchsia/src/lib/ddk/include -I /syzkaller/shared/fuchsia/out/x64/fidling/gen/sdk/fidl/fuchsia.device -I /syzkaller/shared/fuchsia/out/x64/fidling/gen/sdk/fidl/fuchsia.device.manager -I /syzkaller/shared/fuchsia/out/x64/fidling/gen/sdk/fidl/fuchsia.hardware.nand -I /syzkaller/shared/fuchsia/out/x64/fidling/gen/sdk/fidl/fuchsia.hardware.power.statecontrol -I /syzkaller/shared/fuchsia/out/x64/fidling/gen/sdk/fidl/fuchsia.hardware.usb.peripheral -I /syzkaller/shared/fuchsia/out/x64/fidling/gen/zircon/vdso/zx -L /syzkaller/shared/fuchsia/out/x64/x64-shared -O2 -pthread -Wall -Werror -Wparentheses -Wunused-const-variable -Wframe-larger-than=16384 -Wno-array-bounds -Wno-unused-command-line-argument] --- FAIL: TestGenerate/fuchsia/amd64/3 (0.41s) csource_test.go:148: --- FAIL: TestGenerate/fuchsia/amd64/4 (0.40s) csource_test.go:148: --- FAIL: TestGenerate/fuchsia/amd64/5 (0.43s) csource_test.go:148: --- FAIL: TestGenerate/fuchsia/amd64/1 (0.42s) csource_test.go:148: FAIL FAIL github.com/google/syzkaller/pkg/csource 28.249s ok github.com/google/syzkaller/pkg/db (cached) ok github.com/google/syzkaller/pkg/email (cached) ok github.com/google/syzkaller/pkg/email/lore (cached) ok github.com/google/syzkaller/pkg/host 29.834s ok github.com/google/syzkaller/pkg/html (cached) ok github.com/google/syzkaller/pkg/ifuzz (cached) ok github.com/google/syzkaller/pkg/image (cached) ok github.com/google/syzkaller/pkg/instance 5.284s ok github.com/google/syzkaller/pkg/ipc 29.854s ok github.com/google/syzkaller/pkg/kconfig (cached) ok github.com/google/syzkaller/pkg/kd (cached) ok github.com/google/syzkaller/pkg/log (cached) ok github.com/google/syzkaller/pkg/mgrconfig 7.290s ok github.com/google/syzkaller/pkg/osutil (cached) ok github.com/google/syzkaller/pkg/report 19.958s ok github.com/google/syzkaller/pkg/repro 8.056s ok github.com/google/syzkaller/pkg/runtest 92.424s ok github.com/google/syzkaller/pkg/serializer (cached) ok github.com/google/syzkaller/pkg/stats (cached) ok github.com/google/syzkaller/pkg/subsystem (cached) ok github.com/google/syzkaller/pkg/subsystem/linux 0.074s ok github.com/google/syzkaller/pkg/subsystem/lists 0.687s ok github.com/google/syzkaller/pkg/symbolizer (cached) ok github.com/google/syzkaller/pkg/tool (cached) ok github.com/google/syzkaller/pkg/vcs (cached) ok github.com/google/syzkaller/prog (cached) ok github.com/google/syzkaller/prog/test (cached) ok github.com/google/syzkaller/sys/linux (cached) ok github.com/google/syzkaller/sys/netbsd (cached) ok github.com/google/syzkaller/sys/openbsd (cached) ok github.com/google/syzkaller/syz-ci 6.469s ok github.com/google/syzkaller/syz-fuzzer 0.603s ok github.com/google/syzkaller/syz-hub 0.043s ok github.com/google/syzkaller/syz-hub/state 1.148s ok github.com/google/syzkaller/syz-manager 6.524s ok github.com/google/syzkaller/syz-verifier 6.142s ok github.com/google/syzkaller/tools/syz-kconf (cached) ok github.com/google/syzkaller/tools/syz-linter (cached) ok github.com/google/syzkaller/tools/syz-trace2syz/parser (cached) ok github.com/google/syzkaller/tools/syz-trace2syz/proggen (cached) ok github.com/google/syzkaller/vm 11.065s ok github.com/google/syzkaller/vm/isolated 3.089s ok github.com/google/syzkaller/vm/proxyapp 6.122s ok github.com/google/syzkaller/vm/vmimpl 3.100s FAIL