? github.com/google/syzkaller/dashboard/dashapi [no test files] ok github.com/google/syzkaller/dashboard/app 0.605s ? github.com/google/syzkaller/pkg/debugtracer [no test files] ? github.com/google/syzkaller/pkg/gcs [no test files] ? github.com/google/syzkaller/pkg/hash [no test files] ? 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/stats/syzbotstats [no test files] ? github.com/google/syzkaller/pkg/testutil [no test files] ? github.com/google/syzkaller/pkg/tools [no test files] ok github.com/google/syzkaller/executor 23.710s ok github.com/google/syzkaller/pkg/asset 0.694s ok github.com/google/syzkaller/pkg/ast 1.286s ok github.com/google/syzkaller/pkg/auth (cached) ok github.com/google/syzkaller/pkg/bisect 186.276s ok github.com/google/syzkaller/pkg/bisect/minimize 0.174s ok github.com/google/syzkaller/pkg/build (cached) ok github.com/google/syzkaller/pkg/compiler 22.005s ok github.com/google/syzkaller/pkg/config (cached) ok github.com/google/syzkaller/pkg/corpus 1.430s ok github.com/google/syzkaller/pkg/cover 0.337s ok github.com/google/syzkaller/pkg/cover/backend (cached) --- FAIL: TestGenerate (36.15s) --- FAIL: TestGenerate/test/64 (0.01s) testutil.go:33: seed=1712141405956788048 testutil.go:33: seed=1712141405964975039 --- FAIL: TestGenerate/test/64/6 (1.15s) 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: breaks_returns() (fail_nth: 1) breaks_returns() (async) test$end0(&(0x7f0000000000)={0x20, 0x8, 0x7, 0x7fffffff}) (rerun: 4) test$length9(&(0x7f0000000040)={&(0x7f0000ffe000/0x2000)=nil, 0x2000}) test$recur1(&(0x7f0000001280)={&(0x7f0000001240)={&(0x7f0000000600)={0x0, &(0x7f00000005c0)={&(0x7f0000000080), 0x0, &(0x7f0000000180)={&(0x7f00000000c0), &(0x7f0000000100), &(0x7f0000000140)}, &(0x7f00000002c0)={&(0x7f00000001c0), &(0x7f0000000200), &(0x7f0000000240), &(0x7f0000000280)}, 0x0, &(0x7f0000000580)={&(0x7f0000000300), 0x0, &(0x7f0000000400)={&(0x7f0000000340), &(0x7f0000000380), 0x0, &(0x7f00000003c0)}, &(0x7f0000000540)={&(0x7f0000000440), &(0x7f0000000480), &(0x7f00000004c0), &(0x7f0000000500)}}}}, &(0x7f0000001200)={&(0x7f0000000680)={&(0x7f0000000640)}, &(0x7f00000009c0)={0x0, &(0x7f0000000980)={&(0x7f0000000700)={&(0x7f00000006c0)}, 0x0, &(0x7f0000000840)={&(0x7f0000000740), &(0x7f0000000780), &(0x7f00000007c0), &(0x7f0000000800)}, &(0x7f0000000940)={&(0x7f0000000880), &(0x7f00000008c0), &(0x7f0000000900)}}}, &(0x7f0000000ac0)={&(0x7f0000000a00), 0x0, &(0x7f0000000a40), &(0x7f0000000a80)}, &(0x7f0000000bc0)={&(0x7f0000000b00), 0x0, &(0x7f0000000b40), &(0x7f0000000b80)}, &(0x7f0000000e80)={0x0, &(0x7f0000000c00), &(0x7f0000000d40)={&(0x7f0000000c40), &(0x7f0000000c80), &(0x7f0000000cc0), &(0x7f0000000d00)}, &(0x7f0000000e40)={&(0x7f0000000d80), &(0x7f0000000dc0), &(0x7f0000000e00)}}, &(0x7f00000011c0)={&(0x7f0000000f00)={&(0x7f0000000ec0)}, &(0x7f0000000f40), &(0x7f0000001040)={&(0x7f0000000f80), &(0x7f0000000fc0), 0x0, &(0x7f0000001000)}, &(0x7f0000001180)={&(0x7f0000001080), &(0x7f00000010c0), &(0x7f0000001100), &(0x7f0000001140)}}}}}) foo$anyres(&(0x7f00000012c0), &(0x7f0000001300), &(0x7f0000001340)) breaks_returns() test$length10(&(0x7f0000ffe000/0x1000)=nil, 0x1000, 0x1000, 0x800, 0x400) serialize2(&(0x7f0000001380)="b3eb980b12af03684832ff0d1367b05ded250f350bffb9c67243a4a26cac6a5664ba93ce0c5ffca81d81c8a8a18416566c33d00a999baf45ad351740795a1a3a7f59abe59ac218f6e204dc1329f158d36e4d0c86200e4d8b5dbda275d20e5315c52e12895663d7e5f4ad1f0d1a8ac3014eb4603f30445a975d0a77feec81e4e99bd71acad646cb04b60819e8ec24a8a2db3909688bb284162872bc715c3ef9863a13d60f4e3acd6954f1ff268eee5cbe35465b4e65c60dbf3da35689af39d3dc0d9d2226406147feccad22fd6d9255a8b92178c6afa7aa2decd0ae46ec45c9bbf6e53fead2d682d715175ba608f84ba14d9a28c5e47ebd829a76bca0c2821b0e29915a2889e001a201524fcf6245adcf4d326d69176d7fa27ed8d593e25eef7afaa1479e506348f0a6753697034b9c609f465146f9569ddd56aff7fc2fadefb89fa2d2d4b838e7d63200097b77ed52d9c31c98fd76f9467ff5116ca00f85846a91bef69419aac6ebc7ddfba2b268bfe262f6f55d52a647af8a0b45391ba9df09e25664019b4107a231ee761a81960c1198f5209e3c3707d768b8d099eee563055a88c3049f5addf8747a2dfd6f3b43c5c25df50c8a4b77872a8d8905dfa0885adddb8fd49e29735262b1c94ea59ce0cea5a061fbb042c7e301e29212f2f1476e7c25317cb5fa81774d78b20efea377d4fbfdb190cc1fd58f568e6ac19be05d99c8362428f59f47311abf178f6b083645ccf013624a418b8d9fecfa26f7dcba32b4395449c0d1ef6fa37f33fa5ea60192bb5ce92e458d90cedf0e85787811c64bd0436f4c5ca01facae7b793d696442982841f6e83f603d5806742a4ec7acb406c55b27aaad7a628eb2f41f8007c0e3728fa1f40194d271392f6c7f684e1dbe239cf6c501bd4f4f643153b4e7bd32ff4b3db361fe9c4a87b4d7492eef749bd18c6a44daba60542deadc45cbfa8a46b8d252670ee312ede53bb516f0000cc25009f4d4e74c6f61306c344a9ba48fa2a2d70f3e1ac018f9c0d15ddaafb5cf89867ca6bf6b37427c477eec1acb7f369b9422a8858ebc2f3a10a9e90aea0f4df82ab2e8d10dffcb99892a8155b4f8aff79e93df24848aef035e85d57048c7c93fe544e3ef1754c49240573ac1ea67b94d8574542dff03f06bfedc3f51c620402861f777fa47bc05c865a6e63ab48e70c4b314e6f80953cb1a22b9226a1b3cc084736b2a826a7fc841023eaa56448d94757b013833c53e182c1de066878701def73bdd13d7404565dcc317ae650383b3ea7d5e6aed3dbf575a2ca5132850e394adeb9fee108719378320b9b4e0c5a6ddc77594a8024151b3a6d322fb48e5db7f0fb04a9149fb278ed9d8ad19b1b8a268cba4b300e93139f2b611bb777983b74d6fac852d743fb5011f9bf2bfd3f4314cdc9b1e71c65ea76e4953af36bcb4b9649aa0eeaa6c892e170d3285241708594a91bdec0fdedd974b4220b4b70a5a939938527c6e6ef823b36256c1369fbeed64a90e8be545eac8968c764139ccd4dc5901bc019985aab5fe71e24c55f260c4c4b7fd5cf5288b13dcda57bb3450fb4f6ece5e7c4a0a21fff3124c3c783afa8744f6ca3f5c3de5b4c154cea12ba47c3c694ea8303a8d7c8510089cc1609a82e6a7e089f63afd0585d3f5aba22634dd7c9579364da1d93a995f7706da208d65b948d74613e0e4f8c77974db272edf2f8d5291cd3af0d0adeecc163585161bc8ec9b62823feb864a8ffa00120719981907c027ef41a9c5ebef88411b420e2c6041e94dbae9388f72db0089d4733cedc368cd1d6805634c80bffb9c3430f402b73fff1d6cf355b9509c1bfd48e79b1417141c9b9ab1c0f62a4cf97bae55fe53afea353c1061bb882e101d7434b39be6558e77ea26b44b507c2c44dd0a625c044b0a78ee2364862842d9ef0f1bcb563f01adbdee69e52d022856ad6504d811e849ab470d613da0ce951003529822adc102c4c62a3aad2f7392aa4601ab0863150c358aeec2fc5e3a906df00fe5db1226bac20f08d701f181b90a4d389b91dddbc24e40488e1c46ab2d05b4823029453cc9253ebc4370964a64c1087cb3857d736dc303ce93066db60fc61be9f79c0c9e1ca7e4d73f95172bcbaf6cbd18c06d1c1cccf23d85592ee6844349b5e72e6a5e10f5eed5eca8f9c0a8a95e214389530194a03043b21108a49e3466cebe3078dadd364faf67fe3c51e1df75f4aa619854b780e0c04e9a9bf2301c030a3626ce820afc59e1c13ed6fa3e3030b966f3878f17a16a1209987aa9f7eb76988d401f10bdb0a419ddced1105659e6219440e35e984c3e7ada78c30a9a7399ce1abce36c7ce3e39a89cfac98f249735914cfc16baf666ed4b51ff2193c2836bd43e5d537f2653646f05c8109ef8edfd35b3acd73eb7e790c64cc2a7c9596e4a5f3d0e2d92b301c9ec5d82768ab211801bea96340c30e1b09fc9fae7cff2615d61ede29f9b0d712abffcd93ea3b20ceb7aa57368e84c3876ecd7a931cb19ea517603ef44a98b246288b27336980e4bb509007bcd01858cd35e9cd8df288221d3a487268828fe732fd7da2e2b6926b4a9b54d54b41c77998d1ef538487e1dcdf87fcc3fab25c77a7cf01f86087e2b95e1e4d45522fc3f44a14cbfacd48d63eba042ca3e14af8e5bed3186de4fb69f387aac88242d64fbdcd110c338821ad72562f092f55fa73b5e7d92c9b6fee5794ef4823190f9257b11ff4fc4457dba90fbda80dafb517fa27519489016f6f458006401f9fea20426a545aab7784c4e3df9dfa9fb279cf21a86ce3f292cf52d343fce97e05b92c84723d7ddc65a7bc79ae73b1246b6b65048a3855b62b1340264627c1df82f3352f3ac6d5a75e0823572c2fb392bd7ef15193cc5f6fbefc4d27ffd741a93d1ab799d9fbd545d2d2606e3566eb79d54485f5561510a57f17f2b3909ed1bfc5e5d64692b6c503eb58f17cae554137607467e8ab51d867067f50374e99f74869e0177f4eb52c2930dfe5ca2b6e454db8a36225b2c936bdc5bb75f1355ffd8d7fa476eb282871e52111832fcfc246da415c200d9e6c350f49846a0022660191a2840d7a53753674c78ea00a5b9e266ff29b1a8fb193e132d23f960cd9c8249b943fcdb865395b2c03ab675bbb1993813fb0a8d1e68331297c88db1dca00313b8211121b6023475cb69d6ac66c1116a56171350f680cc74c88fe9905ed078780e6d71bcc735fee75a9444f695d036aa6b4b9e59b6680b6312967f8b236ff8bee60316a70cba0312c993b92e30ca4cb118c1745e7b578c0ad6c3a7d8187372595dd160893115f11b054fc1718c967bdafe9bf95ad583db59396d594114b6500996eeff82b70191e52fa2330efdc66fa363cb379c9c67740535c9960ca857cfe4d0a88bbbbf2e7b2034bb843980f6fa86ff602335d1e25a613c7d7a4ef7a6b161c2582239aa56f5c8994d06646e0aa62c48b54e0852223772ed44e7059697aec6bc2225e0edac55fdbff1a16d4c6def4c77ddf38b2773952c811ff145ae366e216c41600659ff78f64b19e354d74f90a61907c85c702394fe2cca4f5feb5b53530b5f4c9e72f5c090ca464a7a9c395143735fdd2421d07e8efe4198ad06f9d230a91d5fb50efc02c2db6ed4ad750319e3e672f5213ddae92c3fcec0ed5dff522d0cab89bb8253254255529b32cf5385c9001421b92cc67163cc395235e408a463fa31eefd0742de5139bba2dc141fff7be175f418cf7cf89dd4f474a2fc61d0f3851f34d52c49bbd1226bd08963071f5d4918f7e12d0028d321b3d6bd436e02f6e55cc48c613e329916cb8545244bba377908d6bcfeb7ed66208e507b4dfd8f2cba5a3d42f3a4e4da80eba199cc8aec8a40f254710d811832496750c4b34c36b746bf3cb60dae81e73da952ee41c2a402372e5239fd2d407d8e91b9e57b4758aace59df7d83d38ad17716cae509ddb2427cbcf847a7b108edb4b3a708171e731a97702b6377c7934ec9b4c7446ea031e62bb39a6e2d320eaa8b5910b14d8826c204f7a4ab236240b486066b27be7f69b8442ffc803c4ed7fdd23ef2fa0337db842681c0f8ef2badcc08113fe8061ab31faf989ba55512a5f0e7b936d63c0cced58ef82cf0c2d29fb2318e12b56d4912e9c4f96db02ca8449294da33f8fce5507d3eb99239072e2b2e12e3355353bf490182eeb7aa103c977c06701caa0b74455116689b9dbe90ad1d18539d5e41ada0f2f7f1e6c9aa67aa2aa416f849f18c6fbd22dcbe03af78b15ceddda0d1bbbdd3362769f50e98680fce54b7e84a94f324666a6967fc80f2e5e9ca94f617f01163a1601c62219fcb5678266e1c618ca8947e74a2ade5e40daeb8df5620f365f66aeae88afb42d70ce4145ebafa758accc19e278bc9f45da63859c46ebdf7f0ee2e3fd9dd5414deb8607d7ec556568301d2650780be7f75fcdf92441cb98f23648b5ed3f3a5e2c96daaac1da0ce46e1d85b5c2cff4d9a9167d5815fcc66bbd945f0b55874195acbbbfecf80f26b70a4cf662f955ea4e01351faa9f5300cf35c72ae60915062ceff7891e7677519196bf813333361dbbeecfe8dc127a94c20b9faf036d71a816b1ab72e82019d0699b012a126022cc703136638dc8674905b4100e9b8d62abdeb13c84be300b49ae44fcea4b892fbf6564cdb012699e9fd1c964f2a9d7f312656b47e6916682b0044157f4e2dfb9d5f55d68495d763c807d8ec6932e560c913ab76fc3ff820202ae44facbda1aa153108f168e421bdb1a93c382edf08cc79c5b711ae13c6eb8e54393f4998ec99a95ae7f85999e78439ba603445545f21ffc856207eea9455fb14c0ad967f22cf0f572dba5cac7450e4e52ce713ce871fc76d7adca01260ea708da434001805bcfd1f3ccd1c6084d5ec2a29f00e77aa4f91dee13eeb5fcce8e82a103b37f6c4f2525951eaad449a08a75d2f341f17b2cbdf1730d192ef758a6e8f883d88c07f2ef41b443daa795000244263d2d30c762f6fecf3bb67f8dda6ca7d9d40a18e18626853c5094ef66ed64617ee9388c037a74a961692d4470796a683f880eb9041060acee4e7618b717a057951e1c662362fd26709bd80af39fe5c11f9654c2655b21edcc32428491dc5c101e6a222d2e51b9f23d960f12748d9a5fc3e2f6c953972347656a9f787ee5bd196445aa2eaf8f8fbdafaa34ed1b055a09b3718d8b3c8f1cfe5ac53cf37c9fa76fe7ac7087157bdba523e2a9e710b3f5b5a7ff9b8b1f612d9bbbb1104f9d6df98787e92523fe1d30101edf53d89df4a3c42bd3bd2737f3afe0154ee1e8d93d9a2775d84c686dac8984512cf9559623ac6fe4ef79f7b34b21969a8a8a7243f41e11a58de3e4e18f3385ee7003c79fa527b94e72338f2a1c4c45ff045a611fe1db3cdda0fef121f78c527534dab266dd3ff6f73d6b6bc03998309830510a57eb0e2d74de38112775b8775d99c15e38d0e709f397492fc6462f6e57a7ff65d25be9eb7530a5ef4fc807ff9e09b701b59d250b541a546db75d111f560a47217c122c6b2928d5a0a047a988b3ac5131df0096c15bbc398d0e6965841b17f491635885d8987a04bbe2482157b5ca883c767ea156b4e1784ba1b7cfeb343a71eb03ebce88792aed8b18e7fd880cd5934cbe55523c1b7c82b3ed99b3de90a479f251e1904ac86f28021957ef35421d3c8a2d39eee7314e3f3f945ea2fb5ff7f6c09ba472ff3e562c6168b0c1f843658bb180ebfcf954e58e633fb1612751bf360b15fe67ca594f5aae34233a3b58eeba562fad63") test$length10(&(0x7f0000fff000/0x1000)=nil, 0x1000, 0x1000, 0x800, 0x400) syz_compare(&(0x7f0000000000)='\'/+,\x00', 0x5, &(0x7f0000000040)=@bf5={0x1c, {0x1, 0x3}}, 0x8) syz_compare_int$2(0x2, 0xffff, 0x100) syz_errno(0xfffffff9) syz_execute_func(&(0x7f0000000080)="feaa0e278d403f03c2bf80488676754e435032f81eee19ffa3f48ca758e82b077289834eb79be67b6cf437e2d9b101f397d7") syz_exit(0xffffffc0) syz_mmap(&(0x7f0000ffc000/0x1000)=nil, 0x1000) syz_sleep_ms(0x1) syz_test_fuzzer1(0xd, 0xc, 0xb) 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 #ifndef SYS_breaks_returns #define SYS_breaks_returns 0 #endif #ifndef SYS_foo #define SYS_foo 0 #endif #ifndef SYS_serialize2 #define SYS_serialize2 0 #endif #ifndef SYS_test #define SYS_test 0 #endif 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[] = "./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 { pthread_mutex_t mu; pthread_cond_t cv; int state; } event_t; static void event_init(event_t* ev) { if (pthread_mutex_init(&ev->mu, 0)) exit(1); if (pthread_cond_init(&ev->cv, 0)) exit(1); ev->state = 0; } static void event_reset(event_t* ev) { ev->state = 0; } static void event_set(event_t* ev) { pthread_mutex_lock(&ev->mu); if (ev->state) exit(1); ev->state = 1; pthread_mutex_unlock(&ev->mu); pthread_cond_broadcast(&ev->cv); } static void event_wait(event_t* ev) { pthread_mutex_lock(&ev->mu); while (!ev->state) pthread_cond_wait(&ev->cv, &ev->mu); pthread_mutex_unlock(&ev->mu); } static int event_isset(event_t* ev) { pthread_mutex_lock(&ev->mu); int res = ev->state; pthread_mutex_unlock(&ev->mu); return res; } static int event_timedwait(event_t* ev, uint64_t timeout) { uint64_t start = current_time_ms(); uint64_t now = start; pthread_mutex_lock(&ev->mu); for (;;) { if (ev->state) break; uint64_t remain = timeout - (now - start); struct timespec ts; ts.tv_sec = remain / 1000; ts.tv_nsec = (remain % 1000) * 1000 * 1000; pthread_cond_timedwait(&ev->cv, &ev->mu, &ts); now = current_time_ms(); if (now - start > timeout) break; } int res = ev->state; pthread_mutex_unlock(&ev->mu); return res; } #define BITMASK(bf_off,bf_len) (((1ull << (bf_len)) - 1) << (bf_off)) #define STORE_BY_BITMASK(type,htobe,addr,val,bf_off,bf_len) *(type*)(addr) = htobe((htobe(*(type*)(addr)) & ~BITMASK((bf_off), (bf_len))) | (((type)(val) << (bf_off)) & BITMASK((bf_off), (bf_len)))) static long syz_mmap(volatile long a0, volatile long a1) { return (long)mmap((void*)a0, a1, PROT_READ | PROT_WRITE, MAP_ANON | MAP_PRIVATE | MAP_FIXED, -1, 0); } static long syz_errno(volatile long v) { errno = v; return v == 0 ? 0 : -1; } static long syz_exit(volatile long status) { _exit(status); return 0; } static long syz_sleep_ms(volatile long ms) { sleep_ms(ms); return 0; } static long syz_compare(volatile long want, volatile long want_len, volatile long got, volatile long got_len) { if (want_len != got_len) { errno = EBADF; goto error; } if (memcmp((void*)want, (void*)got, want_len)) { errno = EINVAL; goto error; } return 0; error: return -1; } static long syz_compare_int(volatile long n, ...) { va_list args; va_start(args, n); long v0 = va_arg(args, long); long v1 = va_arg(args, long); long v2 = va_arg(args, long); long v3 = va_arg(args, long); va_end(args); if (n < 2 || n > 4) return errno = E2BIG, -1; if (n <= 2 && v2 != 0) return errno = EFAULT, -1; if (n <= 3 && v3 != 0) return errno = EFAULT, -1; if (v0 != v1) return errno = EINVAL, -1; if (n > 2 && v0 != v2) return errno = EINVAL, -1; if (n > 3 && v0 != v3) return errno = EINVAL, -1; return 0; } static void loop(); static int do_sandbox_none(void) { loop(); return 0; } static void fake_crash(const char* name) { exit(1); exit(1); } static long syz_test_fuzzer1(volatile long a, volatile long b, volatile long c) { if (a == 1 && b == 1 && c == 1) fake_crash("first bug"); if (a == 1 && b == 2 && c == 3) fake_crash("second bug"); return 0; } 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 < 18; 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(); } void execute_call(int call) { switch (call) { case 0: inject_fault(1); syscall(SYS_breaks_returns); break; case 1: syscall(SYS_breaks_returns); break; case 2: *(uint8_t*)0x20000000 = 0x20; *(uint16_t*)0x20000001 = htobe16(8); *(uint32_t*)0x20000003 = htobe32(7); *(uint64_t*)0x20000007 = htobe64(0x7fffffff); syscall(SYS_test, /*a0=*/0x20000000ul, 0, 0, 0, 0, 0); { int i; for(i = 0; i < 4; i++) { syscall(SYS_test, /*a0=*/0x20000000ul, 0, 0, 0, 0, 0); } } break; case 3: *(uint64_t*)0x20000040 = 0x20ffe000; *(uint64_t*)0x20000048 = 0x2000; syscall(SYS_test, /*a0=*/0x20000040ul, 0, 0, 0, 0, 0); break; case 4: *(uint64_t*)0x20001280 = 0x20001240; *(uint64_t*)0x20001240 = 0x20000600; *(uint64_t*)0x20000600 = 0; *(uint64_t*)0x20000608 = 0x200005c0; *(uint64_t*)0x200005c0 = 0x20000080; *(uint64_t*)0x20000080 = 0; *(uint64_t*)0x200005c8 = 0; *(uint64_t*)0x200005d0 = 0x20000180; *(uint64_t*)0x20000180 = 0x200000c0; *(uint64_t*)0x200000c0 = 0; *(uint64_t*)0x200000c8 = 0; *(uint64_t*)0x200000d0 = 0; *(uint64_t*)0x200000d8 = 0; *(uint64_t*)0x20000188 = 0x20000100; *(uint64_t*)0x20000100 = 0; *(uint64_t*)0x20000108 = 0; *(uint64_t*)0x20000110 = 0; *(uint64_t*)0x20000118 = 0; *(uint64_t*)0x20000190 = 0x20000140; *(uint64_t*)0x20000140 = 0; *(uint64_t*)0x20000148 = 0; *(uint64_t*)0x20000150 = 0; *(uint64_t*)0x20000158 = 0; *(uint64_t*)0x20000198 = 0; *(uint64_t*)0x200005d8 = 0x200002c0; *(uint64_t*)0x200002c0 = 0x200001c0; *(uint64_t*)0x200001c0 = 0; *(uint64_t*)0x200001c8 = 0; *(uint64_t*)0x200001d0 = 0; *(uint64_t*)0x200001d8 = 0; *(uint64_t*)0x200002c8 = 0x20000200; *(uint64_t*)0x20000200 = 0; *(uint64_t*)0x20000208 = 0; *(uint64_t*)0x20000210 = 0; *(uint64_t*)0x20000218 = 0; *(uint64_t*)0x200002d0 = 0x20000240; *(uint64_t*)0x20000240 = 0; *(uint64_t*)0x20000248 = 0; *(uint64_t*)0x20000250 = 0; *(uint64_t*)0x20000258 = 0; *(uint64_t*)0x200002d8 = 0x20000280; *(uint64_t*)0x20000280 = 0; *(uint64_t*)0x20000288 = 0; *(uint64_t*)0x20000290 = 0; *(uint64_t*)0x20000298 = 0; *(uint64_t*)0x200005e0 = 0; *(uint64_t*)0x200005e8 = 0x20000580; *(uint64_t*)0x20000580 = 0x20000300; *(uint64_t*)0x20000300 = 0; *(uint64_t*)0x20000588 = 0; *(uint64_t*)0x20000590 = 0x20000400; *(uint64_t*)0x20000400 = 0x20000340; *(uint64_t*)0x20000340 = 0; *(uint64_t*)0x20000348 = 0; *(uint64_t*)0x20000350 = 0; *(uint64_t*)0x20000358 = 0; *(uint64_t*)0x20000408 = 0x20000380; *(uint64_t*)0x20000380 = 0; *(uint64_t*)0x20000388 = 0; *(uint64_t*)0x20000390 = 0; *(uint64_t*)0x20000398 = 0; *(uint64_t*)0x20000410 = 0; *(uint64_t*)0x20000418 = 0x200003c0; *(uint64_t*)0x200003c0 = 0; *(uint64_t*)0x200003c8 = 0; *(uint64_t*)0x200003d0 = 0; *(uint64_t*)0x200003d8 = 0; *(uint64_t*)0x20000598 = 0x20000540; *(uint64_t*)0x20000540 = 0x20000440; *(uint64_t*)0x20000440 = 0; *(uint64_t*)0x20000448 = 0; *(uint64_t*)0x20000450 = 0; *(uint64_t*)0x20000458 = 0; *(uint64_t*)0x20000548 = 0x20000480; *(uint64_t*)0x20000480 = 0; *(uint64_t*)0x20000488 = 0; *(uint64_t*)0x20000490 = 0; *(uint64_t*)0x20000498 = 0; *(uint64_t*)0x20000550 = 0x200004c0; *(uint64_t*)0x200004c0 = 0; *(uint64_t*)0x200004c8 = 0; *(uint64_t*)0x200004d0 = 0; *(uint64_t*)0x200004d8 = 0; *(uint64_t*)0x20000558 = 0x20000500; *(uint64_t*)0x20000500 = 0; *(uint64_t*)0x20000508 = 0; *(uint64_t*)0x20000510 = 0; *(uint64_t*)0x20000518 = 0; *(uint64_t*)0x200005a0 = 0; *(uint64_t*)0x200005a8 = 0; *(uint64_t*)0x20001248 = 0x20001200; *(uint64_t*)0x20001200 = 0x20000680; *(uint64_t*)0x20000680 = 0x20000640; *(uint64_t*)0x20000640 = 0; *(uint64_t*)0x20001208 = 0x200009c0; *(uint64_t*)0x200009c0 = 0; *(uint64_t*)0x200009c8 = 0x20000980; *(uint64_t*)0x20000980 = 0x20000700; *(uint64_t*)0x20000700 = 0x200006c0; *(uint64_t*)0x200006c0 = 0; *(uint64_t*)0x20000988 = 0; *(uint64_t*)0x20000990 = 0x20000840; *(uint64_t*)0x20000840 = 0x20000740; *(uint64_t*)0x20000740 = 0; *(uint64_t*)0x20000748 = 0; *(uint64_t*)0x20000750 = 0; *(uint64_t*)0x20000758 = 0; *(uint64_t*)0x20000848 = 0x20000780; *(uint64_t*)0x20000780 = 0; *(uint64_t*)0x20000788 = 0; *(uint64_t*)0x20000790 = 0; *(uint64_t*)0x20000798 = 0; *(uint64_t*)0x20000850 = 0x200007c0; *(uint64_t*)0x200007c0 = 0; *(uint64_t*)0x200007c8 = 0; *(uint64_t*)0x200007d0 = 0; *(uint64_t*)0x200007d8 = 0; *(uint64_t*)0x20000858 = 0x20000800; *(uint64_t*)0x20000800 = 0; *(uint64_t*)0x20000808 = 0; *(uint64_t*)0x20000810 = 0; *(uint64_t*)0x20000818 = 0; *(uint64_t*)0x20000998 = 0x20000940; *(uint64_t*)0x20000940 = 0x20000880; *(uint64_t*)0x20000880 = 0; *(uint64_t*)0x20000888 = 0; *(uint64_t*)0x20000890 = 0; *(uint64_t*)0x20000898 = 0; *(uint64_t*)0x20000948 = 0x200008c0; *(uint64_t*)0x200008c0 = 0; *(uint64_t*)0x200008c8 = 0; *(uint64_t*)0x200008d0 = 0; *(uint64_t*)0x200008d8 = 0; *(uint64_t*)0x20000950 = 0x20000900; *(uint64_t*)0x20000900 = 0; *(uint64_t*)0x20000908 = 0; *(uint64_t*)0x20000910 = 0; *(uint64_t*)0x20000918 = 0; *(uint64_t*)0x20000958 = 0; *(uint64_t*)0x200009a0 = 0; *(uint64_t*)0x200009a8 = 0; *(uint64_t*)0x20001210 = 0x20000ac0; *(uint64_t*)0x20000ac0 = 0x20000a00; *(uint64_t*)0x20000a00 = 0; *(uint64_t*)0x20000a08 = 0; *(uint64_t*)0x20000a10 = 0; *(uint64_t*)0x20000a18 = 0; *(uint64_t*)0x20000ac8 = 0; *(uint64_t*)0x20000ad0 = 0x20000a40; *(uint64_t*)0x20000a40 = 0; *(uint64_t*)0x20000a48 = 0; *(uint64_t*)0x20000a50 = 0; *(uint64_t*)0x20000a58 = 0; *(uint64_t*)0x20000ad8 = 0x20000a80; *(uint64_t*)0x20000a80 = 0; *(uint64_t*)0x20000a88 = 0; *(uint64_t*)0x20000a90 = 0; *(uint64_t*)0x20000a98 = 0; *(uint64_t*)0x20001218 = 0x20000bc0; *(uint64_t*)0x20000bc0 = 0x20000b00; *(uint64_t*)0x20000b00 = 0; *(uint64_t*)0x20000b08 = 0; *(uint64_t*)0x20000b10 = 0; *(uint64_t*)0x20000b18 = 0; *(uint64_t*)0x20000bc8 = 0; *(uint64_t*)0x20000bd0 = 0x20000b40; *(uint64_t*)0x20000b40 = 0; *(uint64_t*)0x20000b48 = 0; *(uint64_t*)0x20000b50 = 0; *(uint64_t*)0x20000b58 = 0; *(uint64_t*)0x20000bd8 = 0x20000b80; *(uint64_t*)0x20000b80 = 0; *(uint64_t*)0x20000b88 = 0; *(uint64_t*)0x20000b90 = 0; *(uint64_t*)0x20000b98 = 0; *(uint64_t*)0x20001220 = 0x20000e80; *(uint64_t*)0x20000e80 = 0; *(uint64_t*)0x20000e88 = 0x20000c00; *(uint64_t*)0x20000c00 = 0; *(uint64_t*)0x20000c08 = 0; *(uint64_t*)0x20000e90 = 0x20000d40; *(uint64_t*)0x20000d40 = 0x20000c40; *(uint64_t*)0x20000c40 = 0; *(uint64_t*)0x20000c48 = 0; *(uint64_t*)0x20000c50 = 0; *(uint64_t*)0x20000c58 = 0; *(uint64_t*)0x20000d48 = 0x20000c80; *(uint64_t*)0x20000c80 = 0; *(uint64_t*)0x20000c88 = 0; *(uint64_t*)0x20000c90 = 0; *(uint64_t*)0x20000c98 = 0; *(uint64_t*)0x20000d50 = 0x20000cc0; *(uint64_t*)0x20000cc0 = 0; *(uint64_t*)0x20000cc8 = 0; *(uint64_t*)0x20000cd0 = 0; *(uint64_t*)0x20000cd8 = 0; *(uint64_t*)0x20000d58 = 0x20000d00; *(uint64_t*)0x20000d00 = 0; *(uint64_t*)0x20000d08 = 0; *(uint64_t*)0x20000d10 = 0; *(uint64_t*)0x20000d18 = 0; *(uint64_t*)0x20000e98 = 0x20000e40; *(uint64_t*)0x20000e40 = 0x20000d80; *(uint64_t*)0x20000d80 = 0; *(uint64_t*)0x20000d88 = 0; *(uint64_t*)0x20000d90 = 0; *(uint64_t*)0x20000d98 = 0; *(uint64_t*)0x20000e48 = 0x20000dc0; *(uint64_t*)0x20000dc0 = 0; *(uint64_t*)0x20000dc8 = 0; *(uint64_t*)0x20000dd0 = 0; *(uint64_t*)0x20000dd8 = 0; *(uint64_t*)0x20000e50 = 0x20000e00; *(uint64_t*)0x20000e00 = 0; *(uint64_t*)0x20000e08 = 0; *(uint64_t*)0x20000e10 = 0; *(uint64_t*)0x20000e18 = 0; *(uint64_t*)0x20000e58 = 0; *(uint64_t*)0x20000ea0 = 0; *(uint64_t*)0x20000ea8 = 0; *(uint64_t*)0x20001228 = 0x200011c0; *(uint64_t*)0x200011c0 = 0x20000f00; *(uint64_t*)0x20000f00 = 0x20000ec0; *(uint64_t*)0x20000ec0 = 0; *(uint64_t*)0x200011c8 = 0x20000f40; *(uint64_t*)0x20000f40 = 0; *(uint64_t*)0x20000f48 = 0; *(uint64_t*)0x200011d0 = 0x20001040; *(uint64_t*)0x20001040 = 0x20000f80; *(uint64_t*)0x20000f80 = 0; *(uint64_t*)0x20000f88 = 0; *(uint64_t*)0x20000f90 = 0; *(uint64_t*)0x20000f98 = 0; *(uint64_t*)0x20001048 = 0x20000fc0; *(uint64_t*)0x20000fc0 = 0; *(uint64_t*)0x20000fc8 = 0; *(uint64_t*)0x20000fd0 = 0; *(uint64_t*)0x20000fd8 = 0; *(uint64_t*)0x20001050 = 0; *(uint64_t*)0x20001058 = 0x20001000; *(uint64_t*)0x20001000 = 0; *(uint64_t*)0x20001008 = 0; *(uint64_t*)0x20001010 = 0; *(uint64_t*)0x20001018 = 0; *(uint64_t*)0x200011d8 = 0x20001180; *(uint64_t*)0x20001180 = 0x20001080; *(uint64_t*)0x20001080 = 0; *(uint64_t*)0x20001088 = 0; *(uint64_t*)0x20001090 = 0; *(uint64_t*)0x20001098 = 0; *(uint64_t*)0x20001188 = 0x200010c0; *(uint64_t*)0x200010c0 = 0; *(uint64_t*)0x200010c8 = 0; *(uint64_t*)0x200010d0 = 0; *(uint64_t*)0x200010d8 = 0; *(uint64_t*)0x20001190 = 0x20001100; *(uint64_t*)0x20001100 = 0; *(uint64_t*)0x20001108 = 0; *(uint64_t*)0x20001110 = 0; *(uint64_t*)0x20001118 = 0; *(uint64_t*)0x20001198 = 0x20001140; *(uint64_t*)0x20001140 = 0; *(uint64_t*)0x20001148 = 0; *(uint64_t*)0x20001150 = 0; *(uint64_t*)0x20001158 = 0; *(uint64_t*)0x200011e0 = 0; *(uint64_t*)0x200011e8 = 0; *(uint64_t*)0x20001288 = 0; syscall(SYS_test, /*a0=*/0x20001280ul, 0, 0, 0, 0, 0); break; case 5: syscall(SYS_foo, /*a0=*/0x200012c0ul, /*a1=*/0x20001300ul, /*a2=*/0x20001340ul); break; case 6: syscall(SYS_breaks_returns); break; case 7: syscall(SYS_test, /*a0=*/0x20ffe000ul, /*a1=*/0, /*a2=*/0x1000, /*a3=*/0x800, /*a4=*/0x400ul, 0); break; case 8: memcpy((void*)0x20001380, "\xb3\xeb\x98\x0b\x12\xaf\x03\x68\x48\x32\xff\x0d\x13\x67\xb0\x5d\xed\x25\x0f\x35\x0b\xff\xb9\xc6\x72\x43\xa4\xa2\x6c\xac\x6a\x56\x64\xba\x93\xce\x0c\x5f\xfc\xa8\x1d\x81\xc8\xa8\xa1\x84\x16\x56\x6c\x33\xd0\x0a\x99\x9b\xaf\x45\xad\x35\x17\x40\x79\x5a\x1a\x3a\x7f\x59\xab\xe5\x9a\xc2\x18\xf6\xe2\x04\xdc\x13\x29\xf1\x58\xd3\x6e\x4d\x0c\x86\x20\x0e\x4d\x8b\x5d\xbd\xa2\x75\xd2\x0e\x53\x15\xc5\x2e\x12\x89\x56\x63\xd7\xe5\xf4\xad\x1f\x0d\x1a\x8a\xc3\x01\x4e\xb4\x60\x3f\x30\x44\x5a\x97\x5d\x0a\x77\xfe\xec\x81\xe4\xe9\x9b\xd7\x1a\xca\xd6\x46\xcb\x04\xb6\x08\x19\xe8\xec\x24\xa8\xa2\xdb\x39\x09\x68\x8b\xb2\x84\x16\x28\x72\xbc\x71\x5c\x3e\xf9\x86\x3a\x13\xd6\x0f\x4e\x3a\xcd\x69\x54\xf1\xff\x26\x8e\xee\x5c\xbe\x35\x46\x5b\x4e\x65\xc6\x0d\xbf\x3d\xa3\x56\x89\xaf\x39\xd3\xdc\x0d\x9d\x22\x26\x40\x61\x47\xfe\xcc\xad\x22\xfd\x6d\x92\x55\xa8\xb9\x21\x78\xc6\xaf\xa7\xaa\x2d\xec\xd0\xae\x46\xec\x45\xc9\xbb\xf6\xe5\x3f\xea\xd2\xd6\x82\xd7\x15\x17\x5b\xa6\x08\xf8\x4b\xa1\x4d\x9a\x28\xc5\xe4\x7e\xbd\x82\x9a\x76\xbc\xa0\xc2\x82\x1b\x0e\x29\x91\x5a\x28\x89\xe0\x01\xa2\x01\x52\x4f\xcf\x62\x45\xad\xcf\x4d\x32\x6d\x69\x17\x6d\x7f\xa2\x7e\xd8\xd5\x93\xe2\x5e\xef\x7a\xfa\xa1\x47\x9e\x50\x63\x48\xf0\xa6\x75\x36\x97\x03\x4b\x9c\x60\x9f\x46\x51\x46\xf9\x56\x9d\xdd\x56\xaf\xf7\xfc\x2f\xad\xef\xb8\x9f\xa2\xd2\xd4\xb8\x38\xe7\xd6\x32\x00\x09\x7b\x77\xed\x52\xd9\xc3\x1c\x98\xfd\x76\xf9\x46\x7f\xf5\x11\x6c\xa0\x0f\x85\x84\x6a\x91\xbe\xf6\x94\x19\xaa\xc6\xeb\xc7\xdd\xfb\xa2\xb2\x68\xbf\xe2\x62\xf6\xf5\x5d\x52\xa6\x47\xaf\x8a\x0b\x45\x39\x1b\xa9\xdf\x09\xe2\x56\x64\x01\x9b\x41\x07\xa2\x31\xee\x76\x1a\x81\x96\x0c\x11\x98\xf5\x20\x9e\x3c\x37\x07\xd7\x68\xb8\xd0\x99\xee\xe5\x63\x05\x5a\x88\xc3\x04\x9f\x5a\xdd\xf8\x74\x7a\x2d\xfd\x6f\x3b\x43\xc5\xc2\x5d\xf5\x0c\x8a\x4b\x77\x87\x2a\x8d\x89\x05\xdf\xa0\x88\x5a\xdd\xdb\x8f\xd4\x9e\x29\x73\x52\x62\xb1\xc9\x4e\xa5\x9c\xe0\xce\xa5\xa0\x61\xfb\xb0\x42\xc7\xe3\x01\xe2\x92\x12\xf2\xf1\x47\x6e\x7c\x25\x31\x7c\xb5\xfa\x81\x77\x4d\x78\xb2\x0e\xfe\xa3\x77\xd4\xfb\xfd\xb1\x90\xcc\x1f\xd5\x8f\x56\x8e\x6a\xc1\x9b\xe0\x5d\x99\xc8\x36\x24\x28\xf5\x9f\x47\x31\x1a\xbf\x17\x8f\x6b\x08\x36\x45\xcc\xf0\x13\x62\x4a\x41\x8b\x8d\x9f\xec\xfa\x26\xf7\xdc\xba\x32\xb4\x39\x54\x49\xc0\xd1\xef\x6f\xa3\x7f\x33\xfa\x5e\xa6\x01\x92\xbb\x5c\xe9\x2e\x45\x8d\x90\xce\xdf\x0e\x85\x78\x78\x11\xc6\x4b\xd0\x43\x6f\x4c\x5c\xa0\x1f\xac\xae\x7b\x79\x3d\x69\x64\x42\x98\x28\x41\xf6\xe8\x3f\x60\x3d\x58\x06\x74\x2a\x4e\xc7\xac\xb4\x06\xc5\x5b\x27\xaa\xad\x7a\x62\x8e\xb2\xf4\x1f\x80\x07\xc0\xe3\x72\x8f\xa1\xf4\x01\x94\xd2\x71\x39\x2f\x6c\x7f\x68\x4e\x1d\xbe\x23\x9c\xf6\xc5\x01\xbd\x4f\x4f\x64\x31\x53\xb4\xe7\xbd\x32\xff\x4b\x3d\xb3\x61\xfe\x9c\x4a\x87\xb4\xd7\x49\x2e\xef\x74\x9b\xd1\x8c\x6a\x44\xda\xba\x60\x54\x2d\xea\xdc\x45\xcb\xfa\x8a\x46\xb8\xd2\x52\x67\x0e\xe3\x12\xed\xe5\x3b\xb5\x16\xf0\x00\x0c\xc2\x50\x09\xf4\xd4\xe7\x4c\x6f\x61\x30\x6c\x34\x4a\x9b\xa4\x8f\xa2\xa2\xd7\x0f\x3e\x1a\xc0\x18\xf9\xc0\xd1\x5d\xda\xaf\xb5\xcf\x89\x86\x7c\xa6\xbf\x6b\x37\x42\x7c\x47\x7e\xec\x1a\xcb\x7f\x36\x9b\x94\x22\xa8\x85\x8e\xbc\x2f\x3a\x10\xa9\xe9\x0a\xea\x0f\x4d\xf8\x2a\xb2\xe8\xd1\x0d\xff\xcb\x99\x89\x2a\x81\x55\xb4\xf8\xaf\xf7\x9e\x93\xdf\x24\x84\x8a\xef\x03\x5e\x85\xd5\x70\x48\xc7\xc9\x3f\xe5\x44\xe3\xef\x17\x54\xc4\x92\x40\x57\x3a\xc1\xea\x67\xb9\x4d\x85\x74\x54\x2d\xff\x03\xf0\x6b\xfe\xdc\x3f\x51\xc6\x20\x40\x28\x61\xf7\x77\xfa\x47\xbc\x05\xc8\x65\xa6\xe6\x3a\xb4\x8e\x70\xc4\xb3\x14\xe6\xf8\x09\x53\xcb\x1a\x22\xb9\x22\x6a\x1b\x3c\xc0\x84\x73\x6b\x2a\x82\x6a\x7f\xc8\x41\x02\x3e\xaa\x56\x44\x8d\x94\x75\x7b\x01\x38\x33\xc5\x3e\x18\x2c\x1d\xe0\x66\x87\x87\x01\xde\xf7\x3b\xdd\x13\xd7\x40\x45\x65\xdc\xc3\x17\xae\x65\x03\x83\xb3\xea\x7d\x5e\x6a\xed\x3d\xbf\x57\x5a\x2c\xa5\x13\x28\x50\xe3\x94\xad\xeb\x9f\xee\x10\x87\x19\x37\x83\x20\xb9\xb4\xe0\xc5\xa6\xdd\xc7\x75\x94\xa8\x02\x41\x51\xb3\xa6\xd3\x22\xfb\x48\xe5\xdb\x7f\x0f\xb0\x4a\x91\x49\xfb\x27\x8e\xd9\xd8\xad\x19\xb1\xb8\xa2\x68\xcb\xa4\xb3\x00\xe9\x31\x39\xf2\xb6\x11\xbb\x77\x79\x83\xb7\x4d\x6f\xac\x85\x2d\x74\x3f\xb5\x01\x1f\x9b\xf2\xbf\xd3\xf4\x31\x4c\xdc\x9b\x1e\x71\xc6\x5e\xa7\x6e\x49\x53\xaf\x36\xbc\xb4\xb9\x64\x9a\xa0\xee\xaa\x6c\x89\x2e\x17\x0d\x32\x85\x24\x17\x08\x59\x4a\x91\xbd\xec\x0f\xde\xdd\x97\x4b\x42\x20\xb4\xb7\x0a\x5a\x93\x99\x38\x52\x7c\x6e\x6e\xf8\x23\xb3\x62\x56\xc1\x36\x9f\xbe\xed\x64\xa9\x0e\x8b\xe5\x45\xea\xc8\x96\x8c\x76\x41\x39\xcc\xd4\xdc\x59\x01\xbc\x01\x99\x85\xaa\xb5\xfe\x71\xe2\x4c\x55\xf2\x60\xc4\xc4\xb7\xfd\x5c\xf5\x28\x8b\x13\xdc\xda\x57\xbb\x34\x50\xfb\x4f\x6e\xce\x5e\x7c\x4a\x0a\x21\xff\xf3\x12\x4c\x3c\x78\x3a\xfa\x87\x44\xf6\xca\x3f\x5c\x3d\xe5\xb4\xc1\x54\xce\xa1\x2b\xa4\x7c\x3c\x69\x4e\xa8\x30\x3a\x8d\x7c\x85\x10\x08\x9c\xc1\x60\x9a\x82\xe6\xa7\xe0\x89\xf6\x3a\xfd\x05\x85\xd3\xf5\xab\xa2\x26\x34\xdd\x7c\x95\x79\x36\x4d\xa1\xd9\x3a\x99\x5f\x77\x06\xda\x20\x8d\x65\xb9\x48\xd7\x46\x13\xe0\xe4\xf8\xc7\x79\x74\xdb\x27\x2e\xdf\x2f\x8d\x52\x91\xcd\x3a\xf0\xd0\xad\xee\xcc\x16\x35\x85\x16\x1b\xc8\xec\x9b\x62\x82\x3f\xeb\x86\x4a\x8f\xfa\x00\x12\x07\x19\x98\x19\x07\xc0\x27\xef\x41\xa9\xc5\xeb\xef\x88\x41\x1b\x42\x0e\x2c\x60\x41\xe9\x4d\xba\xe9\x38\x8f\x72\xdb\x00\x89\xd4\x73\x3c\xed\xc3\x68\xcd\x1d\x68\x05\x63\x4c\x80\xbf\xfb\x9c\x34\x30\xf4\x02\xb7\x3f\xff\x1d\x6c\xf3\x55\xb9\x50\x9c\x1b\xfd\x48\xe7\x9b\x14\x17\x14\x1c\x9b\x9a\xb1\xc0\xf6\x2a\x4c\xf9\x7b\xae\x55\xfe\x53\xaf\xea\x35\x3c\x10\x61\xbb\x88\x2e\x10\x1d\x74\x34\xb3\x9b\xe6\x55\x8e\x77\xea\x26\xb4\x4b\x50\x7c\x2c\x44\xdd\x0a\x62\x5c\x04\x4b\x0a\x78\xee\x23\x64\x86\x28\x42\xd9\xef\x0f\x1b\xcb\x56\x3f\x01\xad\xbd\xee\x69\xe5\x2d\x02\x28\x56\xad\x65\x04\xd8\x11\xe8\x49\xab\x47\x0d\x61\x3d\xa0\xce\x95\x10\x03\x52\x98\x22\xad\xc1\x02\xc4\xc6\x2a\x3a\xad\x2f\x73\x92\xaa\x46\x01\xab\x08\x63\x15\x0c\x35\x8a\xee\xc2\xfc\x5e\x3a\x90\x6d\xf0\x0f\xe5\xdb\x12\x26\xba\xc2\x0f\x08\xd7\x01\xf1\x81\xb9\x0a\x4d\x38\x9b\x91\xdd\xdb\xc2\x4e\x40\x48\x8e\x1c\x46\xab\x2d\x05\xb4\x82\x30\x29\x45\x3c\xc9\x25\x3e\xbc\x43\x70\x96\x4a\x64\xc1\x08\x7c\xb3\x85\x7d\x73\x6d\xc3\x03\xce\x93\x06\x6d\xb6\x0f\xc6\x1b\xe9\xf7\x9c\x0c\x9e\x1c\xa7\xe4\xd7\x3f\x95\x17\x2b\xcb\xaf\x6c\xbd\x18\xc0\x6d\x1c\x1c\xcc\xf2\x3d\x85\x59\x2e\xe6\x84\x43\x49\xb5\xe7\x2e\x6a\x5e\x10\xf5\xee\xd5\xec\xa8\xf9\xc0\xa8\xa9\x5e\x21\x43\x89\x53\x01\x94\xa0\x30\x43\xb2\x11\x08\xa4\x9e\x34\x66\xce\xbe\x30\x78\xda\xdd\x36\x4f\xaf\x67\xfe\x3c\x51\xe1\xdf\x75\xf4\xaa\x61\x98\x54\xb7\x80\xe0\xc0\x4e\x9a\x9b\xf2\x30\x1c\x03\x0a\x36\x26\xce\x82\x0a\xfc\x59\xe1\xc1\x3e\xd6\xfa\x3e\x30\x30\xb9\x66\xf3\x87\x8f\x17\xa1\x6a\x12\x09\x98\x7a\xa9\xf7\xeb\x76\x98\x8d\x40\x1f\x10\xbd\xb0\xa4\x19\xdd\xce\xd1\x10\x56\x59\xe6\x21\x94\x40\xe3\x5e\x98\x4c\x3e\x7a\xda\x78\xc3\x0a\x9a\x73\x99\xce\x1a\xbc\xe3\x6c\x7c\xe3\xe3\x9a\x89\xcf\xac\x98\xf2\x49\x73\x59\x14\xcf\xc1\x6b\xaf\x66\x6e\xd4\xb5\x1f\xf2\x19\x3c\x28\x36\xbd\x43\xe5\xd5\x37\xf2\x65\x36\x46\xf0\x5c\x81\x09\xef\x8e\xdf\xd3\x5b\x3a\xcd\x73\xeb\x7e\x79\x0c\x64\xcc\x2a\x7c\x95\x96\xe4\xa5\xf3\xd0\xe2\xd9\x2b\x30\x1c\x9e\xc5\xd8\x27\x68\xab\x21\x18\x01\xbe\xa9\x63\x40\xc3\x0e\x1b\x09\xfc\x9f\xae\x7c\xff\x26\x15\xd6\x1e\xde\x29\xf9\xb0\xd7\x12\xab\xff\xcd\x93\xea\x3b\x20\xce\xb7\xaa\x57\x36\x8e\x84\xc3\x87\x6e\xcd\x7a\x93\x1c\xb1\x9e\xa5\x17\x60\x3e\xf4\x4a\x98\xb2\x46\x28\x8b\x27\x33\x69\x80\xe4\xbb\x50\x90\x07\xbc\xd0\x18\x58\xcd\x35\xe9\xcd\x8d\xf2\x88\x22\x1d\x3a\x48\x72\x68\x82\x8f\xe7\x32\xfd\x7d\xa2\xe2\xb6\x92\x6b\x4a\x9b\x54\xd5\x4b\x41\xc7\x79\x98\xd1\xef\x53\x84\x87\xe1\xdc\xdf\x87\xfc\xc3\xfa\xb2\x5c\x77\xa7\xcf\x01\xf8\x60\x87\xe2\xb9\x5e\x1e\x4d\x45\x52\x2f\xc3\xf4\x4a\x14\xcb\xfa\xcd\x48\xd6\x3e\xba\x04\x2c\xa3\xe1\x4a\xf8\xe5\xbe\xd3\x18\x6d\xe4\xfb\x69\xf3\x87\xaa\xc8\x82\x42\xd6\x4f\xbd\xcd\x11\x0c\x33\x88\x21\xad\x72\x56\x2f\x09\x2f\x55\xfa\x73\xb5\xe7\xd9\x2c\x9b\x6f\xee\x57\x94\xef\x48\x23\x19\x0f\x92\x57\xb1\x1f\xf4\xfc\x44\x57\xdb\xa9\x0f\xbd\xa8\x0d\xaf\xb5\x17\xfa\x27\x51\x94\x89\x01\x6f\x6f\x45\x80\x06\x40\x1f\x9f\xea\x20\x42\x6a\x54\x5a\xab\x77\x84\xc4\xe3\xdf\x9d\xfa\x9f\xb2\x79\xcf\x21\xa8\x6c\xe3\xf2\x92\xcf\x52\xd3\x43\xfc\xe9\x7e\x05\xb9\x2c\x84\x72\x3d\x7d\xdc\x65\xa7\xbc\x79\xae\x73\xb1\x24\x6b\x6b\x65\x04\x8a\x38\x55\xb6\x2b\x13\x40\x26\x46\x27\xc1\xdf\x82\xf3\x35\x2f\x3a\xc6\xd5\xa7\x5e\x08\x23\x57\x2c\x2f\xb3\x92\xbd\x7e\xf1\x51\x93\xcc\x5f\x6f\xbe\xfc\x4d\x27\xff\xd7\x41\xa9\x3d\x1a\xb7\x99\xd9\xfb\xd5\x45\xd2\xd2\x60\x6e\x35\x66\xeb\x79\xd5\x44\x85\xf5\x56\x15\x10\xa5\x7f\x17\xf2\xb3\x90\x9e\xd1\xbf\xc5\xe5\xd6\x46\x92\xb6\xc5\x03\xeb\x58\xf1\x7c\xae\x55\x41\x37\x60\x74\x67\xe8\xab\x51\xd8\x67\x06\x7f\x50\x37\x4e\x99\xf7\x48\x69\xe0\x17\x7f\x4e\xb5\x2c\x29\x30\xdf\xe5\xca\x2b\x6e\x45\x4d\xb8\xa3\x62\x25\xb2\xc9\x36\xbd\xc5\xbb\x75\xf1\x35\x5f\xfd\x8d\x7f\xa4\x76\xeb\x28\x28\x71\xe5\x21\x11\x83\x2f\xcf\xc2\x46\xda\x41\x5c\x20\x0d\x9e\x6c\x35\x0f\x49\x84\x6a\x00\x22\x66\x01\x91\xa2\x84\x0d\x7a\x53\x75\x36\x74\xc7\x8e\xa0\x0a\x5b\x9e\x26\x6f\xf2\x9b\x1a\x8f\xb1\x93\xe1\x32\xd2\x3f\x96\x0c\xd9\xc8\x24\x9b\x94\x3f\xcd\xb8\x65\x39\x5b\x2c\x03\xab\x67\x5b\xbb\x19\x93\x81\x3f\xb0\xa8\xd1\xe6\x83\x31\x29\x7c\x88\xdb\x1d\xca\x00\x31\x3b\x82\x11\x12\x1b\x60\x23\x47\x5c\xb6\x9d\x6a\xc6\x6c\x11\x16\xa5\x61\x71\x35\x0f\x68\x0c\xc7\x4c\x88\xfe\x99\x05\xed\x07\x87\x80\xe6\xd7\x1b\xcc\x73\x5f\xee\x75\xa9\x44\x4f\x69\x5d\x03\x6a\xa6\xb4\xb9\xe5\x9b\x66\x80\xb6\x31\x29\x67\xf8\xb2\x36\xff\x8b\xee\x60\x31\x6a\x70\xcb\xa0\x31\x2c\x99\x3b\x92\xe3\x0c\xa4\xcb\x11\x8c\x17\x45\xe7\xb5\x78\xc0\xad\x6c\x3a\x7d\x81\x87\x37\x25\x95\xdd\x16\x08\x93\x11\x5f\x11\xb0\x54\xfc\x17\x18\xc9\x67\xbd\xaf\xe9\xbf\x95\xad\x58\x3d\xb5\x93\x96\xd5\x94\x11\x4b\x65\x00\x99\x6e\xef\xf8\x2b\x70\x19\x1e\x52\xfa\x23\x30\xef\xdc\x66\xfa\x36\x3c\xb3\x79\xc9\xc6\x77\x40\x53\x5c\x99\x60\xca\x85\x7c\xfe\x4d\x0a\x88\xbb\xbb\xf2\xe7\xb2\x03\x4b\xb8\x43\x98\x0f\x6f\xa8\x6f\xf6\x02\x33\x5d\x1e\x25\xa6\x13\xc7\xd7\xa4\xef\x7a\x6b\x16\x1c\x25\x82\x23\x9a\xa5\x6f\x5c\x89\x94\xd0\x66\x46\xe0\xaa\x62\xc4\x8b\x54\xe0\x85\x22\x23\x77\x2e\xd4\x4e\x70\x59\x69\x7a\xec\x6b\xc2\x22\x5e\x0e\xda\xc5\x5f\xdb\xff\x1a\x16\xd4\xc6\xde\xf4\xc7\x7d\xdf\x38\xb2\x77\x39\x52\xc8\x11\xff\x14\x5a\xe3\x66\xe2\x16\xc4\x16\x00\x65\x9f\xf7\x8f\x64\xb1\x9e\x35\x4d\x74\xf9\x0a\x61\x90\x7c\x85\xc7\x02\x39\x4f\xe2\xcc\xa4\xf5\xfe\xb5\xb5\x35\x30\xb5\xf4\xc9\xe7\x2f\x5c\x09\x0c\xa4\x64\xa7\xa9\xc3\x95\x14\x37\x35\xfd\xd2\x42\x1d\x07\xe8\xef\xe4\x19\x8a\xd0\x6f\x9d\x23\x0a\x91\xd5\xfb\x50\xef\xc0\x2c\x2d\xb6\xed\x4a\xd7\x50\x31\x9e\x3e\x67\x2f\x52\x13\xdd\xae\x92\xc3\xfc\xec\x0e\xd5\xdf\xf5\x22\xd0\xca\xb8\x9b\xb8\x25\x32\x54\x25\x55\x29\xb3\x2c\xf5\x38\x5c\x90\x01\x42\x1b\x92\xcc\x67\x16\x3c\xc3\x95\x23\x5e\x40\x8a\x46\x3f\xa3\x1e\xef\xd0\x74\x2d\xe5\x13\x9b\xba\x2d\xc1\x41\xff\xf7\xbe\x17\x5f\x41\x8c\xf7\xcf\x89\xdd\x4f\x47\x4a\x2f\xc6\x1d\x0f\x38\x51\xf3\x4d\x52\xc4\x9b\xbd\x12\x26\xbd\x08\x96\x30\x71\xf5\xd4\x91\x8f\x7e\x12\xd0\x02\x8d\x32\x1b\x3d\x6b\xd4\x36\xe0\x2f\x6e\x55\xcc\x48\xc6\x13\xe3\x29\x91\x6c\xb8\x54\x52\x44\xbb\xa3\x77\x90\x8d\x6b\xcf\xeb\x7e\xd6\x62\x08\xe5\x07\xb4\xdf\xd8\xf2\xcb\xa5\xa3\xd4\x2f\x3a\x4e\x4d\xa8\x0e\xba\x19\x9c\xc8\xae\xc8\xa4\x0f\x25\x47\x10\xd8\x11\x83\x24\x96\x75\x0c\x4b\x34\xc3\x6b\x74\x6b\xf3\xcb\x60\xda\xe8\x1e\x73\xda\x95\x2e\xe4\x1c\x2a\x40\x23\x72\xe5\x23\x9f\xd2\xd4\x07\xd8\xe9\x1b\x9e\x57\xb4\x75\x8a\xac\xe5\x9d\xf7\xd8\x3d\x38\xad\x17\x71\x6c\xae\x50\x9d\xdb\x24\x27\xcb\xcf\x84\x7a\x7b\x10\x8e\xdb\x4b\x3a\x70\x81\x71\xe7\x31\xa9\x77\x02\xb6\x37\x7c\x79\x34\xec\x9b\x4c\x74\x46\xea\x03\x1e\x62\xbb\x39\xa6\xe2\xd3\x20\xea\xa8\xb5\x91\x0b\x14\xd8\x82\x6c\x20\x4f\x7a\x4a\xb2\x36\x24\x0b\x48\x60\x66\xb2\x7b\xe7\xf6\x9b\x84\x42\xff\xc8\x03\xc4\xed\x7f\xdd\x23\xef\x2f\xa0\x33\x7d\xb8\x42\x68\x1c\x0f\x8e\xf2\xba\xdc\xc0\x81\x13\xfe\x80\x61\xab\x31\xfa\xf9\x89\xba\x55\x51\x2a\x5f\x0e\x7b\x93\x6d\x63\xc0\xcc\xed\x58\xef\x82\xcf\x0c\x2d\x29\xfb\x23\x18\xe1\x2b\x56\xd4\x91\x2e\x9c\x4f\x96\xdb\x02\xca\x84\x49\x29\x4d\xa3\x3f\x8f\xce\x55\x07\xd3\xeb\x99\x23\x90\x72\xe2\xb2\xe1\x2e\x33\x55\x35\x3b\xf4\x90\x18\x2e\xeb\x7a\xa1\x03\xc9\x77\xc0\x67\x01\xca\xa0\xb7\x44\x55\x11\x66\x89\xb9\xdb\xe9\x0a\xd1\xd1\x85\x39\xd5\xe4\x1a\xda\x0f\x2f\x7f\x1e\x6c\x9a\xa6\x7a\xa2\xaa\x41\x6f\x84\x9f\x18\xc6\xfb\xd2\x2d\xcb\xe0\x3a\xf7\x8b\x15\xce\xdd\xda\x0d\x1b\xbb\xdd\x33\x62\x76\x9f\x50\xe9\x86\x80\xfc\xe5\x4b\x7e\x84\xa9\x4f\x32\x46\x66\xa6\x96\x7f\xc8\x0f\x2e\x5e\x9c\xa9\x4f\x61\x7f\x01\x16\x3a\x16\x01\xc6\x22\x19\xfc\xb5\x67\x82\x66\xe1\xc6\x18\xca\x89\x47\xe7\x4a\x2a\xde\x5e\x40\xda\xeb\x8d\xf5\x62\x0f\x36\x5f\x66\xae\xae\x88\xaf\xb4\x2d\x70\xce\x41\x45\xeb\xaf\xa7\x58\xac\xcc\x19\xe2\x78\xbc\x9f\x45\xda\x63\x85\x9c\x46\xeb\xdf\x7f\x0e\xe2\xe3\xfd\x9d\xd5\x41\x4d\xeb\x86\x07\xd7\xec\x55\x65\x68\x30\x1d\x26\x50\x78\x0b\xe7\xf7\x5f\xcd\xf9\x24\x41\xcb\x98\xf2\x36\x48\xb5\xed\x3f\x3a\x5e\x2c\x96\xda\xaa\xc1\xda\x0c\xe4\x6e\x1d\x85\xb5\xc2\xcf\xf4\xd9\xa9\x16\x7d\x58\x15\xfc\xc6\x6b\xbd\x94\x5f\x0b\x55\x87\x41\x95\xac\xbb\xbf\xec\xf8\x0f\x26\xb7\x0a\x4c\xf6\x62\xf9\x55\xea\x4e\x01\x35\x1f\xaa\x9f\x53\x00\xcf\x35\xc7\x2a\xe6\x09\x15\x06\x2c\xef\xf7\x89\x1e\x76\x77\x51\x91\x96\xbf\x81\x33\x33\x36\x1d\xbb\xee\xcf\xe8\xdc\x12\x7a\x94\xc2\x0b\x9f\xaf\x03\x6d\x71\xa8\x16\xb1\xab\x72\xe8\x20\x19\xd0\x69\x9b\x01\x2a\x12\x60\x22\xcc\x70\x31\x36\x63\x8d\xc8\x67\x49\x05\xb4\x10\x0e\x9b\x8d\x62\xab\xde\xb1\x3c\x84\xbe\x30\x0b\x49\xae\x44\xfc\xea\x4b\x89\x2f\xbf\x65\x64\xcd\xb0\x12\x69\x9e\x9f\xd1\xc9\x64\xf2\xa9\xd7\xf3\x12\x65\x6b\x47\xe6\x91\x66\x82\xb0\x04\x41\x57\xf4\xe2\xdf\xb9\xd5\xf5\x5d\x68\x49\x5d\x76\x3c\x80\x7d\x8e\xc6\x93\x2e\x56\x0c\x91\x3a\xb7\x6f\xc3\xff\x82\x02\x02\xae\x44\xfa\xcb\xda\x1a\xa1\x53\x10\x8f\x16\x8e\x42\x1b\xdb\x1a\x93\xc3\x82\xed\xf0\x8c\xc7\x9c\x5b\x71\x1a\xe1\x3c\x6e\xb8\xe5\x43\x93\xf4\x99\x8e\xc9\x9a\x95\xae\x7f\x85\x99\x9e\x78\x43\x9b\xa6\x03\x44\x55\x45\xf2\x1f\xfc\x85\x62\x07\xee\xa9\x45\x5f\xb1\x4c\x0a\xd9\x67\xf2\x2c\xf0\xf5\x72\xdb\xa5\xca\xc7\x45\x0e\x4e\x52\xce\x71\x3c\xe8\x71\xfc\x76\xd7\xad\xca\x01\x26\x0e\xa7\x08\xda\x43\x40\x01\x80\x5b\xcf\xd1\xf3\xcc\xd1\xc6\x08\x4d\x5e\xc2\xa2\x9f\x00\xe7\x7a\xa4\xf9\x1d\xee\x13\xee\xb5\xfc\xce\x8e\x82\xa1\x03\xb3\x7f\x6c\x4f\x25\x25\x95\x1e\xaa\xd4\x49\xa0\x8a\x75\xd2\xf3\x41\xf1\x7b\x2c\xbd\xf1\x73\x0d\x19\x2e\xf7\x58\xa6\xe8\xf8\x83\xd8\x8c\x07\xf2\xef\x41\xb4\x43\xda\xa7\x95\x00\x02\x44\x26\x3d\x2d\x30\xc7\x62\xf6\xfe\xcf\x3b\xb6\x7f\x8d\xda\x6c\xa7\xd9\xd4\x0a\x18\xe1\x86\x26\x85\x3c\x50\x94\xef\x66\xed\x64\x61\x7e\xe9\x38\x8c\x03\x7a\x74\xa9\x61\x69\x2d\x44\x70\x79\x6a\x68\x3f\x88\x0e\xb9\x04\x10\x60\xac\xee\x4e\x76\x18\xb7\x17\xa0\x57\x95\x1e\x1c\x66\x23\x62\xfd\x26\x70\x9b\xd8\x0a\xf3\x9f\xe5\xc1\x1f\x96\x54\xc2\x65\x5b\x21\xed\xcc\x32\x42\x84\x91\xdc\x5c\x10\x1e\x6a\x22\x2d\x2e\x51\xb9\xf2\x3d\x96\x0f\x12\x74\x8d\x9a\x5f\xc3\xe2\xf6\xc9\x53\x97\x23\x47\x65\x6a\x9f\x78\x7e\xe5\xbd\x19\x64\x45\xaa\x2e\xaf\x8f\x8f\xbd\xaf\xaa\x34\xed\x1b\x05\x5a\x09\xb3\x71\x8d\x8b\x3c\x8f\x1c\xfe\x5a\xc5\x3c\xf3\x7c\x9f\xa7\x6f\xe7\xac\x70\x87\x15\x7b\xdb\xa5\x23\xe2\xa9\xe7\x10\xb3\xf5\xb5\xa7\xff\x9b\x8b\x1f\x61\x2d\x9b\xbb\xb1\x10\x4f\x9d\x6d\xf9\x87\x87\xe9\x25\x23\xfe\x1d\x30\x10\x1e\xdf\x53\xd8\x9d\xf4\xa3\xc4\x2b\xd3\xbd\x27\x37\xf3\xaf\xe0\x15\x4e\xe1\xe8\xd9\x3d\x9a\x27\x75\xd8\x4c\x68\x6d\xac\x89\x84\x51\x2c\xf9\x55\x96\x23\xac\x6f\xe4\xef\x79\xf7\xb3\x4b\x21\x96\x9a\x8a\x8a\x72\x43\xf4\x1e\x11\xa5\x8d\xe3\xe4\xe1\x8f\x33\x85\xee\x70\x03\xc7\x9f\xa5\x27\xb9\x4e\x72\x33\x8f\x2a\x1c\x4c\x45\xff\x04\x5a\x61\x1f\xe1\xdb\x3c\xdd\xa0\xfe\xf1\x21\xf7\x8c\x52\x75\x34\xda\xb2\x66\xdd\x3f\xf6\xf7\x3d\x6b\x6b\xc0\x39\x98\x30\x98\x30\x51\x0a\x57\xeb\x0e\x2d\x74\xde\x38\x11\x27\x75\xb8\x77\x5d\x99\xc1\x5e\x38\xd0\xe7\x09\xf3\x97\x49\x2f\xc6\x46\x2f\x6e\x57\xa7\xff\x65\xd2\x5b\xe9\xeb\x75\x30\xa5\xef\x4f\xc8\x07\xff\x9e\x09\xb7\x01\xb5\x9d\x25\x0b\x54\x1a\x54\x6d\xb7\x5d\x11\x1f\x56\x0a\x47\x21\x7c\x12\x2c\x6b\x29\x28\xd5\xa0\xa0\x47\xa9\x88\xb3\xac\x51\x31\xdf\x00\x96\xc1\x5b\xbc\x39\x8d\x0e\x69\x65\x84\x1b\x17\xf4\x91\x63\x58\x85\xd8\x98\x7a\x04\xbb\xe2\x48\x21\x57\xb5\xca\x88\x3c\x76\x7e\xa1\x56\xb4\xe1\x78\x4b\xa1\xb7\xcf\xeb\x34\x3a\x71\xeb\x03\xeb\xce\x88\x79\x2a\xed\x8b\x18\xe7\xfd\x88\x0c\xd5\x93\x4c\xbe\x55\x52\x3c\x1b\x7c\x82\xb3\xed\x99\xb3\xde\x90\xa4\x79\xf2\x51\xe1\x90\x4a\xc8\x6f\x28\x02\x19\x57\xef\x35\x42\x1d\x3c\x8a\x2d\x39\xee\xe7\x31\x4e\x3f\x3f\x94\x5e\xa2\xfb\x5f\xf7\xf6\xc0\x9b\xa4\x72\xff\x3e\x56\x2c\x61\x68\xb0\xc1\xf8\x43\x65\x8b\xb1\x80\xeb\xfc\xf9\x54\xe5\x8e\x63\x3f\xb1\x61\x27\x51\xbf\x36\x0b\x15\xfe\x67\xca\x59\x4f\x5a\xae\x34\x23\x3a\x3b\x58\xee\xba\x56\x2f\xad\x63", 4096); syscall(SYS_serialize2, /*a=*/0x20001380ul); break; case 9: syscall(SYS_test, /*a0=*/0x20fff000ul, /*a1=*/0, /*a2=*/0x1000, /*a3=*/0x800, /*a4=*/0x400ul, 0); break; case 10: memcpy((void*)0x20000000, "\'/+,\000", 5); *(uint8_t*)0x20000040 = 0x1c; *(uint8_t*)0x20000044 = 1; STORE_BY_BITMASK(uint32_t, , 0x20000044, 3, 8, 4); syz_compare(/*want=*/0x20000000, /*want_len=*/5, /*got=*/0x20000040, /*got_len=*/8); break; case 11: syz_compare_int(/*n=*/2, /*v0=*/0xffff, /*v1=*/0x100, 0, 0); break; case 12: syz_errno(/*v=*/0xfffffff9); break; case 13: memcpy((void*)0x20000080, "\xfe\xaa\x0e\x27\x8d\x40\x3f\x03\xc2\xbf\x80\x48\x86\x76\x75\x4e\x43\x50\x32\xf8\x1e\xee\x19\xff\xa3\xf4\x8c\xa7\x58\xe8\x2b\x07\x72\x89\x83\x4e\xb7\x9b\xe6\x7b\x6c\xf4\x37\xe2\xd9\xb1\x01\xf3\x97\xd7", 50); syz_execute_func(/*text=*/0x20000080); break; case 14: syz_exit(/*status=*/0xffffffc0); break; case 15: syz_mmap(/*addr=*/0x20ffc000, /*len=*/0x1000); break; case 16: syz_sleep_ms(/*ms=*/1); break; case 17: syz_test_fuzzer1(/*a=*/0xd, /*b=*/0xc, /*c=*/0xb); break; } } int main(void) { syz_mmap(/*addr=*/0x20000000, /*len=*/0x1000000); setup_fault(); use_temporary_dir(); do_sandbox_none(); return 0; } :310:3: error: call to undeclared function 'syscall'; ISO C99 and later do not support implicit function declarations [-Werror,-Wimplicit-function-declaration] syscall(SYS_breaks_returns); ^ 1 error generated. compiler invocation: c++ [-o /tmp/syz-executor1247316040 -DGOOS_test=1 -DGOARCH_64=1 -DHOSTGOOS_openbsd=1 -x c - -m64 -lutil -O2 -pthread -Wall -Werror -Wparentheses -Wunused-const-variable -Wframe-larger-than=16384 -Wno-array-bounds -Wno-unused-but-set-variable -Wno-unused-command-line-argument -no-pie -fno-exceptions] --- FAIL: TestGenerate/test/64/12 (1.39s) 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: breaks_returns() (fail_nth: 1) breaks_returns() (async) test$end0(&(0x7f0000000000)={0x20, 0x8, 0x7, 0x7fffffff}) (rerun: 4) test$length9(&(0x7f0000000040)={&(0x7f0000ffe000/0x2000)=nil, 0x2000}) test$recur1(&(0x7f0000001280)={&(0x7f0000001240)={&(0x7f0000000600)={0x0, &(0x7f00000005c0)={&(0x7f0000000080), 0x0, &(0x7f0000000180)={&(0x7f00000000c0), &(0x7f0000000100), &(0x7f0000000140)}, &(0x7f00000002c0)={&(0x7f00000001c0), &(0x7f0000000200), &(0x7f0000000240), &(0x7f0000000280)}, 0x0, &(0x7f0000000580)={&(0x7f0000000300), 0x0, &(0x7f0000000400)={&(0x7f0000000340), &(0x7f0000000380), 0x0, &(0x7f00000003c0)}, &(0x7f0000000540)={&(0x7f0000000440), &(0x7f0000000480), &(0x7f00000004c0), &(0x7f0000000500)}}}}, &(0x7f0000001200)={&(0x7f0000000680)={&(0x7f0000000640)}, &(0x7f00000009c0)={0x0, &(0x7f0000000980)={&(0x7f0000000700)={&(0x7f00000006c0)}, 0x0, &(0x7f0000000840)={&(0x7f0000000740), &(0x7f0000000780), &(0x7f00000007c0), &(0x7f0000000800)}, &(0x7f0000000940)={&(0x7f0000000880), &(0x7f00000008c0), &(0x7f0000000900)}}}, &(0x7f0000000ac0)={&(0x7f0000000a00), 0x0, &(0x7f0000000a40), &(0x7f0000000a80)}, &(0x7f0000000bc0)={&(0x7f0000000b00), 0x0, &(0x7f0000000b40), &(0x7f0000000b80)}, &(0x7f0000000e80)={0x0, &(0x7f0000000c00), &(0x7f0000000d40)={&(0x7f0000000c40), &(0x7f0000000c80), &(0x7f0000000cc0), &(0x7f0000000d00)}, &(0x7f0000000e40)={&(0x7f0000000d80), &(0x7f0000000dc0), &(0x7f0000000e00)}}, &(0x7f00000011c0)={&(0x7f0000000f00)={&(0x7f0000000ec0)}, &(0x7f0000000f40), &(0x7f0000001040)={&(0x7f0000000f80), &(0x7f0000000fc0), 0x0, &(0x7f0000001000)}, &(0x7f0000001180)={&(0x7f0000001080), &(0x7f00000010c0), &(0x7f0000001100), &(0x7f0000001140)}}}}}) foo$anyres(&(0x7f00000012c0), &(0x7f0000001300), &(0x7f0000001340)) breaks_returns() test$length10(&(0x7f0000ffe000/0x1000)=nil, 0x1000, 0x1000, 0x800, 0x400) serialize2(&(0x7f0000001380)="b3eb980b12af03684832ff0d1367b05ded250f350bffb9c67243a4a26cac6a5664ba93ce0c5ffca81d81c8a8a18416566c33d00a999baf45ad351740795a1a3a7f59abe59ac218f6e204dc1329f158d36e4d0c86200e4d8b5dbda275d20e5315c52e12895663d7e5f4ad1f0d1a8ac3014eb4603f30445a975d0a77feec81e4e99bd71acad646cb04b60819e8ec24a8a2db3909688bb284162872bc715c3ef9863a13d60f4e3acd6954f1ff268eee5cbe35465b4e65c60dbf3da35689af39d3dc0d9d2226406147feccad22fd6d9255a8b92178c6afa7aa2decd0ae46ec45c9bbf6e53fead2d682d715175ba608f84ba14d9a28c5e47ebd829a76bca0c2821b0e29915a2889e001a201524fcf6245adcf4d326d69176d7fa27ed8d593e25eef7afaa1479e506348f0a6753697034b9c609f465146f9569ddd56aff7fc2fadefb89fa2d2d4b838e7d63200097b77ed52d9c31c98fd76f9467ff5116ca00f85846a91bef69419aac6ebc7ddfba2b268bfe262f6f55d52a647af8a0b45391ba9df09e25664019b4107a231ee761a81960c1198f5209e3c3707d768b8d099eee563055a88c3049f5addf8747a2dfd6f3b43c5c25df50c8a4b77872a8d8905dfa0885adddb8fd49e29735262b1c94ea59ce0cea5a061fbb042c7e301e29212f2f1476e7c25317cb5fa81774d78b20efea377d4fbfdb190cc1fd58f568e6ac19be05d99c8362428f59f47311abf178f6b083645ccf013624a418b8d9fecfa26f7dcba32b4395449c0d1ef6fa37f33fa5ea60192bb5ce92e458d90cedf0e85787811c64bd0436f4c5ca01facae7b793d696442982841f6e83f603d5806742a4ec7acb406c55b27aaad7a628eb2f41f8007c0e3728fa1f40194d271392f6c7f684e1dbe239cf6c501bd4f4f643153b4e7bd32ff4b3db361fe9c4a87b4d7492eef749bd18c6a44daba60542deadc45cbfa8a46b8d252670ee312ede53bb516f0000cc25009f4d4e74c6f61306c344a9ba48fa2a2d70f3e1ac018f9c0d15ddaafb5cf89867ca6bf6b37427c477eec1acb7f369b9422a8858ebc2f3a10a9e90aea0f4df82ab2e8d10dffcb99892a8155b4f8aff79e93df24848aef035e85d57048c7c93fe544e3ef1754c49240573ac1ea67b94d8574542dff03f06bfedc3f51c620402861f777fa47bc05c865a6e63ab48e70c4b314e6f80953cb1a22b9226a1b3cc084736b2a826a7fc841023eaa56448d94757b013833c53e182c1de066878701def73bdd13d7404565dcc317ae650383b3ea7d5e6aed3dbf575a2ca5132850e394adeb9fee108719378320b9b4e0c5a6ddc77594a8024151b3a6d322fb48e5db7f0fb04a9149fb278ed9d8ad19b1b8a268cba4b300e93139f2b611bb777983b74d6fac852d743fb5011f9bf2bfd3f4314cdc9b1e71c65ea76e4953af36bcb4b9649aa0eeaa6c892e170d3285241708594a91bdec0fdedd974b4220b4b70a5a939938527c6e6ef823b36256c1369fbeed64a90e8be545eac8968c764139ccd4dc5901bc019985aab5fe71e24c55f260c4c4b7fd5cf5288b13dcda57bb3450fb4f6ece5e7c4a0a21fff3124c3c783afa8744f6ca3f5c3de5b4c154cea12ba47c3c694ea8303a8d7c8510089cc1609a82e6a7e089f63afd0585d3f5aba22634dd7c9579364da1d93a995f7706da208d65b948d74613e0e4f8c77974db272edf2f8d5291cd3af0d0adeecc163585161bc8ec9b62823feb864a8ffa00120719981907c027ef41a9c5ebef88411b420e2c6041e94dbae9388f72db0089d4733cedc368cd1d6805634c80bffb9c3430f402b73fff1d6cf355b9509c1bfd48e79b1417141c9b9ab1c0f62a4cf97bae55fe53afea353c1061bb882e101d7434b39be6558e77ea26b44b507c2c44dd0a625c044b0a78ee2364862842d9ef0f1bcb563f01adbdee69e52d022856ad6504d811e849ab470d613da0ce951003529822adc102c4c62a3aad2f7392aa4601ab0863150c358aeec2fc5e3a906df00fe5db1226bac20f08d701f181b90a4d389b91dddbc24e40488e1c46ab2d05b4823029453cc9253ebc4370964a64c1087cb3857d736dc303ce93066db60fc61be9f79c0c9e1ca7e4d73f95172bcbaf6cbd18c06d1c1cccf23d85592ee6844349b5e72e6a5e10f5eed5eca8f9c0a8a95e214389530194a03043b21108a49e3466cebe3078dadd364faf67fe3c51e1df75f4aa619854b780e0c04e9a9bf2301c030a3626ce820afc59e1c13ed6fa3e3030b966f3878f17a16a1209987aa9f7eb76988d401f10bdb0a419ddced1105659e6219440e35e984c3e7ada78c30a9a7399ce1abce36c7ce3e39a89cfac98f249735914cfc16baf666ed4b51ff2193c2836bd43e5d537f2653646f05c8109ef8edfd35b3acd73eb7e790c64cc2a7c9596e4a5f3d0e2d92b301c9ec5d82768ab211801bea96340c30e1b09fc9fae7cff2615d61ede29f9b0d712abffcd93ea3b20ceb7aa57368e84c3876ecd7a931cb19ea517603ef44a98b246288b27336980e4bb509007bcd01858cd35e9cd8df288221d3a487268828fe732fd7da2e2b6926b4a9b54d54b41c77998d1ef538487e1dcdf87fcc3fab25c77a7cf01f86087e2b95e1e4d45522fc3f44a14cbfacd48d63eba042ca3e14af8e5bed3186de4fb69f387aac88242d64fbdcd110c338821ad72562f092f55fa73b5e7d92c9b6fee5794ef4823190f9257b11ff4fc4457dba90fbda80dafb517fa27519489016f6f458006401f9fea20426a545aab7784c4e3df9dfa9fb279cf21a86ce3f292cf52d343fce97e05b92c84723d7ddc65a7bc79ae73b1246b6b65048a3855b62b1340264627c1df82f3352f3ac6d5a75e0823572c2fb392bd7ef15193cc5f6fbefc4d27ffd741a93d1ab799d9fbd545d2d2606e3566eb79d54485f5561510a57f17f2b3909ed1bfc5e5d64692b6c503eb58f17cae554137607467e8ab51d867067f50374e99f74869e0177f4eb52c2930dfe5ca2b6e454db8a36225b2c936bdc5bb75f1355ffd8d7fa476eb282871e52111832fcfc246da415c200d9e6c350f49846a0022660191a2840d7a53753674c78ea00a5b9e266ff29b1a8fb193e132d23f960cd9c8249b943fcdb865395b2c03ab675bbb1993813fb0a8d1e68331297c88db1dca00313b8211121b6023475cb69d6ac66c1116a56171350f680cc74c88fe9905ed078780e6d71bcc735fee75a9444f695d036aa6b4b9e59b6680b6312967f8b236ff8bee60316a70cba0312c993b92e30ca4cb118c1745e7b578c0ad6c3a7d8187372595dd160893115f11b054fc1718c967bdafe9bf95ad583db59396d594114b6500996eeff82b70191e52fa2330efdc66fa363cb379c9c67740535c9960ca857cfe4d0a88bbbbf2e7b2034bb843980f6fa86ff602335d1e25a613c7d7a4ef7a6b161c2582239aa56f5c8994d06646e0aa62c48b54e0852223772ed44e7059697aec6bc2225e0edac55fdbff1a16d4c6def4c77ddf38b2773952c811ff145ae366e216c41600659ff78f64b19e354d74f90a61907c85c702394fe2cca4f5feb5b53530b5f4c9e72f5c090ca464a7a9c395143735fdd2421d07e8efe4198ad06f9d230a91d5fb50efc02c2db6ed4ad750319e3e672f5213ddae92c3fcec0ed5dff522d0cab89bb8253254255529b32cf5385c9001421b92cc67163cc395235e408a463fa31eefd0742de5139bba2dc141fff7be175f418cf7cf89dd4f474a2fc61d0f3851f34d52c49bbd1226bd08963071f5d4918f7e12d0028d321b3d6bd436e02f6e55cc48c613e329916cb8545244bba377908d6bcfeb7ed66208e507b4dfd8f2cba5a3d42f3a4e4da80eba199cc8aec8a40f254710d811832496750c4b34c36b746bf3cb60dae81e73da952ee41c2a402372e5239fd2d407d8e91b9e57b4758aace59df7d83d38ad17716cae509ddb2427cbcf847a7b108edb4b3a708171e731a97702b6377c7934ec9b4c7446ea031e62bb39a6e2d320eaa8b5910b14d8826c204f7a4ab236240b486066b27be7f69b8442ffc803c4ed7fdd23ef2fa0337db842681c0f8ef2badcc08113fe8061ab31faf989ba55512a5f0e7b936d63c0cced58ef82cf0c2d29fb2318e12b56d4912e9c4f96db02ca8449294da33f8fce5507d3eb99239072e2b2e12e3355353bf490182eeb7aa103c977c06701caa0b74455116689b9dbe90ad1d18539d5e41ada0f2f7f1e6c9aa67aa2aa416f849f18c6fbd22dcbe03af78b15ceddda0d1bbbdd3362769f50e98680fce54b7e84a94f324666a6967fc80f2e5e9ca94f617f01163a1601c62219fcb5678266e1c618ca8947e74a2ade5e40daeb8df5620f365f66aeae88afb42d70ce4145ebafa758accc19e278bc9f45da63859c46ebdf7f0ee2e3fd9dd5414deb8607d7ec556568301d2650780be7f75fcdf92441cb98f23648b5ed3f3a5e2c96daaac1da0ce46e1d85b5c2cff4d9a9167d5815fcc66bbd945f0b55874195acbbbfecf80f26b70a4cf662f955ea4e01351faa9f5300cf35c72ae60915062ceff7891e7677519196bf813333361dbbeecfe8dc127a94c20b9faf036d71a816b1ab72e82019d0699b012a126022cc703136638dc8674905b4100e9b8d62abdeb13c84be300b49ae44fcea4b892fbf6564cdb012699e9fd1c964f2a9d7f312656b47e6916682b0044157f4e2dfb9d5f55d68495d763c807d8ec6932e560c913ab76fc3ff820202ae44facbda1aa153108f168e421bdb1a93c382edf08cc79c5b711ae13c6eb8e54393f4998ec99a95ae7f85999e78439ba603445545f21ffc856207eea9455fb14c0ad967f22cf0f572dba5cac7450e4e52ce713ce871fc76d7adca01260ea708da434001805bcfd1f3ccd1c6084d5ec2a29f00e77aa4f91dee13eeb5fcce8e82a103b37f6c4f2525951eaad449a08a75d2f341f17b2cbdf1730d192ef758a6e8f883d88c07f2ef41b443daa795000244263d2d30c762f6fecf3bb67f8dda6ca7d9d40a18e18626853c5094ef66ed64617ee9388c037a74a961692d4470796a683f880eb9041060acee4e7618b717a057951e1c662362fd26709bd80af39fe5c11f9654c2655b21edcc32428491dc5c101e6a222d2e51b9f23d960f12748d9a5fc3e2f6c953972347656a9f787ee5bd196445aa2eaf8f8fbdafaa34ed1b055a09b3718d8b3c8f1cfe5ac53cf37c9fa76fe7ac7087157bdba523e2a9e710b3f5b5a7ff9b8b1f612d9bbbb1104f9d6df98787e92523fe1d30101edf53d89df4a3c42bd3bd2737f3afe0154ee1e8d93d9a2775d84c686dac8984512cf9559623ac6fe4ef79f7b34b21969a8a8a7243f41e11a58de3e4e18f3385ee7003c79fa527b94e72338f2a1c4c45ff045a611fe1db3cdda0fef121f78c527534dab266dd3ff6f73d6b6bc03998309830510a57eb0e2d74de38112775b8775d99c15e38d0e709f397492fc6462f6e57a7ff65d25be9eb7530a5ef4fc807ff9e09b701b59d250b541a546db75d111f560a47217c122c6b2928d5a0a047a988b3ac5131df0096c15bbc398d0e6965841b17f491635885d8987a04bbe2482157b5ca883c767ea156b4e1784ba1b7cfeb343a71eb03ebce88792aed8b18e7fd880cd5934cbe55523c1b7c82b3ed99b3de90a479f251e1904ac86f28021957ef35421d3c8a2d39eee7314e3f3f945ea2fb5ff7f6c09ba472ff3e562c6168b0c1f843658bb180ebfcf954e58e633fb1612751bf360b15fe67ca594f5aae34233a3b58eeba562fad63") test$length10(&(0x7f0000fff000/0x1000)=nil, 0x1000, 0x1000, 0x800, 0x400) syz_compare(&(0x7f0000000000)='\'/+,\x00', 0x5, &(0x7f0000000040)=@bf5={0x1c, {0x1, 0x3}}, 0x8) syz_compare_int$2(0x2, 0xffff, 0x100) syz_errno(0xfffffff9) syz_execute_func(&(0x7f0000000080)="feaa0e278d403f03c2bf80488676754e435032f81eee19ffa3f48ca758e82b077289834eb79be67b6cf437e2d9b101f397d7") syz_exit(0xffffffc0) syz_mmap(&(0x7f0000ffc000/0x1000)=nil, 0x1000) syz_sleep_ms(0x1) syz_test_fuzzer1(0xd, 0xc, 0xb) 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 #ifndef SYS_breaks_returns #define SYS_breaks_returns 0 #endif #ifndef SYS_foo #define SYS_foo 0 #endif #ifndef SYS_serialize2 #define SYS_serialize2 0 #endif #ifndef SYS_test #define SYS_test 0 #endif 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[] = "./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 { pthread_mutex_t mu; pthread_cond_t cv; int state; } event_t; static void event_init(event_t* ev) { if (pthread_mutex_init(&ev->mu, 0)) exit(1); if (pthread_cond_init(&ev->cv, 0)) exit(1); ev->state = 0; } static void event_reset(event_t* ev) { ev->state = 0; } static void event_set(event_t* ev) { pthread_mutex_lock(&ev->mu); if (ev->state) exit(1); ev->state = 1; pthread_mutex_unlock(&ev->mu); pthread_cond_broadcast(&ev->cv); } static void event_wait(event_t* ev) { pthread_mutex_lock(&ev->mu); while (!ev->state) pthread_cond_wait(&ev->cv, &ev->mu); pthread_mutex_unlock(&ev->mu); } static int event_isset(event_t* ev) { pthread_mutex_lock(&ev->mu); int res = ev->state; pthread_mutex_unlock(&ev->mu); return res; } static int event_timedwait(event_t* ev, uint64_t timeout) { uint64_t start = current_time_ms(); uint64_t now = start; pthread_mutex_lock(&ev->mu); for (;;) { if (ev->state) break; uint64_t remain = timeout - (now - start); struct timespec ts; ts.tv_sec = remain / 1000; ts.tv_nsec = (remain % 1000) * 1000 * 1000; pthread_cond_timedwait(&ev->cv, &ev->mu, &ts); now = current_time_ms(); if (now - start > timeout) break; } int res = ev->state; pthread_mutex_unlock(&ev->mu); return res; } #define BITMASK(bf_off,bf_len) (((1ull << (bf_len)) - 1) << (bf_off)) #define STORE_BY_BITMASK(type,htobe,addr,val,bf_off,bf_len) *(type*)(addr) = htobe((htobe(*(type*)(addr)) & ~BITMASK((bf_off), (bf_len))) | (((type)(val) << (bf_off)) & BITMASK((bf_off), (bf_len)))) static long syz_mmap(volatile long a0, volatile long a1) { return (long)mmap((void*)a0, a1, PROT_READ | PROT_WRITE, MAP_ANON | MAP_PRIVATE | MAP_FIXED, -1, 0); } static long syz_errno(volatile long v) { errno = v; return v == 0 ? 0 : -1; } static long syz_exit(volatile long status) { _exit(status); return 0; } static long syz_sleep_ms(volatile long ms) { sleep_ms(ms); return 0; } static long syz_compare(volatile long want, volatile long want_len, volatile long got, volatile long got_len) { if (want_len != got_len) { errno = EBADF; goto error; } if (memcmp((void*)want, (void*)got, want_len)) { errno = EINVAL; goto error; } return 0; error: return -1; } static long syz_compare_int(volatile long n, ...) { va_list args; va_start(args, n); long v0 = va_arg(args, long); long v1 = va_arg(args, long); long v2 = va_arg(args, long); long v3 = va_arg(args, long); va_end(args); if (n < 2 || n > 4) return errno = E2BIG, -1; if (n <= 2 && v2 != 0) return errno = EFAULT, -1; if (n <= 3 && v3 != 0) return errno = EFAULT, -1; if (v0 != v1) return errno = EINVAL, -1; if (n > 2 && v0 != v2) return errno = EINVAL, -1; if (n > 3 && v0 != v3) return errno = EINVAL, -1; return 0; } static void loop(); static int do_sandbox_none(void) { loop(); return 0; } static void fake_crash(const char* name) { exit(1); exit(1); } static long syz_test_fuzzer1(volatile long a, volatile long b, volatile long c) { if (a == 1 && b == 1 && c == 1) fake_crash("first bug"); if (a == 1 && b == 2 && c == 3) fake_crash("second bug"); return 0; } 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 < 18; 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(); } void execute_call(int call) { switch (call) { case 0: inject_fault(1); syscall(SYS_breaks_returns); break; case 1: syscall(SYS_breaks_returns); break; case 2: *(uint8_t*)0x20000000 = 0x20; *(uint16_t*)0x20000001 = htobe16(8); *(uint32_t*)0x20000003 = htobe32(7); *(uint64_t*)0x20000007 = htobe64(0x7fffffff); syscall(SYS_test, /*a0=*/0x20000000ul, 0, 0, 0, 0, 0); { int i; for(i = 0; i < 4; i++) { syscall(SYS_test, /*a0=*/0x20000000ul, 0, 0, 0, 0, 0); } } break; case 3: *(uint64_t*)0x20000040 = 0x20ffe000; *(uint64_t*)0x20000048 = 0x2000; syscall(SYS_test, /*a0=*/0x20000040ul, 0, 0, 0, 0, 0); break; case 4: *(uint64_t*)0x20001280 = 0x20001240; *(uint64_t*)0x20001240 = 0x20000600; *(uint64_t*)0x20000600 = 0; *(uint64_t*)0x20000608 = 0x200005c0; *(uint64_t*)0x200005c0 = 0x20000080; *(uint64_t*)0x20000080 = 0; *(uint64_t*)0x200005c8 = 0; *(uint64_t*)0x200005d0 = 0x20000180; *(uint64_t*)0x20000180 = 0x200000c0; *(uint64_t*)0x200000c0 = 0; *(uint64_t*)0x200000c8 = 0; *(uint64_t*)0x200000d0 = 0; *(uint64_t*)0x200000d8 = 0; *(uint64_t*)0x20000188 = 0x20000100; *(uint64_t*)0x20000100 = 0; *(uint64_t*)0x20000108 = 0; *(uint64_t*)0x20000110 = 0; *(uint64_t*)0x20000118 = 0; *(uint64_t*)0x20000190 = 0x20000140; *(uint64_t*)0x20000140 = 0; *(uint64_t*)0x20000148 = 0; *(uint64_t*)0x20000150 = 0; *(uint64_t*)0x20000158 = 0; *(uint64_t*)0x20000198 = 0; *(uint64_t*)0x200005d8 = 0x200002c0; *(uint64_t*)0x200002c0 = 0x200001c0; *(uint64_t*)0x200001c0 = 0; *(uint64_t*)0x200001c8 = 0; *(uint64_t*)0x200001d0 = 0; *(uint64_t*)0x200001d8 = 0; *(uint64_t*)0x200002c8 = 0x20000200; *(uint64_t*)0x20000200 = 0; *(uint64_t*)0x20000208 = 0; *(uint64_t*)0x20000210 = 0; *(uint64_t*)0x20000218 = 0; *(uint64_t*)0x200002d0 = 0x20000240; *(uint64_t*)0x20000240 = 0; *(uint64_t*)0x20000248 = 0; *(uint64_t*)0x20000250 = 0; *(uint64_t*)0x20000258 = 0; *(uint64_t*)0x200002d8 = 0x20000280; *(uint64_t*)0x20000280 = 0; *(uint64_t*)0x20000288 = 0; *(uint64_t*)0x20000290 = 0; *(uint64_t*)0x20000298 = 0; *(uint64_t*)0x200005e0 = 0; *(uint64_t*)0x200005e8 = 0x20000580; *(uint64_t*)0x20000580 = 0x20000300; *(uint64_t*)0x20000300 = 0; *(uint64_t*)0x20000588 = 0; *(uint64_t*)0x20000590 = 0x20000400; *(uint64_t*)0x20000400 = 0x20000340; *(uint64_t*)0x20000340 = 0; *(uint64_t*)0x20000348 = 0; *(uint64_t*)0x20000350 = 0; *(uint64_t*)0x20000358 = 0; *(uint64_t*)0x20000408 = 0x20000380; *(uint64_t*)0x20000380 = 0; *(uint64_t*)0x20000388 = 0; *(uint64_t*)0x20000390 = 0; *(uint64_t*)0x20000398 = 0; *(uint64_t*)0x20000410 = 0; *(uint64_t*)0x20000418 = 0x200003c0; *(uint64_t*)0x200003c0 = 0; *(uint64_t*)0x200003c8 = 0; *(uint64_t*)0x200003d0 = 0; *(uint64_t*)0x200003d8 = 0; *(uint64_t*)0x20000598 = 0x20000540; *(uint64_t*)0x20000540 = 0x20000440; *(uint64_t*)0x20000440 = 0; *(uint64_t*)0x20000448 = 0; *(uint64_t*)0x20000450 = 0; *(uint64_t*)0x20000458 = 0; *(uint64_t*)0x20000548 = 0x20000480; *(uint64_t*)0x20000480 = 0; *(uint64_t*)0x20000488 = 0; *(uint64_t*)0x20000490 = 0; *(uint64_t*)0x20000498 = 0; *(uint64_t*)0x20000550 = 0x200004c0; *(uint64_t*)0x200004c0 = 0; *(uint64_t*)0x200004c8 = 0; *(uint64_t*)0x200004d0 = 0; *(uint64_t*)0x200004d8 = 0; *(uint64_t*)0x20000558 = 0x20000500; *(uint64_t*)0x20000500 = 0; *(uint64_t*)0x20000508 = 0; *(uint64_t*)0x20000510 = 0; *(uint64_t*)0x20000518 = 0; *(uint64_t*)0x200005a0 = 0; *(uint64_t*)0x200005a8 = 0; *(uint64_t*)0x20001248 = 0x20001200; *(uint64_t*)0x20001200 = 0x20000680; *(uint64_t*)0x20000680 = 0x20000640; *(uint64_t*)0x20000640 = 0; *(uint64_t*)0x20001208 = 0x200009c0; *(uint64_t*)0x200009c0 = 0; *(uint64_t*)0x200009c8 = 0x20000980; *(uint64_t*)0x20000980 = 0x20000700; *(uint64_t*)0x20000700 = 0x200006c0; *(uint64_t*)0x200006c0 = 0; *(uint64_t*)0x20000988 = 0; *(uint64_t*)0x20000990 = 0x20000840; *(uint64_t*)0x20000840 = 0x20000740; *(uint64_t*)0x20000740 = 0; *(uint64_t*)0x20000748 = 0; *(uint64_t*)0x20000750 = 0; *(uint64_t*)0x20000758 = 0; *(uint64_t*)0x20000848 = 0x20000780; *(uint64_t*)0x20000780 = 0; *(uint64_t*)0x20000788 = 0; *(uint64_t*)0x20000790 = 0; *(uint64_t*)0x20000798 = 0; *(uint64_t*)0x20000850 = 0x200007c0; *(uint64_t*)0x200007c0 = 0; *(uint64_t*)0x200007c8 = 0; *(uint64_t*)0x200007d0 = 0; *(uint64_t*)0x200007d8 = 0; *(uint64_t*)0x20000858 = 0x20000800; *(uint64_t*)0x20000800 = 0; *(uint64_t*)0x20000808 = 0; *(uint64_t*)0x20000810 = 0; *(uint64_t*)0x20000818 = 0; *(uint64_t*)0x20000998 = 0x20000940; *(uint64_t*)0x20000940 = 0x20000880; *(uint64_t*)0x20000880 = 0; *(uint64_t*)0x20000888 = 0; *(uint64_t*)0x20000890 = 0; *(uint64_t*)0x20000898 = 0; *(uint64_t*)0x20000948 = 0x200008c0; *(uint64_t*)0x200008c0 = 0; *(uint64_t*)0x200008c8 = 0; *(uint64_t*)0x200008d0 = 0; *(uint64_t*)0x200008d8 = 0; *(uint64_t*)0x20000950 = 0x20000900; *(uint64_t*)0x20000900 = 0; *(uint64_t*)0x20000908 = 0; *(uint64_t*)0x20000910 = 0; *(uint64_t*)0x20000918 = 0; *(uint64_t*)0x20000958 = 0; *(uint64_t*)0x200009a0 = 0; *(uint64_t*)0x200009a8 = 0; *(uint64_t*)0x20001210 = 0x20000ac0; *(uint64_t*)0x20000ac0 = 0x20000a00; *(uint64_t*)0x20000a00 = 0; *(uint64_t*)0x20000a08 = 0; *(uint64_t*)0x20000a10 = 0; *(uint64_t*)0x20000a18 = 0; *(uint64_t*)0x20000ac8 = 0; *(uint64_t*)0x20000ad0 = 0x20000a40; *(uint64_t*)0x20000a40 = 0; *(uint64_t*)0x20000a48 = 0; *(uint64_t*)0x20000a50 = 0; *(uint64_t*)0x20000a58 = 0; *(uint64_t*)0x20000ad8 = 0x20000a80; *(uint64_t*)0x20000a80 = 0; *(uint64_t*)0x20000a88 = 0; *(uint64_t*)0x20000a90 = 0; *(uint64_t*)0x20000a98 = 0; *(uint64_t*)0x20001218 = 0x20000bc0; *(uint64_t*)0x20000bc0 = 0x20000b00; *(uint64_t*)0x20000b00 = 0; *(uint64_t*)0x20000b08 = 0; *(uint64_t*)0x20000b10 = 0; *(uint64_t*)0x20000b18 = 0; *(uint64_t*)0x20000bc8 = 0; *(uint64_t*)0x20000bd0 = 0x20000b40; *(uint64_t*)0x20000b40 = 0; *(uint64_t*)0x20000b48 = 0; *(uint64_t*)0x20000b50 = 0; *(uint64_t*)0x20000b58 = 0; *(uint64_t*)0x20000bd8 = 0x20000b80; *(uint64_t*)0x20000b80 = 0; *(uint64_t*)0x20000b88 = 0; *(uint64_t*)0x20000b90 = 0; *(uint64_t*)0x20000b98 = 0; *(uint64_t*)0x20001220 = 0x20000e80; *(uint64_t*)0x20000e80 = 0; *(uint64_t*)0x20000e88 = 0x20000c00; *(uint64_t*)0x20000c00 = 0; *(uint64_t*)0x20000c08 = 0; *(uint64_t*)0x20000e90 = 0x20000d40; *(uint64_t*)0x20000d40 = 0x20000c40; *(uint64_t*)0x20000c40 = 0; *(uint64_t*)0x20000c48 = 0; *(uint64_t*)0x20000c50 = 0; *(uint64_t*)0x20000c58 = 0; *(uint64_t*)0x20000d48 = 0x20000c80; *(uint64_t*)0x20000c80 = 0; *(uint64_t*)0x20000c88 = 0; *(uint64_t*)0x20000c90 = 0; *(uint64_t*)0x20000c98 = 0; *(uint64_t*)0x20000d50 = 0x20000cc0; *(uint64_t*)0x20000cc0 = 0; *(uint64_t*)0x20000cc8 = 0; *(uint64_t*)0x20000cd0 = 0; *(uint64_t*)0x20000cd8 = 0; *(uint64_t*)0x20000d58 = 0x20000d00; *(uint64_t*)0x20000d00 = 0; *(uint64_t*)0x20000d08 = 0; *(uint64_t*)0x20000d10 = 0; *(uint64_t*)0x20000d18 = 0; *(uint64_t*)0x20000e98 = 0x20000e40; *(uint64_t*)0x20000e40 = 0x20000d80; *(uint64_t*)0x20000d80 = 0; *(uint64_t*)0x20000d88 = 0; *(uint64_t*)0x20000d90 = 0; *(uint64_t*)0x20000d98 = 0; *(uint64_t*)0x20000e48 = 0x20000dc0; *(uint64_t*)0x20000dc0 = 0; *(uint64_t*)0x20000dc8 = 0; *(uint64_t*)0x20000dd0 = 0; *(uint64_t*)0x20000dd8 = 0; *(uint64_t*)0x20000e50 = 0x20000e00; *(uint64_t*)0x20000e00 = 0; *(uint64_t*)0x20000e08 = 0; *(uint64_t*)0x20000e10 = 0; *(uint64_t*)0x20000e18 = 0; *(uint64_t*)0x20000e58 = 0; *(uint64_t*)0x20000ea0 = 0; *(uint64_t*)0x20000ea8 = 0; *(uint64_t*)0x20001228 = 0x200011c0; *(uint64_t*)0x200011c0 = 0x20000f00; *(uint64_t*)0x20000f00 = 0x20000ec0; *(uint64_t*)0x20000ec0 = 0; *(uint64_t*)0x200011c8 = 0x20000f40; *(uint64_t*)0x20000f40 = 0; *(uint64_t*)0x20000f48 = 0; *(uint64_t*)0x200011d0 = 0x20001040; *(uint64_t*)0x20001040 = 0x20000f80; *(uint64_t*)0x20000f80 = 0; *(uint64_t*)0x20000f88 = 0; *(uint64_t*)0x20000f90 = 0; *(uint64_t*)0x20000f98 = 0; *(uint64_t*)0x20001048 = 0x20000fc0; *(uint64_t*)0x20000fc0 = 0; *(uint64_t*)0x20000fc8 = 0; *(uint64_t*)0x20000fd0 = 0; *(uint64_t*)0x20000fd8 = 0; *(uint64_t*)0x20001050 = 0; *(uint64_t*)0x20001058 = 0x20001000; *(uint64_t*)0x20001000 = 0; *(uint64_t*)0x20001008 = 0; *(uint64_t*)0x20001010 = 0; *(uint64_t*)0x20001018 = 0; *(uint64_t*)0x200011d8 = 0x20001180; *(uint64_t*)0x20001180 = 0x20001080; *(uint64_t*)0x20001080 = 0; *(uint64_t*)0x20001088 = 0; *(uint64_t*)0x20001090 = 0; *(uint64_t*)0x20001098 = 0; *(uint64_t*)0x20001188 = 0x200010c0; *(uint64_t*)0x200010c0 = 0; *(uint64_t*)0x200010c8 = 0; *(uint64_t*)0x200010d0 = 0; *(uint64_t*)0x200010d8 = 0; *(uint64_t*)0x20001190 = 0x20001100; *(uint64_t*)0x20001100 = 0; *(uint64_t*)0x20001108 = 0; *(uint64_t*)0x20001110 = 0; *(uint64_t*)0x20001118 = 0; *(uint64_t*)0x20001198 = 0x20001140; *(uint64_t*)0x20001140 = 0; *(uint64_t*)0x20001148 = 0; *(uint64_t*)0x20001150 = 0; *(uint64_t*)0x20001158 = 0; *(uint64_t*)0x200011e0 = 0; *(uint64_t*)0x200011e8 = 0; *(uint64_t*)0x20001288 = 0; syscall(SYS_test, /*a0=*/0x20001280ul, 0, 0, 0, 0, 0); break; case 5: syscall(SYS_foo, /*a0=*/0x200012c0ul, /*a1=*/0x20001300ul, /*a2=*/0x20001340ul); break; case 6: syscall(SYS_breaks_returns); break; case 7: syscall(SYS_test, /*a0=*/0x20ffe000ul, /*a1=*/0, /*a2=*/0x1000, /*a3=*/0x800, /*a4=*/0x400ul, 0); break; case 8: memcpy((void*)0x20001380, "\xb3\xeb\x98\x0b\x12\xaf\x03\x68\x48\x32\xff\x0d\x13\x67\xb0\x5d\xed\x25\x0f\x35\x0b\xff\xb9\xc6\x72\x43\xa4\xa2\x6c\xac\x6a\x56\x64\xba\x93\xce\x0c\x5f\xfc\xa8\x1d\x81\xc8\xa8\xa1\x84\x16\x56\x6c\x33\xd0\x0a\x99\x9b\xaf\x45\xad\x35\x17\x40\x79\x5a\x1a\x3a\x7f\x59\xab\xe5\x9a\xc2\x18\xf6\xe2\x04\xdc\x13\x29\xf1\x58\xd3\x6e\x4d\x0c\x86\x20\x0e\x4d\x8b\x5d\xbd\xa2\x75\xd2\x0e\x53\x15\xc5\x2e\x12\x89\x56\x63\xd7\xe5\xf4\xad\x1f\x0d\x1a\x8a\xc3\x01\x4e\xb4\x60\x3f\x30\x44\x5a\x97\x5d\x0a\x77\xfe\xec\x81\xe4\xe9\x9b\xd7\x1a\xca\xd6\x46\xcb\x04\xb6\x08\x19\xe8\xec\x24\xa8\xa2\xdb\x39\x09\x68\x8b\xb2\x84\x16\x28\x72\xbc\x71\x5c\x3e\xf9\x86\x3a\x13\xd6\x0f\x4e\x3a\xcd\x69\x54\xf1\xff\x26\x8e\xee\x5c\xbe\x35\x46\x5b\x4e\x65\xc6\x0d\xbf\x3d\xa3\x56\x89\xaf\x39\xd3\xdc\x0d\x9d\x22\x26\x40\x61\x47\xfe\xcc\xad\x22\xfd\x6d\x92\x55\xa8\xb9\x21\x78\xc6\xaf\xa7\xaa\x2d\xec\xd0\xae\x46\xec\x45\xc9\xbb\xf6\xe5\x3f\xea\xd2\xd6\x82\xd7\x15\x17\x5b\xa6\x08\xf8\x4b\xa1\x4d\x9a\x28\xc5\xe4\x7e\xbd\x82\x9a\x76\xbc\xa0\xc2\x82\x1b\x0e\x29\x91\x5a\x28\x89\xe0\x01\xa2\x01\x52\x4f\xcf\x62\x45\xad\xcf\x4d\x32\x6d\x69\x17\x6d\x7f\xa2\x7e\xd8\xd5\x93\xe2\x5e\xef\x7a\xfa\xa1\x47\x9e\x50\x63\x48\xf0\xa6\x75\x36\x97\x03\x4b\x9c\x60\x9f\x46\x51\x46\xf9\x56\x9d\xdd\x56\xaf\xf7\xfc\x2f\xad\xef\xb8\x9f\xa2\xd2\xd4\xb8\x38\xe7\xd6\x32\x00\x09\x7b\x77\xed\x52\xd9\xc3\x1c\x98\xfd\x76\xf9\x46\x7f\xf5\x11\x6c\xa0\x0f\x85\x84\x6a\x91\xbe\xf6\x94\x19\xaa\xc6\xeb\xc7\xdd\xfb\xa2\xb2\x68\xbf\xe2\x62\xf6\xf5\x5d\x52\xa6\x47\xaf\x8a\x0b\x45\x39\x1b\xa9\xdf\x09\xe2\x56\x64\x01\x9b\x41\x07\xa2\x31\xee\x76\x1a\x81\x96\x0c\x11\x98\xf5\x20\x9e\x3c\x37\x07\xd7\x68\xb8\xd0\x99\xee\xe5\x63\x05\x5a\x88\xc3\x04\x9f\x5a\xdd\xf8\x74\x7a\x2d\xfd\x6f\x3b\x43\xc5\xc2\x5d\xf5\x0c\x8a\x4b\x77\x87\x2a\x8d\x89\x05\xdf\xa0\x88\x5a\xdd\xdb\x8f\xd4\x9e\x29\x73\x52\x62\xb1\xc9\x4e\xa5\x9c\xe0\xce\xa5\xa0\x61\xfb\xb0\x42\xc7\xe3\x01\xe2\x92\x12\xf2\xf1\x47\x6e\x7c\x25\x31\x7c\xb5\xfa\x81\x77\x4d\x78\xb2\x0e\xfe\xa3\x77\xd4\xfb\xfd\xb1\x90\xcc\x1f\xd5\x8f\x56\x8e\x6a\xc1\x9b\xe0\x5d\x99\xc8\x36\x24\x28\xf5\x9f\x47\x31\x1a\xbf\x17\x8f\x6b\x08\x36\x45\xcc\xf0\x13\x62\x4a\x41\x8b\x8d\x9f\xec\xfa\x26\xf7\xdc\xba\x32\xb4\x39\x54\x49\xc0\xd1\xef\x6f\xa3\x7f\x33\xfa\x5e\xa6\x01\x92\xbb\x5c\xe9\x2e\x45\x8d\x90\xce\xdf\x0e\x85\x78\x78\x11\xc6\x4b\xd0\x43\x6f\x4c\x5c\xa0\x1f\xac\xae\x7b\x79\x3d\x69\x64\x42\x98\x28\x41\xf6\xe8\x3f\x60\x3d\x58\x06\x74\x2a\x4e\xc7\xac\xb4\x06\xc5\x5b\x27\xaa\xad\x7a\x62\x8e\xb2\xf4\x1f\x80\x07\xc0\xe3\x72\x8f\xa1\xf4\x01\x94\xd2\x71\x39\x2f\x6c\x7f\x68\x4e\x1d\xbe\x23\x9c\xf6\xc5\x01\xbd\x4f\x4f\x64\x31\x53\xb4\xe7\xbd\x32\xff\x4b\x3d\xb3\x61\xfe\x9c\x4a\x87\xb4\xd7\x49\x2e\xef\x74\x9b\xd1\x8c\x6a\x44\xda\xba\x60\x54\x2d\xea\xdc\x45\xcb\xfa\x8a\x46\xb8\xd2\x52\x67\x0e\xe3\x12\xed\xe5\x3b\xb5\x16\xf0\x00\x0c\xc2\x50\x09\xf4\xd4\xe7\x4c\x6f\x61\x30\x6c\x34\x4a\x9b\xa4\x8f\xa2\xa2\xd7\x0f\x3e\x1a\xc0\x18\xf9\xc0\xd1\x5d\xda\xaf\xb5\xcf\x89\x86\x7c\xa6\xbf\x6b\x37\x42\x7c\x47\x7e\xec\x1a\xcb\x7f\x36\x9b\x94\x22\xa8\x85\x8e\xbc\x2f\x3a\x10\xa9\xe9\x0a\xea\x0f\x4d\xf8\x2a\xb2\xe8\xd1\x0d\xff\xcb\x99\x89\x2a\x81\x55\xb4\xf8\xaf\xf7\x9e\x93\xdf\x24\x84\x8a\xef\x03\x5e\x85\xd5\x70\x48\xc7\xc9\x3f\xe5\x44\xe3\xef\x17\x54\xc4\x92\x40\x57\x3a\xc1\xea\x67\xb9\x4d\x85\x74\x54\x2d\xff\x03\xf0\x6b\xfe\xdc\x3f\x51\xc6\x20\x40\x28\x61\xf7\x77\xfa\x47\xbc\x05\xc8\x65\xa6\xe6\x3a\xb4\x8e\x70\xc4\xb3\x14\xe6\xf8\x09\x53\xcb\x1a\x22\xb9\x22\x6a\x1b\x3c\xc0\x84\x73\x6b\x2a\x82\x6a\x7f\xc8\x41\x02\x3e\xaa\x56\x44\x8d\x94\x75\x7b\x01\x38\x33\xc5\x3e\x18\x2c\x1d\xe0\x66\x87\x87\x01\xde\xf7\x3b\xdd\x13\xd7\x40\x45\x65\xdc\xc3\x17\xae\x65\x03\x83\xb3\xea\x7d\x5e\x6a\xed\x3d\xbf\x57\x5a\x2c\xa5\x13\x28\x50\xe3\x94\xad\xeb\x9f\xee\x10\x87\x19\x37\x83\x20\xb9\xb4\xe0\xc5\xa6\xdd\xc7\x75\x94\xa8\x02\x41\x51\xb3\xa6\xd3\x22\xfb\x48\xe5\xdb\x7f\x0f\xb0\x4a\x91\x49\xfb\x27\x8e\xd9\xd8\xad\x19\xb1\xb8\xa2\x68\xcb\xa4\xb3\x00\xe9\x31\x39\xf2\xb6\x11\xbb\x77\x79\x83\xb7\x4d\x6f\xac\x85\x2d\x74\x3f\xb5\x01\x1f\x9b\xf2\xbf\xd3\xf4\x31\x4c\xdc\x9b\x1e\x71\xc6\x5e\xa7\x6e\x49\x53\xaf\x36\xbc\xb4\xb9\x64\x9a\xa0\xee\xaa\x6c\x89\x2e\x17\x0d\x32\x85\x24\x17\x08\x59\x4a\x91\xbd\xec\x0f\xde\xdd\x97\x4b\x42\x20\xb4\xb7\x0a\x5a\x93\x99\x38\x52\x7c\x6e\x6e\xf8\x23\xb3\x62\x56\xc1\x36\x9f\xbe\xed\x64\xa9\x0e\x8b\xe5\x45\xea\xc8\x96\x8c\x76\x41\x39\xcc\xd4\xdc\x59\x01\xbc\x01\x99\x85\xaa\xb5\xfe\x71\xe2\x4c\x55\xf2\x60\xc4\xc4\xb7\xfd\x5c\xf5\x28\x8b\x13\xdc\xda\x57\xbb\x34\x50\xfb\x4f\x6e\xce\x5e\x7c\x4a\x0a\x21\xff\xf3\x12\x4c\x3c\x78\x3a\xfa\x87\x44\xf6\xca\x3f\x5c\x3d\xe5\xb4\xc1\x54\xce\xa1\x2b\xa4\x7c\x3c\x69\x4e\xa8\x30\x3a\x8d\x7c\x85\x10\x08\x9c\xc1\x60\x9a\x82\xe6\xa7\xe0\x89\xf6\x3a\xfd\x05\x85\xd3\xf5\xab\xa2\x26\x34\xdd\x7c\x95\x79\x36\x4d\xa1\xd9\x3a\x99\x5f\x77\x06\xda\x20\x8d\x65\xb9\x48\xd7\x46\x13\xe0\xe4\xf8\xc7\x79\x74\xdb\x27\x2e\xdf\x2f\x8d\x52\x91\xcd\x3a\xf0\xd0\xad\xee\xcc\x16\x35\x85\x16\x1b\xc8\xec\x9b\x62\x82\x3f\xeb\x86\x4a\x8f\xfa\x00\x12\x07\x19\x98\x19\x07\xc0\x27\xef\x41\xa9\xc5\xeb\xef\x88\x41\x1b\x42\x0e\x2c\x60\x41\xe9\x4d\xba\xe9\x38\x8f\x72\xdb\x00\x89\xd4\x73\x3c\xed\xc3\x68\xcd\x1d\x68\x05\x63\x4c\x80\xbf\xfb\x9c\x34\x30\xf4\x02\xb7\x3f\xff\x1d\x6c\xf3\x55\xb9\x50\x9c\x1b\xfd\x48\xe7\x9b\x14\x17\x14\x1c\x9b\x9a\xb1\xc0\xf6\x2a\x4c\xf9\x7b\xae\x55\xfe\x53\xaf\xea\x35\x3c\x10\x61\xbb\x88\x2e\x10\x1d\x74\x34\xb3\x9b\xe6\x55\x8e\x77\xea\x26\xb4\x4b\x50\x7c\x2c\x44\xdd\x0a\x62\x5c\x04\x4b\x0a\x78\xee\x23\x64\x86\x28\x42\xd9\xef\x0f\x1b\xcb\x56\x3f\x01\xad\xbd\xee\x69\xe5\x2d\x02\x28\x56\xad\x65\x04\xd8\x11\xe8\x49\xab\x47\x0d\x61\x3d\xa0\xce\x95\x10\x03\x52\x98\x22\xad\xc1\x02\xc4\xc6\x2a\x3a\xad\x2f\x73\x92\xaa\x46\x01\xab\x08\x63\x15\x0c\x35\x8a\xee\xc2\xfc\x5e\x3a\x90\x6d\xf0\x0f\xe5\xdb\x12\x26\xba\xc2\x0f\x08\xd7\x01\xf1\x81\xb9\x0a\x4d\x38\x9b\x91\xdd\xdb\xc2\x4e\x40\x48\x8e\x1c\x46\xab\x2d\x05\xb4\x82\x30\x29\x45\x3c\xc9\x25\x3e\xbc\x43\x70\x96\x4a\x64\xc1\x08\x7c\xb3\x85\x7d\x73\x6d\xc3\x03\xce\x93\x06\x6d\xb6\x0f\xc6\x1b\xe9\xf7\x9c\x0c\x9e\x1c\xa7\xe4\xd7\x3f\x95\x17\x2b\xcb\xaf\x6c\xbd\x18\xc0\x6d\x1c\x1c\xcc\xf2\x3d\x85\x59\x2e\xe6\x84\x43\x49\xb5\xe7\x2e\x6a\x5e\x10\xf5\xee\xd5\xec\xa8\xf9\xc0\xa8\xa9\x5e\x21\x43\x89\x53\x01\x94\xa0\x30\x43\xb2\x11\x08\xa4\x9e\x34\x66\xce\xbe\x30\x78\xda\xdd\x36\x4f\xaf\x67\xfe\x3c\x51\xe1\xdf\x75\xf4\xaa\x61\x98\x54\xb7\x80\xe0\xc0\x4e\x9a\x9b\xf2\x30\x1c\x03\x0a\x36\x26\xce\x82\x0a\xfc\x59\xe1\xc1\x3e\xd6\xfa\x3e\x30\x30\xb9\x66\xf3\x87\x8f\x17\xa1\x6a\x12\x09\x98\x7a\xa9\xf7\xeb\x76\x98\x8d\x40\x1f\x10\xbd\xb0\xa4\x19\xdd\xce\xd1\x10\x56\x59\xe6\x21\x94\x40\xe3\x5e\x98\x4c\x3e\x7a\xda\x78\xc3\x0a\x9a\x73\x99\xce\x1a\xbc\xe3\x6c\x7c\xe3\xe3\x9a\x89\xcf\xac\x98\xf2\x49\x73\x59\x14\xcf\xc1\x6b\xaf\x66\x6e\xd4\xb5\x1f\xf2\x19\x3c\x28\x36\xbd\x43\xe5\xd5\x37\xf2\x65\x36\x46\xf0\x5c\x81\x09\xef\x8e\xdf\xd3\x5b\x3a\xcd\x73\xeb\x7e\x79\x0c\x64\xcc\x2a\x7c\x95\x96\xe4\xa5\xf3\xd0\xe2\xd9\x2b\x30\x1c\x9e\xc5\xd8\x27\x68\xab\x21\x18\x01\xbe\xa9\x63\x40\xc3\x0e\x1b\x09\xfc\x9f\xae\x7c\xff\x26\x15\xd6\x1e\xde\x29\xf9\xb0\xd7\x12\xab\xff\xcd\x93\xea\x3b\x20\xce\xb7\xaa\x57\x36\x8e\x84\xc3\x87\x6e\xcd\x7a\x93\x1c\xb1\x9e\xa5\x17\x60\x3e\xf4\x4a\x98\xb2\x46\x28\x8b\x27\x33\x69\x80\xe4\xbb\x50\x90\x07\xbc\xd0\x18\x58\xcd\x35\xe9\xcd\x8d\xf2\x88\x22\x1d\x3a\x48\x72\x68\x82\x8f\xe7\x32\xfd\x7d\xa2\xe2\xb6\x92\x6b\x4a\x9b\x54\xd5\x4b\x41\xc7\x79\x98\xd1\xef\x53\x84\x87\xe1\xdc\xdf\x87\xfc\xc3\xfa\xb2\x5c\x77\xa7\xcf\x01\xf8\x60\x87\xe2\xb9\x5e\x1e\x4d\x45\x52\x2f\xc3\xf4\x4a\x14\xcb\xfa\xcd\x48\xd6\x3e\xba\x04\x2c\xa3\xe1\x4a\xf8\xe5\xbe\xd3\x18\x6d\xe4\xfb\x69\xf3\x87\xaa\xc8\x82\x42\xd6\x4f\xbd\xcd\x11\x0c\x33\x88\x21\xad\x72\x56\x2f\x09\x2f\x55\xfa\x73\xb5\xe7\xd9\x2c\x9b\x6f\xee\x57\x94\xef\x48\x23\x19\x0f\x92\x57\xb1\x1f\xf4\xfc\x44\x57\xdb\xa9\x0f\xbd\xa8\x0d\xaf\xb5\x17\xfa\x27\x51\x94\x89\x01\x6f\x6f\x45\x80\x06\x40\x1f\x9f\xea\x20\x42\x6a\x54\x5a\xab\x77\x84\xc4\xe3\xdf\x9d\xfa\x9f\xb2\x79\xcf\x21\xa8\x6c\xe3\xf2\x92\xcf\x52\xd3\x43\xfc\xe9\x7e\x05\xb9\x2c\x84\x72\x3d\x7d\xdc\x65\xa7\xbc\x79\xae\x73\xb1\x24\x6b\x6b\x65\x04\x8a\x38\x55\xb6\x2b\x13\x40\x26\x46\x27\xc1\xdf\x82\xf3\x35\x2f\x3a\xc6\xd5\xa7\x5e\x08\x23\x57\x2c\x2f\xb3\x92\xbd\x7e\xf1\x51\x93\xcc\x5f\x6f\xbe\xfc\x4d\x27\xff\xd7\x41\xa9\x3d\x1a\xb7\x99\xd9\xfb\xd5\x45\xd2\xd2\x60\x6e\x35\x66\xeb\x79\xd5\x44\x85\xf5\x56\x15\x10\xa5\x7f\x17\xf2\xb3\x90\x9e\xd1\xbf\xc5\xe5\xd6\x46\x92\xb6\xc5\x03\xeb\x58\xf1\x7c\xae\x55\x41\x37\x60\x74\x67\xe8\xab\x51\xd8\x67\x06\x7f\x50\x37\x4e\x99\xf7\x48\x69\xe0\x17\x7f\x4e\xb5\x2c\x29\x30\xdf\xe5\xca\x2b\x6e\x45\x4d\xb8\xa3\x62\x25\xb2\xc9\x36\xbd\xc5\xbb\x75\xf1\x35\x5f\xfd\x8d\x7f\xa4\x76\xeb\x28\x28\x71\xe5\x21\x11\x83\x2f\xcf\xc2\x46\xda\x41\x5c\x20\x0d\x9e\x6c\x35\x0f\x49\x84\x6a\x00\x22\x66\x01\x91\xa2\x84\x0d\x7a\x53\x75\x36\x74\xc7\x8e\xa0\x0a\x5b\x9e\x26\x6f\xf2\x9b\x1a\x8f\xb1\x93\xe1\x32\xd2\x3f\x96\x0c\xd9\xc8\x24\x9b\x94\x3f\xcd\xb8\x65\x39\x5b\x2c\x03\xab\x67\x5b\xbb\x19\x93\x81\x3f\xb0\xa8\xd1\xe6\x83\x31\x29\x7c\x88\xdb\x1d\xca\x00\x31\x3b\x82\x11\x12\x1b\x60\x23\x47\x5c\xb6\x9d\x6a\xc6\x6c\x11\x16\xa5\x61\x71\x35\x0f\x68\x0c\xc7\x4c\x88\xfe\x99\x05\xed\x07\x87\x80\xe6\xd7\x1b\xcc\x73\x5f\xee\x75\xa9\x44\x4f\x69\x5d\x03\x6a\xa6\xb4\xb9\xe5\x9b\x66\x80\xb6\x31\x29\x67\xf8\xb2\x36\xff\x8b\xee\x60\x31\x6a\x70\xcb\xa0\x31\x2c\x99\x3b\x92\xe3\x0c\xa4\xcb\x11\x8c\x17\x45\xe7\xb5\x78\xc0\xad\x6c\x3a\x7d\x81\x87\x37\x25\x95\xdd\x16\x08\x93\x11\x5f\x11\xb0\x54\xfc\x17\x18\xc9\x67\xbd\xaf\xe9\xbf\x95\xad\x58\x3d\xb5\x93\x96\xd5\x94\x11\x4b\x65\x00\x99\x6e\xef\xf8\x2b\x70\x19\x1e\x52\xfa\x23\x30\xef\xdc\x66\xfa\x36\x3c\xb3\x79\xc9\xc6\x77\x40\x53\x5c\x99\x60\xca\x85\x7c\xfe\x4d\x0a\x88\xbb\xbb\xf2\xe7\xb2\x03\x4b\xb8\x43\x98\x0f\x6f\xa8\x6f\xf6\x02\x33\x5d\x1e\x25\xa6\x13\xc7\xd7\xa4\xef\x7a\x6b\x16\x1c\x25\x82\x23\x9a\xa5\x6f\x5c\x89\x94\xd0\x66\x46\xe0\xaa\x62\xc4\x8b\x54\xe0\x85\x22\x23\x77\x2e\xd4\x4e\x70\x59\x69\x7a\xec\x6b\xc2\x22\x5e\x0e\xda\xc5\x5f\xdb\xff\x1a\x16\xd4\xc6\xde\xf4\xc7\x7d\xdf\x38\xb2\x77\x39\x52\xc8\x11\xff\x14\x5a\xe3\x66\xe2\x16\xc4\x16\x00\x65\x9f\xf7\x8f\x64\xb1\x9e\x35\x4d\x74\xf9\x0a\x61\x90\x7c\x85\xc7\x02\x39\x4f\xe2\xcc\xa4\xf5\xfe\xb5\xb5\x35\x30\xb5\xf4\xc9\xe7\x2f\x5c\x09\x0c\xa4\x64\xa7\xa9\xc3\x95\x14\x37\x35\xfd\xd2\x42\x1d\x07\xe8\xef\xe4\x19\x8a\xd0\x6f\x9d\x23\x0a\x91\xd5\xfb\x50\xef\xc0\x2c\x2d\xb6\xed\x4a\xd7\x50\x31\x9e\x3e\x67\x2f\x52\x13\xdd\xae\x92\xc3\xfc\xec\x0e\xd5\xdf\xf5\x22\xd0\xca\xb8\x9b\xb8\x25\x32\x54\x25\x55\x29\xb3\x2c\xf5\x38\x5c\x90\x01\x42\x1b\x92\xcc\x67\x16\x3c\xc3\x95\x23\x5e\x40\x8a\x46\x3f\xa3\x1e\xef\xd0\x74\x2d\xe5\x13\x9b\xba\x2d\xc1\x41\xff\xf7\xbe\x17\x5f\x41\x8c\xf7\xcf\x89\xdd\x4f\x47\x4a\x2f\xc6\x1d\x0f\x38\x51\xf3\x4d\x52\xc4\x9b\xbd\x12\x26\xbd\x08\x96\x30\x71\xf5\xd4\x91\x8f\x7e\x12\xd0\x02\x8d\x32\x1b\x3d\x6b\xd4\x36\xe0\x2f\x6e\x55\xcc\x48\xc6\x13\xe3\x29\x91\x6c\xb8\x54\x52\x44\xbb\xa3\x77\x90\x8d\x6b\xcf\xeb\x7e\xd6\x62\x08\xe5\x07\xb4\xdf\xd8\xf2\xcb\xa5\xa3\xd4\x2f\x3a\x4e\x4d\xa8\x0e\xba\x19\x9c\xc8\xae\xc8\xa4\x0f\x25\x47\x10\xd8\x11\x83\x24\x96\x75\x0c\x4b\x34\xc3\x6b\x74\x6b\xf3\xcb\x60\xda\xe8\x1e\x73\xda\x95\x2e\xe4\x1c\x2a\x40\x23\x72\xe5\x23\x9f\xd2\xd4\x07\xd8\xe9\x1b\x9e\x57\xb4\x75\x8a\xac\xe5\x9d\xf7\xd8\x3d\x38\xad\x17\x71\x6c\xae\x50\x9d\xdb\x24\x27\xcb\xcf\x84\x7a\x7b\x10\x8e\xdb\x4b\x3a\x70\x81\x71\xe7\x31\xa9\x77\x02\xb6\x37\x7c\x79\x34\xec\x9b\x4c\x74\x46\xea\x03\x1e\x62\xbb\x39\xa6\xe2\xd3\x20\xea\xa8\xb5\x91\x0b\x14\xd8\x82\x6c\x20\x4f\x7a\x4a\xb2\x36\x24\x0b\x48\x60\x66\xb2\x7b\xe7\xf6\x9b\x84\x42\xff\xc8\x03\xc4\xed\x7f\xdd\x23\xef\x2f\xa0\x33\x7d\xb8\x42\x68\x1c\x0f\x8e\xf2\xba\xdc\xc0\x81\x13\xfe\x80\x61\xab\x31\xfa\xf9\x89\xba\x55\x51\x2a\x5f\x0e\x7b\x93\x6d\x63\xc0\xcc\xed\x58\xef\x82\xcf\x0c\x2d\x29\xfb\x23\x18\xe1\x2b\x56\xd4\x91\x2e\x9c\x4f\x96\xdb\x02\xca\x84\x49\x29\x4d\xa3\x3f\x8f\xce\x55\x07\xd3\xeb\x99\x23\x90\x72\xe2\xb2\xe1\x2e\x33\x55\x35\x3b\xf4\x90\x18\x2e\xeb\x7a\xa1\x03\xc9\x77\xc0\x67\x01\xca\xa0\xb7\x44\x55\x11\x66\x89\xb9\xdb\xe9\x0a\xd1\xd1\x85\x39\xd5\xe4\x1a\xda\x0f\x2f\x7f\x1e\x6c\x9a\xa6\x7a\xa2\xaa\x41\x6f\x84\x9f\x18\xc6\xfb\xd2\x2d\xcb\xe0\x3a\xf7\x8b\x15\xce\xdd\xda\x0d\x1b\xbb\xdd\x33\x62\x76\x9f\x50\xe9\x86\x80\xfc\xe5\x4b\x7e\x84\xa9\x4f\x32\x46\x66\xa6\x96\x7f\xc8\x0f\x2e\x5e\x9c\xa9\x4f\x61\x7f\x01\x16\x3a\x16\x01\xc6\x22\x19\xfc\xb5\x67\x82\x66\xe1\xc6\x18\xca\x89\x47\xe7\x4a\x2a\xde\x5e\x40\xda\xeb\x8d\xf5\x62\x0f\x36\x5f\x66\xae\xae\x88\xaf\xb4\x2d\x70\xce\x41\x45\xeb\xaf\xa7\x58\xac\xcc\x19\xe2\x78\xbc\x9f\x45\xda\x63\x85\x9c\x46\xeb\xdf\x7f\x0e\xe2\xe3\xfd\x9d\xd5\x41\x4d\xeb\x86\x07\xd7\xec\x55\x65\x68\x30\x1d\x26\x50\x78\x0b\xe7\xf7\x5f\xcd\xf9\x24\x41\xcb\x98\xf2\x36\x48\xb5\xed\x3f\x3a\x5e\x2c\x96\xda\xaa\xc1\xda\x0c\xe4\x6e\x1d\x85\xb5\xc2\xcf\xf4\xd9\xa9\x16\x7d\x58\x15\xfc\xc6\x6b\xbd\x94\x5f\x0b\x55\x87\x41\x95\xac\xbb\xbf\xec\xf8\x0f\x26\xb7\x0a\x4c\xf6\x62\xf9\x55\xea\x4e\x01\x35\x1f\xaa\x9f\x53\x00\xcf\x35\xc7\x2a\xe6\x09\x15\x06\x2c\xef\xf7\x89\x1e\x76\x77\x51\x91\x96\xbf\x81\x33\x33\x36\x1d\xbb\xee\xcf\xe8\xdc\x12\x7a\x94\xc2\x0b\x9f\xaf\x03\x6d\x71\xa8\x16\xb1\xab\x72\xe8\x20\x19\xd0\x69\x9b\x01\x2a\x12\x60\x22\xcc\x70\x31\x36\x63\x8d\xc8\x67\x49\x05\xb4\x10\x0e\x9b\x8d\x62\xab\xde\xb1\x3c\x84\xbe\x30\x0b\x49\xae\x44\xfc\xea\x4b\x89\x2f\xbf\x65\x64\xcd\xb0\x12\x69\x9e\x9f\xd1\xc9\x64\xf2\xa9\xd7\xf3\x12\x65\x6b\x47\xe6\x91\x66\x82\xb0\x04\x41\x57\xf4\xe2\xdf\xb9\xd5\xf5\x5d\x68\x49\x5d\x76\x3c\x80\x7d\x8e\xc6\x93\x2e\x56\x0c\x91\x3a\xb7\x6f\xc3\xff\x82\x02\x02\xae\x44\xfa\xcb\xda\x1a\xa1\x53\x10\x8f\x16\x8e\x42\x1b\xdb\x1a\x93\xc3\x82\xed\xf0\x8c\xc7\x9c\x5b\x71\x1a\xe1\x3c\x6e\xb8\xe5\x43\x93\xf4\x99\x8e\xc9\x9a\x95\xae\x7f\x85\x99\x9e\x78\x43\x9b\xa6\x03\x44\x55\x45\xf2\x1f\xfc\x85\x62\x07\xee\xa9\x45\x5f\xb1\x4c\x0a\xd9\x67\xf2\x2c\xf0\xf5\x72\xdb\xa5\xca\xc7\x45\x0e\x4e\x52\xce\x71\x3c\xe8\x71\xfc\x76\xd7\xad\xca\x01\x26\x0e\xa7\x08\xda\x43\x40\x01\x80\x5b\xcf\xd1\xf3\xcc\xd1\xc6\x08\x4d\x5e\xc2\xa2\x9f\x00\xe7\x7a\xa4\xf9\x1d\xee\x13\xee\xb5\xfc\xce\x8e\x82\xa1\x03\xb3\x7f\x6c\x4f\x25\x25\x95\x1e\xaa\xd4\x49\xa0\x8a\x75\xd2\xf3\x41\xf1\x7b\x2c\xbd\xf1\x73\x0d\x19\x2e\xf7\x58\xa6\xe8\xf8\x83\xd8\x8c\x07\xf2\xef\x41\xb4\x43\xda\xa7\x95\x00\x02\x44\x26\x3d\x2d\x30\xc7\x62\xf6\xfe\xcf\x3b\xb6\x7f\x8d\xda\x6c\xa7\xd9\xd4\x0a\x18\xe1\x86\x26\x85\x3c\x50\x94\xef\x66\xed\x64\x61\x7e\xe9\x38\x8c\x03\x7a\x74\xa9\x61\x69\x2d\x44\x70\x79\x6a\x68\x3f\x88\x0e\xb9\x04\x10\x60\xac\xee\x4e\x76\x18\xb7\x17\xa0\x57\x95\x1e\x1c\x66\x23\x62\xfd\x26\x70\x9b\xd8\x0a\xf3\x9f\xe5\xc1\x1f\x96\x54\xc2\x65\x5b\x21\xed\xcc\x32\x42\x84\x91\xdc\x5c\x10\x1e\x6a\x22\x2d\x2e\x51\xb9\xf2\x3d\x96\x0f\x12\x74\x8d\x9a\x5f\xc3\xe2\xf6\xc9\x53\x97\x23\x47\x65\x6a\x9f\x78\x7e\xe5\xbd\x19\x64\x45\xaa\x2e\xaf\x8f\x8f\xbd\xaf\xaa\x34\xed\x1b\x05\x5a\x09\xb3\x71\x8d\x8b\x3c\x8f\x1c\xfe\x5a\xc5\x3c\xf3\x7c\x9f\xa7\x6f\xe7\xac\x70\x87\x15\x7b\xdb\xa5\x23\xe2\xa9\xe7\x10\xb3\xf5\xb5\xa7\xff\x9b\x8b\x1f\x61\x2d\x9b\xbb\xb1\x10\x4f\x9d\x6d\xf9\x87\x87\xe9\x25\x23\xfe\x1d\x30\x10\x1e\xdf\x53\xd8\x9d\xf4\xa3\xc4\x2b\xd3\xbd\x27\x37\xf3\xaf\xe0\x15\x4e\xe1\xe8\xd9\x3d\x9a\x27\x75\xd8\x4c\x68\x6d\xac\x89\x84\x51\x2c\xf9\x55\x96\x23\xac\x6f\xe4\xef\x79\xf7\xb3\x4b\x21\x96\x9a\x8a\x8a\x72\x43\xf4\x1e\x11\xa5\x8d\xe3\xe4\xe1\x8f\x33\x85\xee\x70\x03\xc7\x9f\xa5\x27\xb9\x4e\x72\x33\x8f\x2a\x1c\x4c\x45\xff\x04\x5a\x61\x1f\xe1\xdb\x3c\xdd\xa0\xfe\xf1\x21\xf7\x8c\x52\x75\x34\xda\xb2\x66\xdd\x3f\xf6\xf7\x3d\x6b\x6b\xc0\x39\x98\x30\x98\x30\x51\x0a\x57\xeb\x0e\x2d\x74\xde\x38\x11\x27\x75\xb8\x77\x5d\x99\xc1\x5e\x38\xd0\xe7\x09\xf3\x97\x49\x2f\xc6\x46\x2f\x6e\x57\xa7\xff\x65\xd2\x5b\xe9\xeb\x75\x30\xa5\xef\x4f\xc8\x07\xff\x9e\x09\xb7\x01\xb5\x9d\x25\x0b\x54\x1a\x54\x6d\xb7\x5d\x11\x1f\x56\x0a\x47\x21\x7c\x12\x2c\x6b\x29\x28\xd5\xa0\xa0\x47\xa9\x88\xb3\xac\x51\x31\xdf\x00\x96\xc1\x5b\xbc\x39\x8d\x0e\x69\x65\x84\x1b\x17\xf4\x91\x63\x58\x85\xd8\x98\x7a\x04\xbb\xe2\x48\x21\x57\xb5\xca\x88\x3c\x76\x7e\xa1\x56\xb4\xe1\x78\x4b\xa1\xb7\xcf\xeb\x34\x3a\x71\xeb\x03\xeb\xce\x88\x79\x2a\xed\x8b\x18\xe7\xfd\x88\x0c\xd5\x93\x4c\xbe\x55\x52\x3c\x1b\x7c\x82\xb3\xed\x99\xb3\xde\x90\xa4\x79\xf2\x51\xe1\x90\x4a\xc8\x6f\x28\x02\x19\x57\xef\x35\x42\x1d\x3c\x8a\x2d\x39\xee\xe7\x31\x4e\x3f\x3f\x94\x5e\xa2\xfb\x5f\xf7\xf6\xc0\x9b\xa4\x72\xff\x3e\x56\x2c\x61\x68\xb0\xc1\xf8\x43\x65\x8b\xb1\x80\xeb\xfc\xf9\x54\xe5\x8e\x63\x3f\xb1\x61\x27\x51\xbf\x36\x0b\x15\xfe\x67\xca\x59\x4f\x5a\xae\x34\x23\x3a\x3b\x58\xee\xba\x56\x2f\xad\x63", 4096); syscall(SYS_serialize2, /*a=*/0x20001380ul); break; case 9: syscall(SYS_test, /*a0=*/0x20fff000ul, /*a1=*/0, /*a2=*/0x1000, /*a3=*/0x800, /*a4=*/0x400ul, 0); break; case 10: memcpy((void*)0x20000000, "\'/+,\000", 5); *(uint8_t*)0x20000040 = 0x1c; *(uint8_t*)0x20000044 = 1; STORE_BY_BITMASK(uint32_t, , 0x20000044, 3, 8, 4); syz_compare(/*want=*/0x20000000, /*want_len=*/5, /*got=*/0x20000040, /*got_len=*/8); break; case 11: syz_compare_int(/*n=*/2, /*v0=*/0xffff, /*v1=*/0x100, 0, 0); break; case 12: syz_errno(/*v=*/0xfffffff9); break; case 13: memcpy((void*)0x20000080, "\xfe\xaa\x0e\x27\x8d\x40\x3f\x03\xc2\xbf\x80\x48\x86\x76\x75\x4e\x43\x50\x32\xf8\x1e\xee\x19\xff\xa3\xf4\x8c\xa7\x58\xe8\x2b\x07\x72\x89\x83\x4e\xb7\x9b\xe6\x7b\x6c\xf4\x37\xe2\xd9\xb1\x01\xf3\x97\xd7", 50); syz_execute_func(/*text=*/0x20000080); break; case 14: syz_exit(/*status=*/0xffffffc0); break; case 15: syz_mmap(/*addr=*/0x20ffc000, /*len=*/0x1000); break; case 16: syz_sleep_ms(/*ms=*/1); break; case 17: syz_test_fuzzer1(/*a=*/0xd, /*b=*/0xc, /*c=*/0xb); break; } } int main(void) { syz_mmap(/*addr=*/0x20000000, /*len=*/0x1000000); setup_fault(); use_temporary_dir(); do_sandbox_none(); return 0; } :312:3: error: call to undeclared function 'syscall'; ISO C99 and later do not support implicit function declarations [-Werror,-Wimplicit-function-declaration] syscall(SYS_breaks_returns); ^ 1 error generated. compiler invocation: c++ [-o /tmp/syz-executor1398790199 -DGOOS_test=1 -DGOARCH_64=1 -DHOSTGOOS_openbsd=1 -x c - -m64 -lutil -O2 -pthread -Wall -Werror -Wparentheses -Wunused-const-variable -Wframe-larger-than=16384 -Wno-array-bounds -Wno-unused-but-set-variable -Wno-unused-command-line-argument -no-pie -fno-exceptions] --- FAIL: TestGenerate/test/64/13 (2.04s) 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: breaks_returns() (fail_nth: 1) breaks_returns() (async) test$end0(&(0x7f0000000000)={0x20, 0x8, 0x7, 0x7fffffff}) (rerun: 4) test$length9(&(0x7f0000000040)={&(0x7f0000ffe000/0x2000)=nil, 0x2000}) test$recur1(&(0x7f0000001280)={&(0x7f0000001240)={&(0x7f0000000600)={0x0, &(0x7f00000005c0)={&(0x7f0000000080), 0x0, &(0x7f0000000180)={&(0x7f00000000c0), &(0x7f0000000100), &(0x7f0000000140)}, &(0x7f00000002c0)={&(0x7f00000001c0), &(0x7f0000000200), &(0x7f0000000240), &(0x7f0000000280)}, 0x0, &(0x7f0000000580)={&(0x7f0000000300), 0x0, &(0x7f0000000400)={&(0x7f0000000340), &(0x7f0000000380), 0x0, &(0x7f00000003c0)}, &(0x7f0000000540)={&(0x7f0000000440), &(0x7f0000000480), &(0x7f00000004c0), &(0x7f0000000500)}}}}, &(0x7f0000001200)={&(0x7f0000000680)={&(0x7f0000000640)}, &(0x7f00000009c0)={0x0, &(0x7f0000000980)={&(0x7f0000000700)={&(0x7f00000006c0)}, 0x0, &(0x7f0000000840)={&(0x7f0000000740), &(0x7f0000000780), &(0x7f00000007c0), &(0x7f0000000800)}, &(0x7f0000000940)={&(0x7f0000000880), &(0x7f00000008c0), &(0x7f0000000900)}}}, &(0x7f0000000ac0)={&(0x7f0000000a00), 0x0, &(0x7f0000000a40), &(0x7f0000000a80)}, &(0x7f0000000bc0)={&(0x7f0000000b00), 0x0, &(0x7f0000000b40), &(0x7f0000000b80)}, &(0x7f0000000e80)={0x0, &(0x7f0000000c00), &(0x7f0000000d40)={&(0x7f0000000c40), &(0x7f0000000c80), &(0x7f0000000cc0), &(0x7f0000000d00)}, &(0x7f0000000e40)={&(0x7f0000000d80), &(0x7f0000000dc0), &(0x7f0000000e00)}}, &(0x7f00000011c0)={&(0x7f0000000f00)={&(0x7f0000000ec0)}, &(0x7f0000000f40), &(0x7f0000001040)={&(0x7f0000000f80), &(0x7f0000000fc0), 0x0, &(0x7f0000001000)}, &(0x7f0000001180)={&(0x7f0000001080), &(0x7f00000010c0), &(0x7f0000001100), &(0x7f0000001140)}}}}}) foo$anyres(&(0x7f00000012c0), &(0x7f0000001300), &(0x7f0000001340)) breaks_returns() test$length10(&(0x7f0000ffe000/0x1000)=nil, 0x1000, 0x1000, 0x800, 0x400) serialize2(&(0x7f0000001380)="b3eb980b12af03684832ff0d1367b05ded250f350bffb9c67243a4a26cac6a5664ba93ce0c5ffca81d81c8a8a18416566c33d00a999baf45ad351740795a1a3a7f59abe59ac218f6e204dc1329f158d36e4d0c86200e4d8b5dbda275d20e5315c52e12895663d7e5f4ad1f0d1a8ac3014eb4603f30445a975d0a77feec81e4e99bd71acad646cb04b60819e8ec24a8a2db3909688bb284162872bc715c3ef9863a13d60f4e3acd6954f1ff268eee5cbe35465b4e65c60dbf3da35689af39d3dc0d9d2226406147feccad22fd6d9255a8b92178c6afa7aa2decd0ae46ec45c9bbf6e53fead2d682d715175ba608f84ba14d9a28c5e47ebd829a76bca0c2821b0e29915a2889e001a201524fcf6245adcf4d326d69176d7fa27ed8d593e25eef7afaa1479e506348f0a6753697034b9c609f465146f9569ddd56aff7fc2fadefb89fa2d2d4b838e7d63200097b77ed52d9c31c98fd76f9467ff5116ca00f85846a91bef69419aac6ebc7ddfba2b268bfe262f6f55d52a647af8a0b45391ba9df09e25664019b4107a231ee761a81960c1198f5209e3c3707d768b8d099eee563055a88c3049f5addf8747a2dfd6f3b43c5c25df50c8a4b77872a8d8905dfa0885adddb8fd49e29735262b1c94ea59ce0cea5a061fbb042c7e301e29212f2f1476e7c25317cb5fa81774d78b20efea377d4fbfdb190cc1fd58f568e6ac19be05d99c8362428f59f47311abf178f6b083645ccf013624a418b8d9fecfa26f7dcba32b4395449c0d1ef6fa37f33fa5ea60192bb5ce92e458d90cedf0e85787811c64bd0436f4c5ca01facae7b793d696442982841f6e83f603d5806742a4ec7acb406c55b27aaad7a628eb2f41f8007c0e3728fa1f40194d271392f6c7f684e1dbe239cf6c501bd4f4f643153b4e7bd32ff4b3db361fe9c4a87b4d7492eef749bd18c6a44daba60542deadc45cbfa8a46b8d252670ee312ede53bb516f0000cc25009f4d4e74c6f61306c344a9ba48fa2a2d70f3e1ac018f9c0d15ddaafb5cf89867ca6bf6b37427c477eec1acb7f369b9422a8858ebc2f3a10a9e90aea0f4df82ab2e8d10dffcb99892a8155b4f8aff79e93df24848aef035e85d57048c7c93fe544e3ef1754c49240573ac1ea67b94d8574542dff03f06bfedc3f51c620402861f777fa47bc05c865a6e63ab48e70c4b314e6f80953cb1a22b9226a1b3cc084736b2a826a7fc841023eaa56448d94757b013833c53e182c1de066878701def73bdd13d7404565dcc317ae650383b3ea7d5e6aed3dbf575a2ca5132850e394adeb9fee108719378320b9b4e0c5a6ddc77594a8024151b3a6d322fb48e5db7f0fb04a9149fb278ed9d8ad19b1b8a268cba4b300e93139f2b611bb777983b74d6fac852d743fb5011f9bf2bfd3f4314cdc9b1e71c65ea76e4953af36bcb4b9649aa0eeaa6c892e170d3285241708594a91bdec0fdedd974b4220b4b70a5a939938527c6e6ef823b36256c1369fbeed64a90e8be545eac8968c764139ccd4dc5901bc019985aab5fe71e24c55f260c4c4b7fd5cf5288b13dcda57bb3450fb4f6ece5e7c4a0a21fff3124c3c783afa8744f6ca3f5c3de5b4c154cea12ba47c3c694ea8303a8d7c8510089cc1609a82e6a7e089f63afd0585d3f5aba22634dd7c9579364da1d93a995f7706da208d65b948d74613e0e4f8c77974db272edf2f8d5291cd3af0d0adeecc163585161bc8ec9b62823feb864a8ffa00120719981907c027ef41a9c5ebef88411b420e2c6041e94dbae9388f72db0089d4733cedc368cd1d6805634c80bffb9c3430f402b73fff1d6cf355b9509c1bfd48e79b1417141c9b9ab1c0f62a4cf97bae55fe53afea353c1061bb882e101d7434b39be6558e77ea26b44b507c2c44dd0a625c044b0a78ee2364862842d9ef0f1bcb563f01adbdee69e52d022856ad6504d811e849ab470d613da0ce951003529822adc102c4c62a3aad2f7392aa4601ab0863150c358aeec2fc5e3a906df00fe5db1226bac20f08d701f181b90a4d389b91dddbc24e40488e1c46ab2d05b4823029453cc9253ebc4370964a64c1087cb3857d736dc303ce93066db60fc61be9f79c0c9e1ca7e4d73f95172bcbaf6cbd18c06d1c1cccf23d85592ee6844349b5e72e6a5e10f5eed5eca8f9c0a8a95e214389530194a03043b21108a49e3466cebe3078dadd364faf67fe3c51e1df75f4aa619854b780e0c04e9a9bf2301c030a3626ce820afc59e1c13ed6fa3e3030b966f3878f17a16a1209987aa9f7eb76988d401f10bdb0a419ddced1105659e6219440e35e984c3e7ada78c30a9a7399ce1abce36c7ce3e39a89cfac98f249735914cfc16baf666ed4b51ff2193c2836bd43e5d537f2653646f05c8109ef8edfd35b3acd73eb7e790c64cc2a7c9596e4a5f3d0e2d92b301c9ec5d82768ab211801bea96340c30e1b09fc9fae7cff2615d61ede29f9b0d712abffcd93ea3b20ceb7aa57368e84c3876ecd7a931cb19ea517603ef44a98b246288b27336980e4bb509007bcd01858cd35e9cd8df288221d3a487268828fe732fd7da2e2b6926b4a9b54d54b41c77998d1ef538487e1dcdf87fcc3fab25c77a7cf01f86087e2b95e1e4d45522fc3f44a14cbfacd48d63eba042ca3e14af8e5bed3186de4fb69f387aac88242d64fbdcd110c338821ad72562f092f55fa73b5e7d92c9b6fee5794ef4823190f9257b11ff4fc4457dba90fbda80dafb517fa27519489016f6f458006401f9fea20426a545aab7784c4e3df9dfa9fb279cf21a86ce3f292cf52d343fce97e05b92c84723d7ddc65a7bc79ae73b1246b6b65048a3855b62b1340264627c1df82f3352f3ac6d5a75e0823572c2fb392bd7ef15193cc5f6fbefc4d27ffd741a93d1ab799d9fbd545d2d2606e3566eb79d54485f5561510a57f17f2b3909ed1bfc5e5d64692b6c503eb58f17cae554137607467e8ab51d867067f50374e99f74869e0177f4eb52c2930dfe5ca2b6e454db8a36225b2c936bdc5bb75f1355ffd8d7fa476eb282871e52111832fcfc246da415c200d9e6c350f49846a0022660191a2840d7a53753674c78ea00a5b9e266ff29b1a8fb193e132d23f960cd9c8249b943fcdb865395b2c03ab675bbb1993813fb0a8d1e68331297c88db1dca00313b8211121b6023475cb69d6ac66c1116a56171350f680cc74c88fe9905ed078780e6d71bcc735fee75a9444f695d036aa6b4b9e59b6680b6312967f8b236ff8bee60316a70cba0312c993b92e30ca4cb118c1745e7b578c0ad6c3a7d8187372595dd160893115f11b054fc1718c967bdafe9bf95ad583db59396d594114b6500996eeff82b70191e52fa2330efdc66fa363cb379c9c67740535c9960ca857cfe4d0a88bbbbf2e7b2034bb843980f6fa86ff602335d1e25a613c7d7a4ef7a6b161c2582239aa56f5c8994d06646e0aa62c48b54e0852223772ed44e7059697aec6bc2225e0edac55fdbff1a16d4c6def4c77ddf38b2773952c811ff145ae366e216c41600659ff78f64b19e354d74f90a61907c85c702394fe2cca4f5feb5b53530b5f4c9e72f5c090ca464a7a9c395143735fdd2421d07e8efe4198ad06f9d230a91d5fb50efc02c2db6ed4ad750319e3e672f5213ddae92c3fcec0ed5dff522d0cab89bb8253254255529b32cf5385c9001421b92cc67163cc395235e408a463fa31eefd0742de5139bba2dc141fff7be175f418cf7cf89dd4f474a2fc61d0f3851f34d52c49bbd1226bd08963071f5d4918f7e12d0028d321b3d6bd436e02f6e55cc48c613e329916cb8545244bba377908d6bcfeb7ed66208e507b4dfd8f2cba5a3d42f3a4e4da80eba199cc8aec8a40f254710d811832496750c4b34c36b746bf3cb60dae81e73da952ee41c2a402372e5239fd2d407d8e91b9e57b4758aace59df7d83d38ad17716cae509ddb2427cbcf847a7b108edb4b3a708171e731a97702b6377c7934ec9b4c7446ea031e62bb39a6e2d320eaa8b5910b14d8826c204f7a4ab236240b486066b27be7f69b8442ffc803c4ed7fdd23ef2fa0337db842681c0f8ef2badcc08113fe8061ab31faf989ba55512a5f0e7b936d63c0cced58ef82cf0c2d29fb2318e12b56d4912e9c4f96db02ca8449294da33f8fce5507d3eb99239072e2b2e12e3355353bf490182eeb7aa103c977c06701caa0b74455116689b9dbe90ad1d18539d5e41ada0f2f7f1e6c9aa67aa2aa416f849f18c6fbd22dcbe03af78b15ceddda0d1bbbdd3362769f50e98680fce54b7e84a94f324666a6967fc80f2e5e9ca94f617f01163a1601c62219fcb5678266e1c618ca8947e74a2ade5e40daeb8df5620f365f66aeae88afb42d70ce4145ebafa758accc19e278bc9f45da63859c46ebdf7f0ee2e3fd9dd5414deb8607d7ec556568301d2650780be7f75fcdf92441cb98f23648b5ed3f3a5e2c96daaac1da0ce46e1d85b5c2cff4d9a9167d5815fcc66bbd945f0b55874195acbbbfecf80f26b70a4cf662f955ea4e01351faa9f5300cf35c72ae60915062ceff7891e7677519196bf813333361dbbeecfe8dc127a94c20b9faf036d71a816b1ab72e82019d0699b012a126022cc703136638dc8674905b4100e9b8d62abdeb13c84be300b49ae44fcea4b892fbf6564cdb012699e9fd1c964f2a9d7f312656b47e6916682b0044157f4e2dfb9d5f55d68495d763c807d8ec6932e560c913ab76fc3ff820202ae44facbda1aa153108f168e421bdb1a93c382edf08cc79c5b711ae13c6eb8e54393f4998ec99a95ae7f85999e78439ba603445545f21ffc856207eea9455fb14c0ad967f22cf0f572dba5cac7450e4e52ce713ce871fc76d7adca01260ea708da434001805bcfd1f3ccd1c6084d5ec2a29f00e77aa4f91dee13eeb5fcce8e82a103b37f6c4f2525951eaad449a08a75d2f341f17b2cbdf1730d192ef758a6e8f883d88c07f2ef41b443daa795000244263d2d30c762f6fecf3bb67f8dda6ca7d9d40a18e18626853c5094ef66ed64617ee9388c037a74a961692d4470796a683f880eb9041060acee4e7618b717a057951e1c662362fd26709bd80af39fe5c11f9654c2655b21edcc32428491dc5c101e6a222d2e51b9f23d960f12748d9a5fc3e2f6c953972347656a9f787ee5bd196445aa2eaf8f8fbdafaa34ed1b055a09b3718d8b3c8f1cfe5ac53cf37c9fa76fe7ac7087157bdba523e2a9e710b3f5b5a7ff9b8b1f612d9bbbb1104f9d6df98787e92523fe1d30101edf53d89df4a3c42bd3bd2737f3afe0154ee1e8d93d9a2775d84c686dac8984512cf9559623ac6fe4ef79f7b34b21969a8a8a7243f41e11a58de3e4e18f3385ee7003c79fa527b94e72338f2a1c4c45ff045a611fe1db3cdda0fef121f78c527534dab266dd3ff6f73d6b6bc03998309830510a57eb0e2d74de38112775b8775d99c15e38d0e709f397492fc6462f6e57a7ff65d25be9eb7530a5ef4fc807ff9e09b701b59d250b541a546db75d111f560a47217c122c6b2928d5a0a047a988b3ac5131df0096c15bbc398d0e6965841b17f491635885d8987a04bbe2482157b5ca883c767ea156b4e1784ba1b7cfeb343a71eb03ebce88792aed8b18e7fd880cd5934cbe55523c1b7c82b3ed99b3de90a479f251e1904ac86f28021957ef35421d3c8a2d39eee7314e3f3f945ea2fb5ff7f6c09ba472ff3e562c6168b0c1f843658bb180ebfcf954e58e633fb1612751bf360b15fe67ca594f5aae34233a3b58eeba562fad63") test$length10(&(0x7f0000fff000/0x1000)=nil, 0x1000, 0x1000, 0x800, 0x400) syz_compare(&(0x7f0000000000)='\'/+,\x00', 0x5, &(0x7f0000000040)=@bf5={0x1c, {0x1, 0x3}}, 0x8) syz_compare_int$2(0x2, 0xffff, 0x100) syz_errno(0xfffffff9) syz_execute_func(&(0x7f0000000080)="feaa0e278d403f03c2bf80488676754e435032f81eee19ffa3f48ca758e82b077289834eb79be67b6cf437e2d9b101f397d7") syz_exit(0xffffffc0) syz_mmap(&(0x7f0000ffc000/0x1000)=nil, 0x1000) syz_sleep_ms(0x1) syz_test_fuzzer1(0xd, 0xc, 0xb) 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 #ifndef SYS_breaks_returns #define SYS_breaks_returns 0 #endif #ifndef SYS_foo #define SYS_foo 0 #endif #ifndef SYS_serialize2 #define SYS_serialize2 0 #endif #ifndef SYS_test #define SYS_test 0 #endif 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[] = "./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 { pthread_mutex_t mu; pthread_cond_t cv; int state; } event_t; static void event_init(event_t* ev) { if (pthread_mutex_init(&ev->mu, 0)) exit(1); if (pthread_cond_init(&ev->cv, 0)) exit(1); ev->state = 0; } static void event_reset(event_t* ev) { ev->state = 0; } static void event_set(event_t* ev) { pthread_mutex_lock(&ev->mu); if (ev->state) exit(1); ev->state = 1; pthread_mutex_unlock(&ev->mu); pthread_cond_broadcast(&ev->cv); } static void event_wait(event_t* ev) { pthread_mutex_lock(&ev->mu); while (!ev->state) pthread_cond_wait(&ev->cv, &ev->mu); pthread_mutex_unlock(&ev->mu); } static int event_isset(event_t* ev) { pthread_mutex_lock(&ev->mu); int res = ev->state; pthread_mutex_unlock(&ev->mu); return res; } static int event_timedwait(event_t* ev, uint64_t timeout) { uint64_t start = current_time_ms(); uint64_t now = start; pthread_mutex_lock(&ev->mu); for (;;) { if (ev->state) break; uint64_t remain = timeout - (now - start); struct timespec ts; ts.tv_sec = remain / 1000; ts.tv_nsec = (remain % 1000) * 1000 * 1000; pthread_cond_timedwait(&ev->cv, &ev->mu, &ts); now = current_time_ms(); if (now - start > timeout) break; } int res = ev->state; pthread_mutex_unlock(&ev->mu); return res; } #define BITMASK(bf_off,bf_len) (((1ull << (bf_len)) - 1) << (bf_off)) #define STORE_BY_BITMASK(type,htobe,addr,val,bf_off,bf_len) *(type*)(addr) = htobe((htobe(*(type*)(addr)) & ~BITMASK((bf_off), (bf_len))) | (((type)(val) << (bf_off)) & BITMASK((bf_off), (bf_len)))) static long syz_mmap(volatile long a0, volatile long a1) { return (long)mmap((void*)a0, a1, PROT_READ | PROT_WRITE, MAP_ANON | MAP_PRIVATE | MAP_FIXED, -1, 0); } static long syz_errno(volatile long v) { errno = v; return v == 0 ? 0 : -1; } static long syz_exit(volatile long status) { _exit(status); return 0; } static long syz_sleep_ms(volatile long ms) { sleep_ms(ms); return 0; } static long syz_compare(volatile long want, volatile long want_len, volatile long got, volatile long got_len) { if (want_len != got_len) { errno = EBADF; goto error; } if (memcmp((void*)want, (void*)got, want_len)) { errno = EINVAL; goto error; } return 0; error: return -1; } static long syz_compare_int(volatile long n, ...) { va_list args; va_start(args, n); long v0 = va_arg(args, long); long v1 = va_arg(args, long); long v2 = va_arg(args, long); long v3 = va_arg(args, long); va_end(args); if (n < 2 || n > 4) return errno = E2BIG, -1; if (n <= 2 && v2 != 0) return errno = EFAULT, -1; if (n <= 3 && v3 != 0) return errno = EFAULT, -1; if (v0 != v1) return errno = EINVAL, -1; if (n > 2 && v0 != v2) return errno = EINVAL, -1; if (n > 3 && v0 != v3) return errno = EINVAL, -1; return 0; } static void loop(); static int do_sandbox_none(void) { loop(); return 0; } static void fake_crash(const char* name) { exit(1); exit(1); } static long syz_test_fuzzer1(volatile long a, volatile long b, volatile long c) { if (a == 1 && b == 1 && c == 1) fake_crash("first bug"); if (a == 1 && b == 2 && c == 3) fake_crash("second bug"); return 0; } 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 < 18; 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(); } void execute_call(int call) { intptr_t res = 0; switch (call) { case 0: inject_fault(1); res = syscall(SYS_breaks_returns); fprintf(stderr, "### call=0 errno=%u\n", res == -1 ? errno : 0); break; case 1: res = syscall(SYS_breaks_returns); fprintf(stderr, "### call=1 errno=%u\n", res == -1 ? errno : 0); break; case 2: *(uint8_t*)0x20000000 = 0x20; *(uint16_t*)0x20000001 = htobe16(8); *(uint32_t*)0x20000003 = htobe32(7); *(uint64_t*)0x20000007 = htobe64(0x7fffffff); res = syscall(SYS_test, /*a0=*/0x20000000ul, 0, 0, 0, 0, 0); fprintf(stderr, "### call=2 errno=%u\n", res == -1 ? errno : 0); { int i; for(i = 0; i < 4; i++) { syscall(SYS_test, /*a0=*/0x20000000ul, 0, 0, 0, 0, 0); } } break; case 3: *(uint64_t*)0x20000040 = 0x20ffe000; *(uint64_t*)0x20000048 = 0x2000; res = syscall(SYS_test, /*a0=*/0x20000040ul, 0, 0, 0, 0, 0); fprintf(stderr, "### call=3 errno=%u\n", res == -1 ? errno : 0); break; case 4: *(uint64_t*)0x20001280 = 0x20001240; *(uint64_t*)0x20001240 = 0x20000600; *(uint64_t*)0x20000600 = 0; *(uint64_t*)0x20000608 = 0x200005c0; *(uint64_t*)0x200005c0 = 0x20000080; *(uint64_t*)0x20000080 = 0; *(uint64_t*)0x200005c8 = 0; *(uint64_t*)0x200005d0 = 0x20000180; *(uint64_t*)0x20000180 = 0x200000c0; *(uint64_t*)0x200000c0 = 0; *(uint64_t*)0x200000c8 = 0; *(uint64_t*)0x200000d0 = 0; *(uint64_t*)0x200000d8 = 0; *(uint64_t*)0x20000188 = 0x20000100; *(uint64_t*)0x20000100 = 0; *(uint64_t*)0x20000108 = 0; *(uint64_t*)0x20000110 = 0; *(uint64_t*)0x20000118 = 0; *(uint64_t*)0x20000190 = 0x20000140; *(uint64_t*)0x20000140 = 0; *(uint64_t*)0x20000148 = 0; *(uint64_t*)0x20000150 = 0; *(uint64_t*)0x20000158 = 0; *(uint64_t*)0x20000198 = 0; *(uint64_t*)0x200005d8 = 0x200002c0; *(uint64_t*)0x200002c0 = 0x200001c0; *(uint64_t*)0x200001c0 = 0; *(uint64_t*)0x200001c8 = 0; *(uint64_t*)0x200001d0 = 0; *(uint64_t*)0x200001d8 = 0; *(uint64_t*)0x200002c8 = 0x20000200; *(uint64_t*)0x20000200 = 0; *(uint64_t*)0x20000208 = 0; *(uint64_t*)0x20000210 = 0; *(uint64_t*)0x20000218 = 0; *(uint64_t*)0x200002d0 = 0x20000240; *(uint64_t*)0x20000240 = 0; *(uint64_t*)0x20000248 = 0; *(uint64_t*)0x20000250 = 0; *(uint64_t*)0x20000258 = 0; *(uint64_t*)0x200002d8 = 0x20000280; *(uint64_t*)0x20000280 = 0; *(uint64_t*)0x20000288 = 0; *(uint64_t*)0x20000290 = 0; *(uint64_t*)0x20000298 = 0; *(uint64_t*)0x200005e0 = 0; *(uint64_t*)0x200005e8 = 0x20000580; *(uint64_t*)0x20000580 = 0x20000300; *(uint64_t*)0x20000300 = 0; *(uint64_t*)0x20000588 = 0; *(uint64_t*)0x20000590 = 0x20000400; *(uint64_t*)0x20000400 = 0x20000340; *(uint64_t*)0x20000340 = 0; *(uint64_t*)0x20000348 = 0; *(uint64_t*)0x20000350 = 0; *(uint64_t*)0x20000358 = 0; *(uint64_t*)0x20000408 = 0x20000380; *(uint64_t*)0x20000380 = 0; *(uint64_t*)0x20000388 = 0; *(uint64_t*)0x20000390 = 0; *(uint64_t*)0x20000398 = 0; *(uint64_t*)0x20000410 = 0; *(uint64_t*)0x20000418 = 0x200003c0; *(uint64_t*)0x200003c0 = 0; *(uint64_t*)0x200003c8 = 0; *(uint64_t*)0x200003d0 = 0; *(uint64_t*)0x200003d8 = 0; *(uint64_t*)0x20000598 = 0x20000540; *(uint64_t*)0x20000540 = 0x20000440; *(uint64_t*)0x20000440 = 0; *(uint64_t*)0x20000448 = 0; *(uint64_t*)0x20000450 = 0; *(uint64_t*)0x20000458 = 0; *(uint64_t*)0x20000548 = 0x20000480; *(uint64_t*)0x20000480 = 0; *(uint64_t*)0x20000488 = 0; *(uint64_t*)0x20000490 = 0; *(uint64_t*)0x20000498 = 0; *(uint64_t*)0x20000550 = 0x200004c0; *(uint64_t*)0x200004c0 = 0; *(uint64_t*)0x200004c8 = 0; *(uint64_t*)0x200004d0 = 0; *(uint64_t*)0x200004d8 = 0; *(uint64_t*)0x20000558 = 0x20000500; *(uint64_t*)0x20000500 = 0; *(uint64_t*)0x20000508 = 0; *(uint64_t*)0x20000510 = 0; *(uint64_t*)0x20000518 = 0; *(uint64_t*)0x200005a0 = 0; *(uint64_t*)0x200005a8 = 0; *(uint64_t*)0x20001248 = 0x20001200; *(uint64_t*)0x20001200 = 0x20000680; *(uint64_t*)0x20000680 = 0x20000640; *(uint64_t*)0x20000640 = 0; *(uint64_t*)0x20001208 = 0x200009c0; *(uint64_t*)0x200009c0 = 0; *(uint64_t*)0x200009c8 = 0x20000980; *(uint64_t*)0x20000980 = 0x20000700; *(uint64_t*)0x20000700 = 0x200006c0; *(uint64_t*)0x200006c0 = 0; *(uint64_t*)0x20000988 = 0; *(uint64_t*)0x20000990 = 0x20000840; *(uint64_t*)0x20000840 = 0x20000740; *(uint64_t*)0x20000740 = 0; *(uint64_t*)0x20000748 = 0; *(uint64_t*)0x20000750 = 0; *(uint64_t*)0x20000758 = 0; *(uint64_t*)0x20000848 = 0x20000780; *(uint64_t*)0x20000780 = 0; *(uint64_t*)0x20000788 = 0; *(uint64_t*)0x20000790 = 0; *(uint64_t*)0x20000798 = 0; *(uint64_t*)0x20000850 = 0x200007c0; *(uint64_t*)0x200007c0 = 0; *(uint64_t*)0x200007c8 = 0; *(uint64_t*)0x200007d0 = 0; *(uint64_t*)0x200007d8 = 0; *(uint64_t*)0x20000858 = 0x20000800; *(uint64_t*)0x20000800 = 0; *(uint64_t*)0x20000808 = 0; *(uint64_t*)0x20000810 = 0; *(uint64_t*)0x20000818 = 0; *(uint64_t*)0x20000998 = 0x20000940; *(uint64_t*)0x20000940 = 0x20000880; *(uint64_t*)0x20000880 = 0; *(uint64_t*)0x20000888 = 0; *(uint64_t*)0x20000890 = 0; *(uint64_t*)0x20000898 = 0; *(uint64_t*)0x20000948 = 0x200008c0; *(uint64_t*)0x200008c0 = 0; *(uint64_t*)0x200008c8 = 0; *(uint64_t*)0x200008d0 = 0; *(uint64_t*)0x200008d8 = 0; *(uint64_t*)0x20000950 = 0x20000900; *(uint64_t*)0x20000900 = 0; *(uint64_t*)0x20000908 = 0; *(uint64_t*)0x20000910 = 0; *(uint64_t*)0x20000918 = 0; *(uint64_t*)0x20000958 = 0; *(uint64_t*)0x200009a0 = 0; *(uint64_t*)0x200009a8 = 0; *(uint64_t*)0x20001210 = 0x20000ac0; *(uint64_t*)0x20000ac0 = 0x20000a00; *(uint64_t*)0x20000a00 = 0; *(uint64_t*)0x20000a08 = 0; *(uint64_t*)0x20000a10 = 0; *(uint64_t*)0x20000a18 = 0; *(uint64_t*)0x20000ac8 = 0; *(uint64_t*)0x20000ad0 = 0x20000a40; *(uint64_t*)0x20000a40 = 0; *(uint64_t*)0x20000a48 = 0; *(uint64_t*)0x20000a50 = 0; *(uint64_t*)0x20000a58 = 0; *(uint64_t*)0x20000ad8 = 0x20000a80; *(uint64_t*)0x20000a80 = 0; *(uint64_t*)0x20000a88 = 0; *(uint64_t*)0x20000a90 = 0; *(uint64_t*)0x20000a98 = 0; *(uint64_t*)0x20001218 = 0x20000bc0; *(uint64_t*)0x20000bc0 = 0x20000b00; *(uint64_t*)0x20000b00 = 0; *(uint64_t*)0x20000b08 = 0; *(uint64_t*)0x20000b10 = 0; *(uint64_t*)0x20000b18 = 0; *(uint64_t*)0x20000bc8 = 0; *(uint64_t*)0x20000bd0 = 0x20000b40; *(uint64_t*)0x20000b40 = 0; *(uint64_t*)0x20000b48 = 0; *(uint64_t*)0x20000b50 = 0; *(uint64_t*)0x20000b58 = 0; *(uint64_t*)0x20000bd8 = 0x20000b80; *(uint64_t*)0x20000b80 = 0; *(uint64_t*)0x20000b88 = 0; *(uint64_t*)0x20000b90 = 0; *(uint64_t*)0x20000b98 = 0; *(uint64_t*)0x20001220 = 0x20000e80; *(uint64_t*)0x20000e80 = 0; *(uint64_t*)0x20000e88 = 0x20000c00; *(uint64_t*)0x20000c00 = 0; *(uint64_t*)0x20000c08 = 0; *(uint64_t*)0x20000e90 = 0x20000d40; *(uint64_t*)0x20000d40 = 0x20000c40; *(uint64_t*)0x20000c40 = 0; *(uint64_t*)0x20000c48 = 0; *(uint64_t*)0x20000c50 = 0; *(uint64_t*)0x20000c58 = 0; *(uint64_t*)0x20000d48 = 0x20000c80; *(uint64_t*)0x20000c80 = 0; *(uint64_t*)0x20000c88 = 0; *(uint64_t*)0x20000c90 = 0; *(uint64_t*)0x20000c98 = 0; *(uint64_t*)0x20000d50 = 0x20000cc0; *(uint64_t*)0x20000cc0 = 0; *(uint64_t*)0x20000cc8 = 0; *(uint64_t*)0x20000cd0 = 0; *(uint64_t*)0x20000cd8 = 0; *(uint64_t*)0x20000d58 = 0x20000d00; *(uint64_t*)0x20000d00 = 0; *(uint64_t*)0x20000d08 = 0; *(uint64_t*)0x20000d10 = 0; *(uint64_t*)0x20000d18 = 0; *(uint64_t*)0x20000e98 = 0x20000e40; *(uint64_t*)0x20000e40 = 0x20000d80; *(uint64_t*)0x20000d80 = 0; *(uint64_t*)0x20000d88 = 0; *(uint64_t*)0x20000d90 = 0; *(uint64_t*)0x20000d98 = 0; *(uint64_t*)0x20000e48 = 0x20000dc0; *(uint64_t*)0x20000dc0 = 0; *(uint64_t*)0x20000dc8 = 0; *(uint64_t*)0x20000dd0 = 0; *(uint64_t*)0x20000dd8 = 0; *(uint64_t*)0x20000e50 = 0x20000e00; *(uint64_t*)0x20000e00 = 0; *(uint64_t*)0x20000e08 = 0; *(uint64_t*)0x20000e10 = 0; *(uint64_t*)0x20000e18 = 0; *(uint64_t*)0x20000e58 = 0; *(uint64_t*)0x20000ea0 = 0; *(uint64_t*)0x20000ea8 = 0; *(uint64_t*)0x20001228 = 0x200011c0; *(uint64_t*)0x200011c0 = 0x20000f00; *(uint64_t*)0x20000f00 = 0x20000ec0; *(uint64_t*)0x20000ec0 = 0; *(uint64_t*)0x200011c8 = 0x20000f40; *(uint64_t*)0x20000f40 = 0; *(uint64_t*)0x20000f48 = 0; *(uint64_t*)0x200011d0 = 0x20001040; *(uint64_t*)0x20001040 = 0x20000f80; *(uint64_t*)0x20000f80 = 0; *(uint64_t*)0x20000f88 = 0; *(uint64_t*)0x20000f90 = 0; *(uint64_t*)0x20000f98 = 0; *(uint64_t*)0x20001048 = 0x20000fc0; *(uint64_t*)0x20000fc0 = 0; *(uint64_t*)0x20000fc8 = 0; *(uint64_t*)0x20000fd0 = 0; *(uint64_t*)0x20000fd8 = 0; *(uint64_t*)0x20001050 = 0; *(uint64_t*)0x20001058 = 0x20001000; *(uint64_t*)0x20001000 = 0; *(uint64_t*)0x20001008 = 0; *(uint64_t*)0x20001010 = 0; *(uint64_t*)0x20001018 = 0; *(uint64_t*)0x200011d8 = 0x20001180; *(uint64_t*)0x20001180 = 0x20001080; *(uint64_t*)0x20001080 = 0; *(uint64_t*)0x20001088 = 0; *(uint64_t*)0x20001090 = 0; *(uint64_t*)0x20001098 = 0; *(uint64_t*)0x20001188 = 0x200010c0; *(uint64_t*)0x200010c0 = 0; *(uint64_t*)0x200010c8 = 0; *(uint64_t*)0x200010d0 = 0; *(uint64_t*)0x200010d8 = 0; *(uint64_t*)0x20001190 = 0x20001100; *(uint64_t*)0x20001100 = 0; *(uint64_t*)0x20001108 = 0; *(uint64_t*)0x20001110 = 0; *(uint64_t*)0x20001118 = 0; *(uint64_t*)0x20001198 = 0x20001140; *(uint64_t*)0x20001140 = 0; *(uint64_t*)0x20001148 = 0; *(uint64_t*)0x20001150 = 0; *(uint64_t*)0x20001158 = 0; *(uint64_t*)0x200011e0 = 0; *(uint64_t*)0x200011e8 = 0; *(uint64_t*)0x20001288 = 0; res = syscall(SYS_test, /*a0=*/0x20001280ul, 0, 0, 0, 0, 0); fprintf(stderr, "### call=4 errno=%u\n", res == -1 ? errno : 0); break; case 5: res = syscall(SYS_foo, /*a0=*/0x200012c0ul, /*a1=*/0x20001300ul, /*a2=*/0x20001340ul); fprintf(stderr, "### call=5 errno=%u\n", res == -1 ? errno : 0); break; case 6: res = syscall(SYS_breaks_returns); fprintf(stderr, "### call=6 errno=%u\n", res == -1 ? errno : 0); break; case 7: res = syscall(SYS_test, /*a0=*/0x20ffe000ul, /*a1=*/0, /*a2=*/0x1000, /*a3=*/0x800, /*a4=*/0x400ul, 0); fprintf(stderr, "### call=7 errno=%u\n", res == -1 ? errno : 0); break; case 8: memcpy((void*)0x20001380, "\xb3\xeb\x98\x0b\x12\xaf\x03\x68\x48\x32\xff\x0d\x13\x67\xb0\x5d\xed\x25\x0f\x35\x0b\xff\xb9\xc6\x72\x43\xa4\xa2\x6c\xac\x6a\x56\x64\xba\x93\xce\x0c\x5f\xfc\xa8\x1d\x81\xc8\xa8\xa1\x84\x16\x56\x6c\x33\xd0\x0a\x99\x9b\xaf\x45\xad\x35\x17\x40\x79\x5a\x1a\x3a\x7f\x59\xab\xe5\x9a\xc2\x18\xf6\xe2\x04\xdc\x13\x29\xf1\x58\xd3\x6e\x4d\x0c\x86\x20\x0e\x4d\x8b\x5d\xbd\xa2\x75\xd2\x0e\x53\x15\xc5\x2e\x12\x89\x56\x63\xd7\xe5\xf4\xad\x1f\x0d\x1a\x8a\xc3\x01\x4e\xb4\x60\x3f\x30\x44\x5a\x97\x5d\x0a\x77\xfe\xec\x81\xe4\xe9\x9b\xd7\x1a\xca\xd6\x46\xcb\x04\xb6\x08\x19\xe8\xec\x24\xa8\xa2\xdb\x39\x09\x68\x8b\xb2\x84\x16\x28\x72\xbc\x71\x5c\x3e\xf9\x86\x3a\x13\xd6\x0f\x4e\x3a\xcd\x69\x54\xf1\xff\x26\x8e\xee\x5c\xbe\x35\x46\x5b\x4e\x65\xc6\x0d\xbf\x3d\xa3\x56\x89\xaf\x39\xd3\xdc\x0d\x9d\x22\x26\x40\x61\x47\xfe\xcc\xad\x22\xfd\x6d\x92\x55\xa8\xb9\x21\x78\xc6\xaf\xa7\xaa\x2d\xec\xd0\xae\x46\xec\x45\xc9\xbb\xf6\xe5\x3f\xea\xd2\xd6\x82\xd7\x15\x17\x5b\xa6\x08\xf8\x4b\xa1\x4d\x9a\x28\xc5\xe4\x7e\xbd\x82\x9a\x76\xbc\xa0\xc2\x82\x1b\x0e\x29\x91\x5a\x28\x89\xe0\x01\xa2\x01\x52\x4f\xcf\x62\x45\xad\xcf\x4d\x32\x6d\x69\x17\x6d\x7f\xa2\x7e\xd8\xd5\x93\xe2\x5e\xef\x7a\xfa\xa1\x47\x9e\x50\x63\x48\xf0\xa6\x75\x36\x97\x03\x4b\x9c\x60\x9f\x46\x51\x46\xf9\x56\x9d\xdd\x56\xaf\xf7\xfc\x2f\xad\xef\xb8\x9f\xa2\xd2\xd4\xb8\x38\xe7\xd6\x32\x00\x09\x7b\x77\xed\x52\xd9\xc3\x1c\x98\xfd\x76\xf9\x46\x7f\xf5\x11\x6c\xa0\x0f\x85\x84\x6a\x91\xbe\xf6\x94\x19\xaa\xc6\xeb\xc7\xdd\xfb\xa2\xb2\x68\xbf\xe2\x62\xf6\xf5\x5d\x52\xa6\x47\xaf\x8a\x0b\x45\x39\x1b\xa9\xdf\x09\xe2\x56\x64\x01\x9b\x41\x07\xa2\x31\xee\x76\x1a\x81\x96\x0c\x11\x98\xf5\x20\x9e\x3c\x37\x07\xd7\x68\xb8\xd0\x99\xee\xe5\x63\x05\x5a\x88\xc3\x04\x9f\x5a\xdd\xf8\x74\x7a\x2d\xfd\x6f\x3b\x43\xc5\xc2\x5d\xf5\x0c\x8a\x4b\x77\x87\x2a\x8d\x89\x05\xdf\xa0\x88\x5a\xdd\xdb\x8f\xd4\x9e\x29\x73\x52\x62\xb1\xc9\x4e\xa5\x9c\xe0\xce\xa5\xa0\x61\xfb\xb0\x42\xc7\xe3\x01\xe2\x92\x12\xf2\xf1\x47\x6e\x7c\x25\x31\x7c\xb5\xfa\x81\x77\x4d\x78\xb2\x0e\xfe\xa3\x77\xd4\xfb\xfd\xb1\x90\xcc\x1f\xd5\x8f\x56\x8e\x6a\xc1\x9b\xe0\x5d\x99\xc8\x36\x24\x28\xf5\x9f\x47\x31\x1a\xbf\x17\x8f\x6b\x08\x36\x45\xcc\xf0\x13\x62\x4a\x41\x8b\x8d\x9f\xec\xfa\x26\xf7\xdc\xba\x32\xb4\x39\x54\x49\xc0\xd1\xef\x6f\xa3\x7f\x33\xfa\x5e\xa6\x01\x92\xbb\x5c\xe9\x2e\x45\x8d\x90\xce\xdf\x0e\x85\x78\x78\x11\xc6\x4b\xd0\x43\x6f\x4c\x5c\xa0\x1f\xac\xae\x7b\x79\x3d\x69\x64\x42\x98\x28\x41\xf6\xe8\x3f\x60\x3d\x58\x06\x74\x2a\x4e\xc7\xac\xb4\x06\xc5\x5b\x27\xaa\xad\x7a\x62\x8e\xb2\xf4\x1f\x80\x07\xc0\xe3\x72\x8f\xa1\xf4\x01\x94\xd2\x71\x39\x2f\x6c\x7f\x68\x4e\x1d\xbe\x23\x9c\xf6\xc5\x01\xbd\x4f\x4f\x64\x31\x53\xb4\xe7\xbd\x32\xff\x4b\x3d\xb3\x61\xfe\x9c\x4a\x87\xb4\xd7\x49\x2e\xef\x74\x9b\xd1\x8c\x6a\x44\xda\xba\x60\x54\x2d\xea\xdc\x45\xcb\xfa\x8a\x46\xb8\xd2\x52\x67\x0e\xe3\x12\xed\xe5\x3b\xb5\x16\xf0\x00\x0c\xc2\x50\x09\xf4\xd4\xe7\x4c\x6f\x61\x30\x6c\x34\x4a\x9b\xa4\x8f\xa2\xa2\xd7\x0f\x3e\x1a\xc0\x18\xf9\xc0\xd1\x5d\xda\xaf\xb5\xcf\x89\x86\x7c\xa6\xbf\x6b\x37\x42\x7c\x47\x7e\xec\x1a\xcb\x7f\x36\x9b\x94\x22\xa8\x85\x8e\xbc\x2f\x3a\x10\xa9\xe9\x0a\xea\x0f\x4d\xf8\x2a\xb2\xe8\xd1\x0d\xff\xcb\x99\x89\x2a\x81\x55\xb4\xf8\xaf\xf7\x9e\x93\xdf\x24\x84\x8a\xef\x03\x5e\x85\xd5\x70\x48\xc7\xc9\x3f\xe5\x44\xe3\xef\x17\x54\xc4\x92\x40\x57\x3a\xc1\xea\x67\xb9\x4d\x85\x74\x54\x2d\xff\x03\xf0\x6b\xfe\xdc\x3f\x51\xc6\x20\x40\x28\x61\xf7\x77\xfa\x47\xbc\x05\xc8\x65\xa6\xe6\x3a\xb4\x8e\x70\xc4\xb3\x14\xe6\xf8\x09\x53\xcb\x1a\x22\xb9\x22\x6a\x1b\x3c\xc0\x84\x73\x6b\x2a\x82\x6a\x7f\xc8\x41\x02\x3e\xaa\x56\x44\x8d\x94\x75\x7b\x01\x38\x33\xc5\x3e\x18\x2c\x1d\xe0\x66\x87\x87\x01\xde\xf7\x3b\xdd\x13\xd7\x40\x45\x65\xdc\xc3\x17\xae\x65\x03\x83\xb3\xea\x7d\x5e\x6a\xed\x3d\xbf\x57\x5a\x2c\xa5\x13\x28\x50\xe3\x94\xad\xeb\x9f\xee\x10\x87\x19\x37\x83\x20\xb9\xb4\xe0\xc5\xa6\xdd\xc7\x75\x94\xa8\x02\x41\x51\xb3\xa6\xd3\x22\xfb\x48\xe5\xdb\x7f\x0f\xb0\x4a\x91\x49\xfb\x27\x8e\xd9\xd8\xad\x19\xb1\xb8\xa2\x68\xcb\xa4\xb3\x00\xe9\x31\x39\xf2\xb6\x11\xbb\x77\x79\x83\xb7\x4d\x6f\xac\x85\x2d\x74\x3f\xb5\x01\x1f\x9b\xf2\xbf\xd3\xf4\x31\x4c\xdc\x9b\x1e\x71\xc6\x5e\xa7\x6e\x49\x53\xaf\x36\xbc\xb4\xb9\x64\x9a\xa0\xee\xaa\x6c\x89\x2e\x17\x0d\x32\x85\x24\x17\x08\x59\x4a\x91\xbd\xec\x0f\xde\xdd\x97\x4b\x42\x20\xb4\xb7\x0a\x5a\x93\x99\x38\x52\x7c\x6e\x6e\xf8\x23\xb3\x62\x56\xc1\x36\x9f\xbe\xed\x64\xa9\x0e\x8b\xe5\x45\xea\xc8\x96\x8c\x76\x41\x39\xcc\xd4\xdc\x59\x01\xbc\x01\x99\x85\xaa\xb5\xfe\x71\xe2\x4c\x55\xf2\x60\xc4\xc4\xb7\xfd\x5c\xf5\x28\x8b\x13\xdc\xda\x57\xbb\x34\x50\xfb\x4f\x6e\xce\x5e\x7c\x4a\x0a\x21\xff\xf3\x12\x4c\x3c\x78\x3a\xfa\x87\x44\xf6\xca\x3f\x5c\x3d\xe5\xb4\xc1\x54\xce\xa1\x2b\xa4\x7c\x3c\x69\x4e\xa8\x30\x3a\x8d\x7c\x85\x10\x08\x9c\xc1\x60\x9a\x82\xe6\xa7\xe0\x89\xf6\x3a\xfd\x05\x85\xd3\xf5\xab\xa2\x26\x34\xdd\x7c\x95\x79\x36\x4d\xa1\xd9\x3a\x99\x5f\x77\x06\xda\x20\x8d\x65\xb9\x48\xd7\x46\x13\xe0\xe4\xf8\xc7\x79\x74\xdb\x27\x2e\xdf\x2f\x8d\x52\x91\xcd\x3a\xf0\xd0\xad\xee\xcc\x16\x35\x85\x16\x1b\xc8\xec\x9b\x62\x82\x3f\xeb\x86\x4a\x8f\xfa\x00\x12\x07\x19\x98\x19\x07\xc0\x27\xef\x41\xa9\xc5\xeb\xef\x88\x41\x1b\x42\x0e\x2c\x60\x41\xe9\x4d\xba\xe9\x38\x8f\x72\xdb\x00\x89\xd4\x73\x3c\xed\xc3\x68\xcd\x1d\x68\x05\x63\x4c\x80\xbf\xfb\x9c\x34\x30\xf4\x02\xb7\x3f\xff\x1d\x6c\xf3\x55\xb9\x50\x9c\x1b\xfd\x48\xe7\x9b\x14\x17\x14\x1c\x9b\x9a\xb1\xc0\xf6\x2a\x4c\xf9\x7b\xae\x55\xfe\x53\xaf\xea\x35\x3c\x10\x61\xbb\x88\x2e\x10\x1d\x74\x34\xb3\x9b\xe6\x55\x8e\x77\xea\x26\xb4\x4b\x50\x7c\x2c\x44\xdd\x0a\x62\x5c\x04\x4b\x0a\x78\xee\x23\x64\x86\x28\x42\xd9\xef\x0f\x1b\xcb\x56\x3f\x01\xad\xbd\xee\x69\xe5\x2d\x02\x28\x56\xad\x65\x04\xd8\x11\xe8\x49\xab\x47\x0d\x61\x3d\xa0\xce\x95\x10\x03\x52\x98\x22\xad\xc1\x02\xc4\xc6\x2a\x3a\xad\x2f\x73\x92\xaa\x46\x01\xab\x08\x63\x15\x0c\x35\x8a\xee\xc2\xfc\x5e\x3a\x90\x6d\xf0\x0f\xe5\xdb\x12\x26\xba\xc2\x0f\x08\xd7\x01\xf1\x81\xb9\x0a\x4d\x38\x9b\x91\xdd\xdb\xc2\x4e\x40\x48\x8e\x1c\x46\xab\x2d\x05\xb4\x82\x30\x29\x45\x3c\xc9\x25\x3e\xbc\x43\x70\x96\x4a\x64\xc1\x08\x7c\xb3\x85\x7d\x73\x6d\xc3\x03\xce\x93\x06\x6d\xb6\x0f\xc6\x1b\xe9\xf7\x9c\x0c\x9e\x1c\xa7\xe4\xd7\x3f\x95\x17\x2b\xcb\xaf\x6c\xbd\x18\xc0\x6d\x1c\x1c\xcc\xf2\x3d\x85\x59\x2e\xe6\x84\x43\x49\xb5\xe7\x2e\x6a\x5e\x10\xf5\xee\xd5\xec\xa8\xf9\xc0\xa8\xa9\x5e\x21\x43\x89\x53\x01\x94\xa0\x30\x43\xb2\x11\x08\xa4\x9e\x34\x66\xce\xbe\x30\x78\xda\xdd\x36\x4f\xaf\x67\xfe\x3c\x51\xe1\xdf\x75\xf4\xaa\x61\x98\x54\xb7\x80\xe0\xc0\x4e\x9a\x9b\xf2\x30\x1c\x03\x0a\x36\x26\xce\x82\x0a\xfc\x59\xe1\xc1\x3e\xd6\xfa\x3e\x30\x30\xb9\x66\xf3\x87\x8f\x17\xa1\x6a\x12\x09\x98\x7a\xa9\xf7\xeb\x76\x98\x8d\x40\x1f\x10\xbd\xb0\xa4\x19\xdd\xce\xd1\x10\x56\x59\xe6\x21\x94\x40\xe3\x5e\x98\x4c\x3e\x7a\xda\x78\xc3\x0a\x9a\x73\x99\xce\x1a\xbc\xe3\x6c\x7c\xe3\xe3\x9a\x89\xcf\xac\x98\xf2\x49\x73\x59\x14\xcf\xc1\x6b\xaf\x66\x6e\xd4\xb5\x1f\xf2\x19\x3c\x28\x36\xbd\x43\xe5\xd5\x37\xf2\x65\x36\x46\xf0\x5c\x81\x09\xef\x8e\xdf\xd3\x5b\x3a\xcd\x73\xeb\x7e\x79\x0c\x64\xcc\x2a\x7c\x95\x96\xe4\xa5\xf3\xd0\xe2\xd9\x2b\x30\x1c\x9e\xc5\xd8\x27\x68\xab\x21\x18\x01\xbe\xa9\x63\x40\xc3\x0e\x1b\x09\xfc\x9f\xae\x7c\xff\x26\x15\xd6\x1e\xde\x29\xf9\xb0\xd7\x12\xab\xff\xcd\x93\xea\x3b\x20\xce\xb7\xaa\x57\x36\x8e\x84\xc3\x87\x6e\xcd\x7a\x93\x1c\xb1\x9e\xa5\x17\x60\x3e\xf4\x4a\x98\xb2\x46\x28\x8b\x27\x33\x69\x80\xe4\xbb\x50\x90\x07\xbc\xd0\x18\x58\xcd\x35\xe9\xcd\x8d\xf2\x88\x22\x1d\x3a\x48\x72\x68\x82\x8f\xe7\x32\xfd\x7d\xa2\xe2\xb6\x92\x6b\x4a\x9b\x54\xd5\x4b\x41\xc7\x79\x98\xd1\xef\x53\x84\x87\xe1\xdc\xdf\x87\xfc\xc3\xfa\xb2\x5c\x77\xa7\xcf\x01\xf8\x60\x87\xe2\xb9\x5e\x1e\x4d\x45\x52\x2f\xc3\xf4\x4a\x14\xcb\xfa\xcd\x48\xd6\x3e\xba\x04\x2c\xa3\xe1\x4a\xf8\xe5\xbe\xd3\x18\x6d\xe4\xfb\x69\xf3\x87\xaa\xc8\x82\x42\xd6\x4f\xbd\xcd\x11\x0c\x33\x88\x21\xad\x72\x56\x2f\x09\x2f\x55\xfa\x73\xb5\xe7\xd9\x2c\x9b\x6f\xee\x57\x94\xef\x48\x23\x19\x0f\x92\x57\xb1\x1f\xf4\xfc\x44\x57\xdb\xa9\x0f\xbd\xa8\x0d\xaf\xb5\x17\xfa\x27\x51\x94\x89\x01\x6f\x6f\x45\x80\x06\x40\x1f\x9f\xea\x20\x42\x6a\x54\x5a\xab\x77\x84\xc4\xe3\xdf\x9d\xfa\x9f\xb2\x79\xcf\x21\xa8\x6c\xe3\xf2\x92\xcf\x52\xd3\x43\xfc\xe9\x7e\x05\xb9\x2c\x84\x72\x3d\x7d\xdc\x65\xa7\xbc\x79\xae\x73\xb1\x24\x6b\x6b\x65\x04\x8a\x38\x55\xb6\x2b\x13\x40\x26\x46\x27\xc1\xdf\x82\xf3\x35\x2f\x3a\xc6\xd5\xa7\x5e\x08\x23\x57\x2c\x2f\xb3\x92\xbd\x7e\xf1\x51\x93\xcc\x5f\x6f\xbe\xfc\x4d\x27\xff\xd7\x41\xa9\x3d\x1a\xb7\x99\xd9\xfb\xd5\x45\xd2\xd2\x60\x6e\x35\x66\xeb\x79\xd5\x44\x85\xf5\x56\x15\x10\xa5\x7f\x17\xf2\xb3\x90\x9e\xd1\xbf\xc5\xe5\xd6\x46\x92\xb6\xc5\x03\xeb\x58\xf1\x7c\xae\x55\x41\x37\x60\x74\x67\xe8\xab\x51\xd8\x67\x06\x7f\x50\x37\x4e\x99\xf7\x48\x69\xe0\x17\x7f\x4e\xb5\x2c\x29\x30\xdf\xe5\xca\x2b\x6e\x45\x4d\xb8\xa3\x62\x25\xb2\xc9\x36\xbd\xc5\xbb\x75\xf1\x35\x5f\xfd\x8d\x7f\xa4\x76\xeb\x28\x28\x71\xe5\x21\x11\x83\x2f\xcf\xc2\x46\xda\x41\x5c\x20\x0d\x9e\x6c\x35\x0f\x49\x84\x6a\x00\x22\x66\x01\x91\xa2\x84\x0d\x7a\x53\x75\x36\x74\xc7\x8e\xa0\x0a\x5b\x9e\x26\x6f\xf2\x9b\x1a\x8f\xb1\x93\xe1\x32\xd2\x3f\x96\x0c\xd9\xc8\x24\x9b\x94\x3f\xcd\xb8\x65\x39\x5b\x2c\x03\xab\x67\x5b\xbb\x19\x93\x81\x3f\xb0\xa8\xd1\xe6\x83\x31\x29\x7c\x88\xdb\x1d\xca\x00\x31\x3b\x82\x11\x12\x1b\x60\x23\x47\x5c\xb6\x9d\x6a\xc6\x6c\x11\x16\xa5\x61\x71\x35\x0f\x68\x0c\xc7\x4c\x88\xfe\x99\x05\xed\x07\x87\x80\xe6\xd7\x1b\xcc\x73\x5f\xee\x75\xa9\x44\x4f\x69\x5d\x03\x6a\xa6\xb4\xb9\xe5\x9b\x66\x80\xb6\x31\x29\x67\xf8\xb2\x36\xff\x8b\xee\x60\x31\x6a\x70\xcb\xa0\x31\x2c\x99\x3b\x92\xe3\x0c\xa4\xcb\x11\x8c\x17\x45\xe7\xb5\x78\xc0\xad\x6c\x3a\x7d\x81\x87\x37\x25\x95\xdd\x16\x08\x93\x11\x5f\x11\xb0\x54\xfc\x17\x18\xc9\x67\xbd\xaf\xe9\xbf\x95\xad\x58\x3d\xb5\x93\x96\xd5\x94\x11\x4b\x65\x00\x99\x6e\xef\xf8\x2b\x70\x19\x1e\x52\xfa\x23\x30\xef\xdc\x66\xfa\x36\x3c\xb3\x79\xc9\xc6\x77\x40\x53\x5c\x99\x60\xca\x85\x7c\xfe\x4d\x0a\x88\xbb\xbb\xf2\xe7\xb2\x03\x4b\xb8\x43\x98\x0f\x6f\xa8\x6f\xf6\x02\x33\x5d\x1e\x25\xa6\x13\xc7\xd7\xa4\xef\x7a\x6b\x16\x1c\x25\x82\x23\x9a\xa5\x6f\x5c\x89\x94\xd0\x66\x46\xe0\xaa\x62\xc4\x8b\x54\xe0\x85\x22\x23\x77\x2e\xd4\x4e\x70\x59\x69\x7a\xec\x6b\xc2\x22\x5e\x0e\xda\xc5\x5f\xdb\xff\x1a\x16\xd4\xc6\xde\xf4\xc7\x7d\xdf\x38\xb2\x77\x39\x52\xc8\x11\xff\x14\x5a\xe3\x66\xe2\x16\xc4\x16\x00\x65\x9f\xf7\x8f\x64\xb1\x9e\x35\x4d\x74\xf9\x0a\x61\x90\x7c\x85\xc7\x02\x39\x4f\xe2\xcc\xa4\xf5\xfe\xb5\xb5\x35\x30\xb5\xf4\xc9\xe7\x2f\x5c\x09\x0c\xa4\x64\xa7\xa9\xc3\x95\x14\x37\x35\xfd\xd2\x42\x1d\x07\xe8\xef\xe4\x19\x8a\xd0\x6f\x9d\x23\x0a\x91\xd5\xfb\x50\xef\xc0\x2c\x2d\xb6\xed\x4a\xd7\x50\x31\x9e\x3e\x67\x2f\x52\x13\xdd\xae\x92\xc3\xfc\xec\x0e\xd5\xdf\xf5\x22\xd0\xca\xb8\x9b\xb8\x25\x32\x54\x25\x55\x29\xb3\x2c\xf5\x38\x5c\x90\x01\x42\x1b\x92\xcc\x67\x16\x3c\xc3\x95\x23\x5e\x40\x8a\x46\x3f\xa3\x1e\xef\xd0\x74\x2d\xe5\x13\x9b\xba\x2d\xc1\x41\xff\xf7\xbe\x17\x5f\x41\x8c\xf7\xcf\x89\xdd\x4f\x47\x4a\x2f\xc6\x1d\x0f\x38\x51\xf3\x4d\x52\xc4\x9b\xbd\x12\x26\xbd\x08\x96\x30\x71\xf5\xd4\x91\x8f\x7e\x12\xd0\x02\x8d\x32\x1b\x3d\x6b\xd4\x36\xe0\x2f\x6e\x55\xcc\x48\xc6\x13\xe3\x29\x91\x6c\xb8\x54\x52\x44\xbb\xa3\x77\x90\x8d\x6b\xcf\xeb\x7e\xd6\x62\x08\xe5\x07\xb4\xdf\xd8\xf2\xcb\xa5\xa3\xd4\x2f\x3a\x4e\x4d\xa8\x0e\xba\x19\x9c\xc8\xae\xc8\xa4\x0f\x25\x47\x10\xd8\x11\x83\x24\x96\x75\x0c\x4b\x34\xc3\x6b\x74\x6b\xf3\xcb\x60\xda\xe8\x1e\x73\xda\x95\x2e\xe4\x1c\x2a\x40\x23\x72\xe5\x23\x9f\xd2\xd4\x07\xd8\xe9\x1b\x9e\x57\xb4\x75\x8a\xac\xe5\x9d\xf7\xd8\x3d\x38\xad\x17\x71\x6c\xae\x50\x9d\xdb\x24\x27\xcb\xcf\x84\x7a\x7b\x10\x8e\xdb\x4b\x3a\x70\x81\x71\xe7\x31\xa9\x77\x02\xb6\x37\x7c\x79\x34\xec\x9b\x4c\x74\x46\xea\x03\x1e\x62\xbb\x39\xa6\xe2\xd3\x20\xea\xa8\xb5\x91\x0b\x14\xd8\x82\x6c\x20\x4f\x7a\x4a\xb2\x36\x24\x0b\x48\x60\x66\xb2\x7b\xe7\xf6\x9b\x84\x42\xff\xc8\x03\xc4\xed\x7f\xdd\x23\xef\x2f\xa0\x33\x7d\xb8\x42\x68\x1c\x0f\x8e\xf2\xba\xdc\xc0\x81\x13\xfe\x80\x61\xab\x31\xfa\xf9\x89\xba\x55\x51\x2a\x5f\x0e\x7b\x93\x6d\x63\xc0\xcc\xed\x58\xef\x82\xcf\x0c\x2d\x29\xfb\x23\x18\xe1\x2b\x56\xd4\x91\x2e\x9c\x4f\x96\xdb\x02\xca\x84\x49\x29\x4d\xa3\x3f\x8f\xce\x55\x07\xd3\xeb\x99\x23\x90\x72\xe2\xb2\xe1\x2e\x33\x55\x35\x3b\xf4\x90\x18\x2e\xeb\x7a\xa1\x03\xc9\x77\xc0\x67\x01\xca\xa0\xb7\x44\x55\x11\x66\x89\xb9\xdb\xe9\x0a\xd1\xd1\x85\x39\xd5\xe4\x1a\xda\x0f\x2f\x7f\x1e\x6c\x9a\xa6\x7a\xa2\xaa\x41\x6f\x84\x9f\x18\xc6\xfb\xd2\x2d\xcb\xe0\x3a\xf7\x8b\x15\xce\xdd\xda\x0d\x1b\xbb\xdd\x33\x62\x76\x9f\x50\xe9\x86\x80\xfc\xe5\x4b\x7e\x84\xa9\x4f\x32\x46\x66\xa6\x96\x7f\xc8\x0f\x2e\x5e\x9c\xa9\x4f\x61\x7f\x01\x16\x3a\x16\x01\xc6\x22\x19\xfc\xb5\x67\x82\x66\xe1\xc6\x18\xca\x89\x47\xe7\x4a\x2a\xde\x5e\x40\xda\xeb\x8d\xf5\x62\x0f\x36\x5f\x66\xae\xae\x88\xaf\xb4\x2d\x70\xce\x41\x45\xeb\xaf\xa7\x58\xac\xcc\x19\xe2\x78\xbc\x9f\x45\xda\x63\x85\x9c\x46\xeb\xdf\x7f\x0e\xe2\xe3\xfd\x9d\xd5\x41\x4d\xeb\x86\x07\xd7\xec\x55\x65\x68\x30\x1d\x26\x50\x78\x0b\xe7\xf7\x5f\xcd\xf9\x24\x41\xcb\x98\xf2\x36\x48\xb5\xed\x3f\x3a\x5e\x2c\x96\xda\xaa\xc1\xda\x0c\xe4\x6e\x1d\x85\xb5\xc2\xcf\xf4\xd9\xa9\x16\x7d\x58\x15\xfc\xc6\x6b\xbd\x94\x5f\x0b\x55\x87\x41\x95\xac\xbb\xbf\xec\xf8\x0f\x26\xb7\x0a\x4c\xf6\x62\xf9\x55\xea\x4e\x01\x35\x1f\xaa\x9f\x53\x00\xcf\x35\xc7\x2a\xe6\x09\x15\x06\x2c\xef\xf7\x89\x1e\x76\x77\x51\x91\x96\xbf\x81\x33\x33\x36\x1d\xbb\xee\xcf\xe8\xdc\x12\x7a\x94\xc2\x0b\x9f\xaf\x03\x6d\x71\xa8\x16\xb1\xab\x72\xe8\x20\x19\xd0\x69\x9b\x01\x2a\x12\x60\x22\xcc\x70\x31\x36\x63\x8d\xc8\x67\x49\x05\xb4\x10\x0e\x9b\x8d\x62\xab\xde\xb1\x3c\x84\xbe\x30\x0b\x49\xae\x44\xfc\xea\x4b\x89\x2f\xbf\x65\x64\xcd\xb0\x12\x69\x9e\x9f\xd1\xc9\x64\xf2\xa9\xd7\xf3\x12\x65\x6b\x47\xe6\x91\x66\x82\xb0\x04\x41\x57\xf4\xe2\xdf\xb9\xd5\xf5\x5d\x68\x49\x5d\x76\x3c\x80\x7d\x8e\xc6\x93\x2e\x56\x0c\x91\x3a\xb7\x6f\xc3\xff\x82\x02\x02\xae\x44\xfa\xcb\xda\x1a\xa1\x53\x10\x8f\x16\x8e\x42\x1b\xdb\x1a\x93\xc3\x82\xed\xf0\x8c\xc7\x9c\x5b\x71\x1a\xe1\x3c\x6e\xb8\xe5\x43\x93\xf4\x99\x8e\xc9\x9a\x95\xae\x7f\x85\x99\x9e\x78\x43\x9b\xa6\x03\x44\x55\x45\xf2\x1f\xfc\x85\x62\x07\xee\xa9\x45\x5f\xb1\x4c\x0a\xd9\x67\xf2\x2c\xf0\xf5\x72\xdb\xa5\xca\xc7\x45\x0e\x4e\x52\xce\x71\x3c\xe8\x71\xfc\x76\xd7\xad\xca\x01\x26\x0e\xa7\x08\xda\x43\x40\x01\x80\x5b\xcf\xd1\xf3\xcc\xd1\xc6\x08\x4d\x5e\xc2\xa2\x9f\x00\xe7\x7a\xa4\xf9\x1d\xee\x13\xee\xb5\xfc\xce\x8e\x82\xa1\x03\xb3\x7f\x6c\x4f\x25\x25\x95\x1e\xaa\xd4\x49\xa0\x8a\x75\xd2\xf3\x41\xf1\x7b\x2c\xbd\xf1\x73\x0d\x19\x2e\xf7\x58\xa6\xe8\xf8\x83\xd8\x8c\x07\xf2\xef\x41\xb4\x43\xda\xa7\x95\x00\x02\x44\x26\x3d\x2d\x30\xc7\x62\xf6\xfe\xcf\x3b\xb6\x7f\x8d\xda\x6c\xa7\xd9\xd4\x0a\x18\xe1\x86\x26\x85\x3c\x50\x94\xef\x66\xed\x64\x61\x7e\xe9\x38\x8c\x03\x7a\x74\xa9\x61\x69\x2d\x44\x70\x79\x6a\x68\x3f\x88\x0e\xb9\x04\x10\x60\xac\xee\x4e\x76\x18\xb7\x17\xa0\x57\x95\x1e\x1c\x66\x23\x62\xfd\x26\x70\x9b\xd8\x0a\xf3\x9f\xe5\xc1\x1f\x96\x54\xc2\x65\x5b\x21\xed\xcc\x32\x42\x84\x91\xdc\x5c\x10\x1e\x6a\x22\x2d\x2e\x51\xb9\xf2\x3d\x96\x0f\x12\x74\x8d\x9a\x5f\xc3\xe2\xf6\xc9\x53\x97\x23\x47\x65\x6a\x9f\x78\x7e\xe5\xbd\x19\x64\x45\xaa\x2e\xaf\x8f\x8f\xbd\xaf\xaa\x34\xed\x1b\x05\x5a\x09\xb3\x71\x8d\x8b\x3c\x8f\x1c\xfe\x5a\xc5\x3c\xf3\x7c\x9f\xa7\x6f\xe7\xac\x70\x87\x15\x7b\xdb\xa5\x23\xe2\xa9\xe7\x10\xb3\xf5\xb5\xa7\xff\x9b\x8b\x1f\x61\x2d\x9b\xbb\xb1\x10\x4f\x9d\x6d\xf9\x87\x87\xe9\x25\x23\xfe\x1d\x30\x10\x1e\xdf\x53\xd8\x9d\xf4\xa3\xc4\x2b\xd3\xbd\x27\x37\xf3\xaf\xe0\x15\x4e\xe1\xe8\xd9\x3d\x9a\x27\x75\xd8\x4c\x68\x6d\xac\x89\x84\x51\x2c\xf9\x55\x96\x23\xac\x6f\xe4\xef\x79\xf7\xb3\x4b\x21\x96\x9a\x8a\x8a\x72\x43\xf4\x1e\x11\xa5\x8d\xe3\xe4\xe1\x8f\x33\x85\xee\x70\x03\xc7\x9f\xa5\x27\xb9\x4e\x72\x33\x8f\x2a\x1c\x4c\x45\xff\x04\x5a\x61\x1f\xe1\xdb\x3c\xdd\xa0\xfe\xf1\x21\xf7\x8c\x52\x75\x34\xda\xb2\x66\xdd\x3f\xf6\xf7\x3d\x6b\x6b\xc0\x39\x98\x30\x98\x30\x51\x0a\x57\xeb\x0e\x2d\x74\xde\x38\x11\x27\x75\xb8\x77\x5d\x99\xc1\x5e\x38\xd0\xe7\x09\xf3\x97\x49\x2f\xc6\x46\x2f\x6e\x57\xa7\xff\x65\xd2\x5b\xe9\xeb\x75\x30\xa5\xef\x4f\xc8\x07\xff\x9e\x09\xb7\x01\xb5\x9d\x25\x0b\x54\x1a\x54\x6d\xb7\x5d\x11\x1f\x56\x0a\x47\x21\x7c\x12\x2c\x6b\x29\x28\xd5\xa0\xa0\x47\xa9\x88\xb3\xac\x51\x31\xdf\x00\x96\xc1\x5b\xbc\x39\x8d\x0e\x69\x65\x84\x1b\x17\xf4\x91\x63\x58\x85\xd8\x98\x7a\x04\xbb\xe2\x48\x21\x57\xb5\xca\x88\x3c\x76\x7e\xa1\x56\xb4\xe1\x78\x4b\xa1\xb7\xcf\xeb\x34\x3a\x71\xeb\x03\xeb\xce\x88\x79\x2a\xed\x8b\x18\xe7\xfd\x88\x0c\xd5\x93\x4c\xbe\x55\x52\x3c\x1b\x7c\x82\xb3\xed\x99\xb3\xde\x90\xa4\x79\xf2\x51\xe1\x90\x4a\xc8\x6f\x28\x02\x19\x57\xef\x35\x42\x1d\x3c\x8a\x2d\x39\xee\xe7\x31\x4e\x3f\x3f\x94\x5e\xa2\xfb\x5f\xf7\xf6\xc0\x9b\xa4\x72\xff\x3e\x56\x2c\x61\x68\xb0\xc1\xf8\x43\x65\x8b\xb1\x80\xeb\xfc\xf9\x54\xe5\x8e\x63\x3f\xb1\x61\x27\x51\xbf\x36\x0b\x15\xfe\x67\xca\x59\x4f\x5a\xae\x34\x23\x3a\x3b\x58\xee\xba\x56\x2f\xad\x63", 4096); res = syscall(SYS_serialize2, /*a=*/0x20001380ul); fprintf(stderr, "### call=8 errno=%u\n", res == -1 ? errno : 0); break; case 9: res = syscall(SYS_test, /*a0=*/0x20fff000ul, /*a1=*/0, /*a2=*/0x1000, /*a3=*/0x800, /*a4=*/0x400ul, 0); fprintf(stderr, "### call=9 errno=%u\n", res == -1 ? errno : 0); break; case 10: memcpy((void*)0x20000000, "\'/+,\000", 5); *(uint8_t*)0x20000040 = 0x1c; *(uint8_t*)0x20000044 = 1; STORE_BY_BITMASK(uint32_t, , 0x20000044, 3, 8, 4); res = -1; errno = EFAULT; res = syz_compare(/*want=*/0x20000000, /*want_len=*/5, /*got=*/0x20000040, /*got_len=*/8); fprintf(stderr, "### call=10 errno=%u\n", res == -1 ? errno : 0); break; case 11: res = -1; errno = EFAULT; res = syz_compare_int(/*n=*/2, /*v0=*/0xffff, /*v1=*/0x100, 0, 0); fprintf(stderr, "### call=11 errno=%u\n", res == -1 ? errno : 0); break; case 12: res = -1; errno = EFAULT; res = syz_errno(/*v=*/0xfffffff9); fprintf(stderr, "### call=12 errno=%u\n", res == -1 ? errno : 0); break; case 13: memcpy((void*)0x20000080, "\xfe\xaa\x0e\x27\x8d\x40\x3f\x03\xc2\xbf\x80\x48\x86\x76\x75\x4e\x43\x50\x32\xf8\x1e\xee\x19\xff\xa3\xf4\x8c\xa7\x58\xe8\x2b\x07\x72\x89\x83\x4e\xb7\x9b\xe6\x7b\x6c\xf4\x37\xe2\xd9\xb1\x01\xf3\x97\xd7", 50); res = -1; errno = EFAULT; res = syz_execute_func(/*text=*/0x20000080); fprintf(stderr, "### call=13 errno=%u\n", res == -1 ? errno : 0); break; case 14: res = -1; errno = EFAULT; res = syz_exit(/*status=*/0xffffffc0); fprintf(stderr, "### call=14 errno=%u\n", res == -1 ? errno : 0); break; case 15: res = -1; errno = EFAULT; res = syz_mmap(/*addr=*/0x20ffc000, /*len=*/0x1000); fprintf(stderr, "### call=15 errno=%u\n", res == -1 ? errno : 0); break; case 16: res = -1; errno = EFAULT; res = syz_sleep_ms(/*ms=*/1); fprintf(stderr, "### call=16 errno=%u\n", res == -1 ? errno : 0); break; case 17: res = -1; errno = EFAULT; res = syz_test_fuzzer1(/*a=*/0xd, /*b=*/0xc, /*c=*/0xb); fprintf(stderr, "### call=17 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; } :312:9: error: call to undeclared function 'syscall'; ISO C99 and later do not support implicit function declarations [-Werror,-Wimplicit-function-declaration] res = syscall(SYS_breaks_returns); ^ 1 error generated. compiler invocation: c++ [-o /tmp/syz-executor3668278307 -DGOOS_test=1 -DGOARCH_64=1 -DHOSTGOOS_openbsd=1 -x c - -m64 -lutil -O2 -pthread -Wall -Werror -Wparentheses -Wunused-const-variable -Wframe-larger-than=16384 -Wno-array-bounds -Wno-unused-but-set-variable -Wno-unused-command-line-argument -no-pie -fno-exceptions] --- FAIL: TestGenerate/test/64/10 (2.08s) 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: breaks_returns() (fail_nth: 1) breaks_returns() (async) test$end0(&(0x7f0000000000)={0x20, 0x8, 0x7, 0x7fffffff}) (rerun: 4) test$length9(&(0x7f0000000040)={&(0x7f0000ffe000/0x2000)=nil, 0x2000}) test$recur1(&(0x7f0000001280)={&(0x7f0000001240)={&(0x7f0000000600)={0x0, &(0x7f00000005c0)={&(0x7f0000000080), 0x0, &(0x7f0000000180)={&(0x7f00000000c0), &(0x7f0000000100), &(0x7f0000000140)}, &(0x7f00000002c0)={&(0x7f00000001c0), &(0x7f0000000200), &(0x7f0000000240), &(0x7f0000000280)}, 0x0, &(0x7f0000000580)={&(0x7f0000000300), 0x0, &(0x7f0000000400)={&(0x7f0000000340), &(0x7f0000000380), 0x0, &(0x7f00000003c0)}, &(0x7f0000000540)={&(0x7f0000000440), &(0x7f0000000480), &(0x7f00000004c0), &(0x7f0000000500)}}}}, &(0x7f0000001200)={&(0x7f0000000680)={&(0x7f0000000640)}, &(0x7f00000009c0)={0x0, &(0x7f0000000980)={&(0x7f0000000700)={&(0x7f00000006c0)}, 0x0, &(0x7f0000000840)={&(0x7f0000000740), &(0x7f0000000780), &(0x7f00000007c0), &(0x7f0000000800)}, &(0x7f0000000940)={&(0x7f0000000880), &(0x7f00000008c0), &(0x7f0000000900)}}}, &(0x7f0000000ac0)={&(0x7f0000000a00), 0x0, &(0x7f0000000a40), &(0x7f0000000a80)}, &(0x7f0000000bc0)={&(0x7f0000000b00), 0x0, &(0x7f0000000b40), &(0x7f0000000b80)}, &(0x7f0000000e80)={0x0, &(0x7f0000000c00), &(0x7f0000000d40)={&(0x7f0000000c40), &(0x7f0000000c80), &(0x7f0000000cc0), &(0x7f0000000d00)}, &(0x7f0000000e40)={&(0x7f0000000d80), &(0x7f0000000dc0), &(0x7f0000000e00)}}, &(0x7f00000011c0)={&(0x7f0000000f00)={&(0x7f0000000ec0)}, &(0x7f0000000f40), &(0x7f0000001040)={&(0x7f0000000f80), &(0x7f0000000fc0), 0x0, &(0x7f0000001000)}, &(0x7f0000001180)={&(0x7f0000001080), &(0x7f00000010c0), &(0x7f0000001100), &(0x7f0000001140)}}}}}) foo$anyres(&(0x7f00000012c0), &(0x7f0000001300), &(0x7f0000001340)) breaks_returns() test$length10(&(0x7f0000ffe000/0x1000)=nil, 0x1000, 0x1000, 0x800, 0x400) serialize2(&(0x7f0000001380)="b3eb980b12af03684832ff0d1367b05ded250f350bffb9c67243a4a26cac6a5664ba93ce0c5ffca81d81c8a8a18416566c33d00a999baf45ad351740795a1a3a7f59abe59ac218f6e204dc1329f158d36e4d0c86200e4d8b5dbda275d20e5315c52e12895663d7e5f4ad1f0d1a8ac3014eb4603f30445a975d0a77feec81e4e99bd71acad646cb04b60819e8ec24a8a2db3909688bb284162872bc715c3ef9863a13d60f4e3acd6954f1ff268eee5cbe35465b4e65c60dbf3da35689af39d3dc0d9d2226406147feccad22fd6d9255a8b92178c6afa7aa2decd0ae46ec45c9bbf6e53fead2d682d715175ba608f84ba14d9a28c5e47ebd829a76bca0c2821b0e29915a2889e001a201524fcf6245adcf4d326d69176d7fa27ed8d593e25eef7afaa1479e506348f0a6753697034b9c609f465146f9569ddd56aff7fc2fadefb89fa2d2d4b838e7d63200097b77ed52d9c31c98fd76f9467ff5116ca00f85846a91bef69419aac6ebc7ddfba2b268bfe262f6f55d52a647af8a0b45391ba9df09e25664019b4107a231ee761a81960c1198f5209e3c3707d768b8d099eee563055a88c3049f5addf8747a2dfd6f3b43c5c25df50c8a4b77872a8d8905dfa0885adddb8fd49e29735262b1c94ea59ce0cea5a061fbb042c7e301e29212f2f1476e7c25317cb5fa81774d78b20efea377d4fbfdb190cc1fd58f568e6ac19be05d99c8362428f59f47311abf178f6b083645ccf013624a418b8d9fecfa26f7dcba32b4395449c0d1ef6fa37f33fa5ea60192bb5ce92e458d90cedf0e85787811c64bd0436f4c5ca01facae7b793d696442982841f6e83f603d5806742a4ec7acb406c55b27aaad7a628eb2f41f8007c0e3728fa1f40194d271392f6c7f684e1dbe239cf6c501bd4f4f643153b4e7bd32ff4b3db361fe9c4a87b4d7492eef749bd18c6a44daba60542deadc45cbfa8a46b8d252670ee312ede53bb516f0000cc25009f4d4e74c6f61306c344a9ba48fa2a2d70f3e1ac018f9c0d15ddaafb5cf89867ca6bf6b37427c477eec1acb7f369b9422a8858ebc2f3a10a9e90aea0f4df82ab2e8d10dffcb99892a8155b4f8aff79e93df24848aef035e85d57048c7c93fe544e3ef1754c49240573ac1ea67b94d8574542dff03f06bfedc3f51c620402861f777fa47bc05c865a6e63ab48e70c4b314e6f80953cb1a22b9226a1b3cc084736b2a826a7fc841023eaa56448d94757b013833c53e182c1de066878701def73bdd13d7404565dcc317ae650383b3ea7d5e6aed3dbf575a2ca5132850e394adeb9fee108719378320b9b4e0c5a6ddc77594a8024151b3a6d322fb48e5db7f0fb04a9149fb278ed9d8ad19b1b8a268cba4b300e93139f2b611bb777983b74d6fac852d743fb5011f9bf2bfd3f4314cdc9b1e71c65ea76e4953af36bcb4b9649aa0eeaa6c892e170d3285241708594a91bdec0fdedd974b4220b4b70a5a939938527c6e6ef823b36256c1369fbeed64a90e8be545eac8968c764139ccd4dc5901bc019985aab5fe71e24c55f260c4c4b7fd5cf5288b13dcda57bb3450fb4f6ece5e7c4a0a21fff3124c3c783afa8744f6ca3f5c3de5b4c154cea12ba47c3c694ea8303a8d7c8510089cc1609a82e6a7e089f63afd0585d3f5aba22634dd7c9579364da1d93a995f7706da208d65b948d74613e0e4f8c77974db272edf2f8d5291cd3af0d0adeecc163585161bc8ec9b62823feb864a8ffa00120719981907c027ef41a9c5ebef88411b420e2c6041e94dbae9388f72db0089d4733cedc368cd1d6805634c80bffb9c3430f402b73fff1d6cf355b9509c1bfd48e79b1417141c9b9ab1c0f62a4cf97bae55fe53afea353c1061bb882e101d7434b39be6558e77ea26b44b507c2c44dd0a625c044b0a78ee2364862842d9ef0f1bcb563f01adbdee69e52d022856ad6504d811e849ab470d613da0ce951003529822adc102c4c62a3aad2f7392aa4601ab0863150c358aeec2fc5e3a906df00fe5db1226bac20f08d701f181b90a4d389b91dddbc24e40488e1c46ab2d05b4823029453cc9253ebc4370964a64c1087cb3857d736dc303ce93066db60fc61be9f79c0c9e1ca7e4d73f95172bcbaf6cbd18c06d1c1cccf23d85592ee6844349b5e72e6a5e10f5eed5eca8f9c0a8a95e214389530194a03043b21108a49e3466cebe3078dadd364faf67fe3c51e1df75f4aa619854b780e0c04e9a9bf2301c030a3626ce820afc59e1c13ed6fa3e3030b966f3878f17a16a1209987aa9f7eb76988d401f10bdb0a419ddced1105659e6219440e35e984c3e7ada78c30a9a7399ce1abce36c7ce3e39a89cfac98f249735914cfc16baf666ed4b51ff2193c2836bd43e5d537f2653646f05c8109ef8edfd35b3acd73eb7e790c64cc2a7c9596e4a5f3d0e2d92b301c9ec5d82768ab211801bea96340c30e1b09fc9fae7cff2615d61ede29f9b0d712abffcd93ea3b20ceb7aa57368e84c3876ecd7a931cb19ea517603ef44a98b246288b27336980e4bb509007bcd01858cd35e9cd8df288221d3a487268828fe732fd7da2e2b6926b4a9b54d54b41c77998d1ef538487e1dcdf87fcc3fab25c77a7cf01f86087e2b95e1e4d45522fc3f44a14cbfacd48d63eba042ca3e14af8e5bed3186de4fb69f387aac88242d64fbdcd110c338821ad72562f092f55fa73b5e7d92c9b6fee5794ef4823190f9257b11ff4fc4457dba90fbda80dafb517fa27519489016f6f458006401f9fea20426a545aab7784c4e3df9dfa9fb279cf21a86ce3f292cf52d343fce97e05b92c84723d7ddc65a7bc79ae73b1246b6b65048a3855b62b1340264627c1df82f3352f3ac6d5a75e0823572c2fb392bd7ef15193cc5f6fbefc4d27ffd741a93d1ab799d9fbd545d2d2606e3566eb79d54485f5561510a57f17f2b3909ed1bfc5e5d64692b6c503eb58f17cae554137607467e8ab51d867067f50374e99f74869e0177f4eb52c2930dfe5ca2b6e454db8a36225b2c936bdc5bb75f1355ffd8d7fa476eb282871e52111832fcfc246da415c200d9e6c350f49846a0022660191a2840d7a53753674c78ea00a5b9e266ff29b1a8fb193e132d23f960cd9c8249b943fcdb865395b2c03ab675bbb1993813fb0a8d1e68331297c88db1dca00313b8211121b6023475cb69d6ac66c1116a56171350f680cc74c88fe9905ed078780e6d71bcc735fee75a9444f695d036aa6b4b9e59b6680b6312967f8b236ff8bee60316a70cba0312c993b92e30ca4cb118c1745e7b578c0ad6c3a7d8187372595dd160893115f11b054fc1718c967bdafe9bf95ad583db59396d594114b6500996eeff82b70191e52fa2330efdc66fa363cb379c9c67740535c9960ca857cfe4d0a88bbbbf2e7b2034bb843980f6fa86ff602335d1e25a613c7d7a4ef7a6b161c2582239aa56f5c8994d06646e0aa62c48b54e0852223772ed44e7059697aec6bc2225e0edac55fdbff1a16d4c6def4c77ddf38b2773952c811ff145ae366e216c41600659ff78f64b19e354d74f90a61907c85c702394fe2cca4f5feb5b53530b5f4c9e72f5c090ca464a7a9c395143735fdd2421d07e8efe4198ad06f9d230a91d5fb50efc02c2db6ed4ad750319e3e672f5213ddae92c3fcec0ed5dff522d0cab89bb8253254255529b32cf5385c9001421b92cc67163cc395235e408a463fa31eefd0742de5139bba2dc141fff7be175f418cf7cf89dd4f474a2fc61d0f3851f34d52c49bbd1226bd08963071f5d4918f7e12d0028d321b3d6bd436e02f6e55cc48c613e329916cb8545244bba377908d6bcfeb7ed66208e507b4dfd8f2cba5a3d42f3a4e4da80eba199cc8aec8a40f254710d811832496750c4b34c36b746bf3cb60dae81e73da952ee41c2a402372e5239fd2d407d8e91b9e57b4758aace59df7d83d38ad17716cae509ddb2427cbcf847a7b108edb4b3a708171e731a97702b6377c7934ec9b4c7446ea031e62bb39a6e2d320eaa8b5910b14d8826c204f7a4ab236240b486066b27be7f69b8442ffc803c4ed7fdd23ef2fa0337db842681c0f8ef2badcc08113fe8061ab31faf989ba55512a5f0e7b936d63c0cced58ef82cf0c2d29fb2318e12b56d4912e9c4f96db02ca8449294da33f8fce5507d3eb99239072e2b2e12e3355353bf490182eeb7aa103c977c06701caa0b74455116689b9dbe90ad1d18539d5e41ada0f2f7f1e6c9aa67aa2aa416f849f18c6fbd22dcbe03af78b15ceddda0d1bbbdd3362769f50e98680fce54b7e84a94f324666a6967fc80f2e5e9ca94f617f01163a1601c62219fcb5678266e1c618ca8947e74a2ade5e40daeb8df5620f365f66aeae88afb42d70ce4145ebafa758accc19e278bc9f45da63859c46ebdf7f0ee2e3fd9dd5414deb8607d7ec556568301d2650780be7f75fcdf92441cb98f23648b5ed3f3a5e2c96daaac1da0ce46e1d85b5c2cff4d9a9167d5815fcc66bbd945f0b55874195acbbbfecf80f26b70a4cf662f955ea4e01351faa9f5300cf35c72ae60915062ceff7891e7677519196bf813333361dbbeecfe8dc127a94c20b9faf036d71a816b1ab72e82019d0699b012a126022cc703136638dc8674905b4100e9b8d62abdeb13c84be300b49ae44fcea4b892fbf6564cdb012699e9fd1c964f2a9d7f312656b47e6916682b0044157f4e2dfb9d5f55d68495d763c807d8ec6932e560c913ab76fc3ff820202ae44facbda1aa153108f168e421bdb1a93c382edf08cc79c5b711ae13c6eb8e54393f4998ec99a95ae7f85999e78439ba603445545f21ffc856207eea9455fb14c0ad967f22cf0f572dba5cac7450e4e52ce713ce871fc76d7adca01260ea708da434001805bcfd1f3ccd1c6084d5ec2a29f00e77aa4f91dee13eeb5fcce8e82a103b37f6c4f2525951eaad449a08a75d2f341f17b2cbdf1730d192ef758a6e8f883d88c07f2ef41b443daa795000244263d2d30c762f6fecf3bb67f8dda6ca7d9d40a18e18626853c5094ef66ed64617ee9388c037a74a961692d4470796a683f880eb9041060acee4e7618b717a057951e1c662362fd26709bd80af39fe5c11f9654c2655b21edcc32428491dc5c101e6a222d2e51b9f23d960f12748d9a5fc3e2f6c953972347656a9f787ee5bd196445aa2eaf8f8fbdafaa34ed1b055a09b3718d8b3c8f1cfe5ac53cf37c9fa76fe7ac7087157bdba523e2a9e710b3f5b5a7ff9b8b1f612d9bbbb1104f9d6df98787e92523fe1d30101edf53d89df4a3c42bd3bd2737f3afe0154ee1e8d93d9a2775d84c686dac8984512cf9559623ac6fe4ef79f7b34b21969a8a8a7243f41e11a58de3e4e18f3385ee7003c79fa527b94e72338f2a1c4c45ff045a611fe1db3cdda0fef121f78c527534dab266dd3ff6f73d6b6bc03998309830510a57eb0e2d74de38112775b8775d99c15e38d0e709f397492fc6462f6e57a7ff65d25be9eb7530a5ef4fc807ff9e09b701b59d250b541a546db75d111f560a47217c122c6b2928d5a0a047a988b3ac5131df0096c15bbc398d0e6965841b17f491635885d8987a04bbe2482157b5ca883c767ea156b4e1784ba1b7cfeb343a71eb03ebce88792aed8b18e7fd880cd5934cbe55523c1b7c82b3ed99b3de90a479f251e1904ac86f28021957ef35421d3c8a2d39eee7314e3f3f945ea2fb5ff7f6c09ba472ff3e562c6168b0c1f843658bb180ebfcf954e58e633fb1612751bf360b15fe67ca594f5aae34233a3b58eeba562fad63") test$length10(&(0x7f0000fff000/0x1000)=nil, 0x1000, 0x1000, 0x800, 0x400) syz_compare(&(0x7f0000000000)='\'/+,\x00', 0x5, &(0x7f0000000040)=@bf5={0x1c, {0x1, 0x3}}, 0x8) syz_compare_int$2(0x2, 0xffff, 0x100) syz_errno(0xfffffff9) syz_execute_func(&(0x7f0000000080)="feaa0e278d403f03c2bf80488676754e435032f81eee19ffa3f48ca758e82b077289834eb79be67b6cf437e2d9b101f397d7") syz_exit(0xffffffc0) syz_mmap(&(0x7f0000ffc000/0x1000)=nil, 0x1000) syz_sleep_ms(0x1) syz_test_fuzzer1(0xd, 0xc, 0xb) 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 #ifndef SYS_breaks_returns #define SYS_breaks_returns 0 #endif #ifndef SYS_foo #define SYS_foo 0 #endif #ifndef SYS_serialize2 #define SYS_serialize2 0 #endif #ifndef SYS_test #define SYS_test 0 #endif 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 { pthread_mutex_t mu; pthread_cond_t cv; int state; } event_t; static void event_init(event_t* ev) { if (pthread_mutex_init(&ev->mu, 0)) exit(1); if (pthread_cond_init(&ev->cv, 0)) exit(1); ev->state = 0; } static void event_reset(event_t* ev) { ev->state = 0; } static void event_set(event_t* ev) { pthread_mutex_lock(&ev->mu); if (ev->state) exit(1); ev->state = 1; pthread_mutex_unlock(&ev->mu); pthread_cond_broadcast(&ev->cv); } static void event_wait(event_t* ev) { pthread_mutex_lock(&ev->mu); while (!ev->state) pthread_cond_wait(&ev->cv, &ev->mu); pthread_mutex_unlock(&ev->mu); } static int event_isset(event_t* ev) { pthread_mutex_lock(&ev->mu); int res = ev->state; pthread_mutex_unlock(&ev->mu); return res; } static int event_timedwait(event_t* ev, uint64_t timeout) { uint64_t start = current_time_ms(); uint64_t now = start; pthread_mutex_lock(&ev->mu); for (;;) { if (ev->state) break; uint64_t remain = timeout - (now - start); struct timespec ts; ts.tv_sec = remain / 1000; ts.tv_nsec = (remain % 1000) * 1000 * 1000; pthread_cond_timedwait(&ev->cv, &ev->mu, &ts); now = current_time_ms(); if (now - start > timeout) break; } int res = ev->state; pthread_mutex_unlock(&ev->mu); return res; } #define BITMASK(bf_off,bf_len) (((1ull << (bf_len)) - 1) << (bf_off)) #define STORE_BY_BITMASK(type,htobe,addr,val,bf_off,bf_len) *(type*)(addr) = htobe((htobe(*(type*)(addr)) & ~BITMASK((bf_off), (bf_len))) | (((type)(val) << (bf_off)) & BITMASK((bf_off), (bf_len)))) static long syz_mmap(volatile long a0, volatile long a1) { return (long)mmap((void*)a0, a1, PROT_READ | PROT_WRITE, MAP_ANON | MAP_PRIVATE | MAP_FIXED, -1, 0); } static long syz_errno(volatile long v) { errno = v; return v == 0 ? 0 : -1; } static long syz_exit(volatile long status) { _exit(status); return 0; } static long syz_sleep_ms(volatile long ms) { sleep_ms(ms); return 0; } static long syz_compare(volatile long want, volatile long want_len, volatile long got, volatile long got_len) { if (want_len != got_len) { errno = EBADF; goto error; } if (memcmp((void*)want, (void*)got, want_len)) { errno = EINVAL; goto error; } return 0; error: return -1; } static long syz_compare_int(volatile long n, ...) { va_list args; va_start(args, n); long v0 = va_arg(args, long); long v1 = va_arg(args, long); long v2 = va_arg(args, long); long v3 = va_arg(args, long); va_end(args); if (n < 2 || n > 4) return errno = E2BIG, -1; if (n <= 2 && v2 != 0) return errno = EFAULT, -1; if (n <= 3 && v3 != 0) return errno = EFAULT, -1; if (v0 != v1) return errno = EINVAL, -1; if (n > 2 && v0 != v2) return errno = EINVAL, -1; if (n > 3 && v0 != v3) return errno = EINVAL, -1; return 0; } static void loop(); static int do_sandbox_none(void) { loop(); return 0; } static void fake_crash(const char* name) { exit(1); exit(1); } static long syz_test_fuzzer1(volatile long a, volatile long b, volatile long c) { if (a == 1 && b == 1 && c == 1) fake_crash("first bug"); if (a == 1 && b == 2 && c == 3) fake_crash("second bug"); return 0; } 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 < 18; 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(); } void execute_call(int call) { switch (call) { case 0: inject_fault(1); syscall(SYS_breaks_returns); break; case 1: syscall(SYS_breaks_returns); break; case 2: *(uint8_t*)0x20000000 = 0x20; *(uint16_t*)0x20000001 = htobe16(8); *(uint32_t*)0x20000003 = htobe32(7); *(uint64_t*)0x20000007 = htobe64(0x7fffffff); syscall(SYS_test, /*a0=*/0x20000000ul, 0, 0, 0, 0, 0); { int i; for(i = 0; i < 4; i++) { syscall(SYS_test, /*a0=*/0x20000000ul, 0, 0, 0, 0, 0); } } break; case 3: *(uint64_t*)0x20000040 = 0x20ffe000; *(uint64_t*)0x20000048 = 0x2000; syscall(SYS_test, /*a0=*/0x20000040ul, 0, 0, 0, 0, 0); break; case 4: *(uint64_t*)0x20001280 = 0x20001240; *(uint64_t*)0x20001240 = 0x20000600; *(uint64_t*)0x20000600 = 0; *(uint64_t*)0x20000608 = 0x200005c0; *(uint64_t*)0x200005c0 = 0x20000080; *(uint64_t*)0x20000080 = 0; *(uint64_t*)0x200005c8 = 0; *(uint64_t*)0x200005d0 = 0x20000180; *(uint64_t*)0x20000180 = 0x200000c0; *(uint64_t*)0x200000c0 = 0; *(uint64_t*)0x200000c8 = 0; *(uint64_t*)0x200000d0 = 0; *(uint64_t*)0x200000d8 = 0; *(uint64_t*)0x20000188 = 0x20000100; *(uint64_t*)0x20000100 = 0; *(uint64_t*)0x20000108 = 0; *(uint64_t*)0x20000110 = 0; *(uint64_t*)0x20000118 = 0; *(uint64_t*)0x20000190 = 0x20000140; *(uint64_t*)0x20000140 = 0; *(uint64_t*)0x20000148 = 0; *(uint64_t*)0x20000150 = 0; *(uint64_t*)0x20000158 = 0; *(uint64_t*)0x20000198 = 0; *(uint64_t*)0x200005d8 = 0x200002c0; *(uint64_t*)0x200002c0 = 0x200001c0; *(uint64_t*)0x200001c0 = 0; *(uint64_t*)0x200001c8 = 0; *(uint64_t*)0x200001d0 = 0; *(uint64_t*)0x200001d8 = 0; *(uint64_t*)0x200002c8 = 0x20000200; *(uint64_t*)0x20000200 = 0; *(uint64_t*)0x20000208 = 0; *(uint64_t*)0x20000210 = 0; *(uint64_t*)0x20000218 = 0; *(uint64_t*)0x200002d0 = 0x20000240; *(uint64_t*)0x20000240 = 0; *(uint64_t*)0x20000248 = 0; *(uint64_t*)0x20000250 = 0; *(uint64_t*)0x20000258 = 0; *(uint64_t*)0x200002d8 = 0x20000280; *(uint64_t*)0x20000280 = 0; *(uint64_t*)0x20000288 = 0; *(uint64_t*)0x20000290 = 0; *(uint64_t*)0x20000298 = 0; *(uint64_t*)0x200005e0 = 0; *(uint64_t*)0x200005e8 = 0x20000580; *(uint64_t*)0x20000580 = 0x20000300; *(uint64_t*)0x20000300 = 0; *(uint64_t*)0x20000588 = 0; *(uint64_t*)0x20000590 = 0x20000400; *(uint64_t*)0x20000400 = 0x20000340; *(uint64_t*)0x20000340 = 0; *(uint64_t*)0x20000348 = 0; *(uint64_t*)0x20000350 = 0; *(uint64_t*)0x20000358 = 0; *(uint64_t*)0x20000408 = 0x20000380; *(uint64_t*)0x20000380 = 0; *(uint64_t*)0x20000388 = 0; *(uint64_t*)0x20000390 = 0; *(uint64_t*)0x20000398 = 0; *(uint64_t*)0x20000410 = 0; *(uint64_t*)0x20000418 = 0x200003c0; *(uint64_t*)0x200003c0 = 0; *(uint64_t*)0x200003c8 = 0; *(uint64_t*)0x200003d0 = 0; *(uint64_t*)0x200003d8 = 0; *(uint64_t*)0x20000598 = 0x20000540; *(uint64_t*)0x20000540 = 0x20000440; *(uint64_t*)0x20000440 = 0; *(uint64_t*)0x20000448 = 0; *(uint64_t*)0x20000450 = 0; *(uint64_t*)0x20000458 = 0; *(uint64_t*)0x20000548 = 0x20000480; *(uint64_t*)0x20000480 = 0; *(uint64_t*)0x20000488 = 0; *(uint64_t*)0x20000490 = 0; *(uint64_t*)0x20000498 = 0; *(uint64_t*)0x20000550 = 0x200004c0; *(uint64_t*)0x200004c0 = 0; *(uint64_t*)0x200004c8 = 0; *(uint64_t*)0x200004d0 = 0; *(uint64_t*)0x200004d8 = 0; *(uint64_t*)0x20000558 = 0x20000500; *(uint64_t*)0x20000500 = 0; *(uint64_t*)0x20000508 = 0; *(uint64_t*)0x20000510 = 0; *(uint64_t*)0x20000518 = 0; *(uint64_t*)0x200005a0 = 0; *(uint64_t*)0x200005a8 = 0; *(uint64_t*)0x20001248 = 0x20001200; *(uint64_t*)0x20001200 = 0x20000680; *(uint64_t*)0x20000680 = 0x20000640; *(uint64_t*)0x20000640 = 0; *(uint64_t*)0x20001208 = 0x200009c0; *(uint64_t*)0x200009c0 = 0; *(uint64_t*)0x200009c8 = 0x20000980; *(uint64_t*)0x20000980 = 0x20000700; *(uint64_t*)0x20000700 = 0x200006c0; *(uint64_t*)0x200006c0 = 0; *(uint64_t*)0x20000988 = 0; *(uint64_t*)0x20000990 = 0x20000840; *(uint64_t*)0x20000840 = 0x20000740; *(uint64_t*)0x20000740 = 0; *(uint64_t*)0x20000748 = 0; *(uint64_t*)0x20000750 = 0; *(uint64_t*)0x20000758 = 0; *(uint64_t*)0x20000848 = 0x20000780; *(uint64_t*)0x20000780 = 0; *(uint64_t*)0x20000788 = 0; *(uint64_t*)0x20000790 = 0; *(uint64_t*)0x20000798 = 0; *(uint64_t*)0x20000850 = 0x200007c0; *(uint64_t*)0x200007c0 = 0; *(uint64_t*)0x200007c8 = 0; *(uint64_t*)0x200007d0 = 0; *(uint64_t*)0x200007d8 = 0; *(uint64_t*)0x20000858 = 0x20000800; *(uint64_t*)0x20000800 = 0; *(uint64_t*)0x20000808 = 0; *(uint64_t*)0x20000810 = 0; *(uint64_t*)0x20000818 = 0; *(uint64_t*)0x20000998 = 0x20000940; *(uint64_t*)0x20000940 = 0x20000880; *(uint64_t*)0x20000880 = 0; *(uint64_t*)0x20000888 = 0; *(uint64_t*)0x20000890 = 0; *(uint64_t*)0x20000898 = 0; *(uint64_t*)0x20000948 = 0x200008c0; *(uint64_t*)0x200008c0 = 0; *(uint64_t*)0x200008c8 = 0; *(uint64_t*)0x200008d0 = 0; *(uint64_t*)0x200008d8 = 0; *(uint64_t*)0x20000950 = 0x20000900; *(uint64_t*)0x20000900 = 0; *(uint64_t*)0x20000908 = 0; *(uint64_t*)0x20000910 = 0; *(uint64_t*)0x20000918 = 0; *(uint64_t*)0x20000958 = 0; *(uint64_t*)0x200009a0 = 0; *(uint64_t*)0x200009a8 = 0; *(uint64_t*)0x20001210 = 0x20000ac0; *(uint64_t*)0x20000ac0 = 0x20000a00; *(uint64_t*)0x20000a00 = 0; *(uint64_t*)0x20000a08 = 0; *(uint64_t*)0x20000a10 = 0; *(uint64_t*)0x20000a18 = 0; *(uint64_t*)0x20000ac8 = 0; *(uint64_t*)0x20000ad0 = 0x20000a40; *(uint64_t*)0x20000a40 = 0; *(uint64_t*)0x20000a48 = 0; *(uint64_t*)0x20000a50 = 0; *(uint64_t*)0x20000a58 = 0; *(uint64_t*)0x20000ad8 = 0x20000a80; *(uint64_t*)0x20000a80 = 0; *(uint64_t*)0x20000a88 = 0; *(uint64_t*)0x20000a90 = 0; *(uint64_t*)0x20000a98 = 0; *(uint64_t*)0x20001218 = 0x20000bc0; *(uint64_t*)0x20000bc0 = 0x20000b00; *(uint64_t*)0x20000b00 = 0; *(uint64_t*)0x20000b08 = 0; *(uint64_t*)0x20000b10 = 0; *(uint64_t*)0x20000b18 = 0; *(uint64_t*)0x20000bc8 = 0; *(uint64_t*)0x20000bd0 = 0x20000b40; *(uint64_t*)0x20000b40 = 0; *(uint64_t*)0x20000b48 = 0; *(uint64_t*)0x20000b50 = 0; *(uint64_t*)0x20000b58 = 0; *(uint64_t*)0x20000bd8 = 0x20000b80; *(uint64_t*)0x20000b80 = 0; *(uint64_t*)0x20000b88 = 0; *(uint64_t*)0x20000b90 = 0; *(uint64_t*)0x20000b98 = 0; *(uint64_t*)0x20001220 = 0x20000e80; *(uint64_t*)0x20000e80 = 0; *(uint64_t*)0x20000e88 = 0x20000c00; *(uint64_t*)0x20000c00 = 0; *(uint64_t*)0x20000c08 = 0; *(uint64_t*)0x20000e90 = 0x20000d40; *(uint64_t*)0x20000d40 = 0x20000c40; *(uint64_t*)0x20000c40 = 0; *(uint64_t*)0x20000c48 = 0; *(uint64_t*)0x20000c50 = 0; *(uint64_t*)0x20000c58 = 0; *(uint64_t*)0x20000d48 = 0x20000c80; *(uint64_t*)0x20000c80 = 0; *(uint64_t*)0x20000c88 = 0; *(uint64_t*)0x20000c90 = 0; *(uint64_t*)0x20000c98 = 0; *(uint64_t*)0x20000d50 = 0x20000cc0; *(uint64_t*)0x20000cc0 = 0; *(uint64_t*)0x20000cc8 = 0; *(uint64_t*)0x20000cd0 = 0; *(uint64_t*)0x20000cd8 = 0; *(uint64_t*)0x20000d58 = 0x20000d00; *(uint64_t*)0x20000d00 = 0; *(uint64_t*)0x20000d08 = 0; *(uint64_t*)0x20000d10 = 0; *(uint64_t*)0x20000d18 = 0; *(uint64_t*)0x20000e98 = 0x20000e40; *(uint64_t*)0x20000e40 = 0x20000d80; *(uint64_t*)0x20000d80 = 0; *(uint64_t*)0x20000d88 = 0; *(uint64_t*)0x20000d90 = 0; *(uint64_t*)0x20000d98 = 0; *(uint64_t*)0x20000e48 = 0x20000dc0; *(uint64_t*)0x20000dc0 = 0; *(uint64_t*)0x20000dc8 = 0; *(uint64_t*)0x20000dd0 = 0; *(uint64_t*)0x20000dd8 = 0; *(uint64_t*)0x20000e50 = 0x20000e00; *(uint64_t*)0x20000e00 = 0; *(uint64_t*)0x20000e08 = 0; *(uint64_t*)0x20000e10 = 0; *(uint64_t*)0x20000e18 = 0; *(uint64_t*)0x20000e58 = 0; *(uint64_t*)0x20000ea0 = 0; *(uint64_t*)0x20000ea8 = 0; *(uint64_t*)0x20001228 = 0x200011c0; *(uint64_t*)0x200011c0 = 0x20000f00; *(uint64_t*)0x20000f00 = 0x20000ec0; *(uint64_t*)0x20000ec0 = 0; *(uint64_t*)0x200011c8 = 0x20000f40; *(uint64_t*)0x20000f40 = 0; *(uint64_t*)0x20000f48 = 0; *(uint64_t*)0x200011d0 = 0x20001040; *(uint64_t*)0x20001040 = 0x20000f80; *(uint64_t*)0x20000f80 = 0; *(uint64_t*)0x20000f88 = 0; *(uint64_t*)0x20000f90 = 0; *(uint64_t*)0x20000f98 = 0; *(uint64_t*)0x20001048 = 0x20000fc0; *(uint64_t*)0x20000fc0 = 0; *(uint64_t*)0x20000fc8 = 0; *(uint64_t*)0x20000fd0 = 0; *(uint64_t*)0x20000fd8 = 0; *(uint64_t*)0x20001050 = 0; *(uint64_t*)0x20001058 = 0x20001000; *(uint64_t*)0x20001000 = 0; *(uint64_t*)0x20001008 = 0; *(uint64_t*)0x20001010 = 0; *(uint64_t*)0x20001018 = 0; *(uint64_t*)0x200011d8 = 0x20001180; *(uint64_t*)0x20001180 = 0x20001080; *(uint64_t*)0x20001080 = 0; *(uint64_t*)0x20001088 = 0; *(uint64_t*)0x20001090 = 0; *(uint64_t*)0x20001098 = 0; *(uint64_t*)0x20001188 = 0x200010c0; *(uint64_t*)0x200010c0 = 0; *(uint64_t*)0x200010c8 = 0; *(uint64_t*)0x200010d0 = 0; *(uint64_t*)0x200010d8 = 0; *(uint64_t*)0x20001190 = 0x20001100; *(uint64_t*)0x20001100 = 0; *(uint64_t*)0x20001108 = 0; *(uint64_t*)0x20001110 = 0; *(uint64_t*)0x20001118 = 0; *(uint64_t*)0x20001198 = 0x20001140; *(uint64_t*)0x20001140 = 0; *(uint64_t*)0x20001148 = 0; *(uint64_t*)0x20001150 = 0; *(uint64_t*)0x20001158 = 0; *(uint64_t*)0x200011e0 = 0; *(uint64_t*)0x200011e8 = 0; *(uint64_t*)0x20001288 = 0; syscall(SYS_test, /*a0=*/0x20001280ul, 0, 0, 0, 0, 0); break; case 5: syscall(SYS_foo, /*a0=*/0x200012c0ul, /*a1=*/0x20001300ul, /*a2=*/0x20001340ul); break; case 6: syscall(SYS_breaks_returns); break; case 7: syscall(SYS_test, /*a0=*/0x20ffe000ul, /*a1=*/0, /*a2=*/0x1000, /*a3=*/0x800, /*a4=*/0x400ul, 0); break; case 8: memcpy((void*)0x20001380, "\xb3\xeb\x98\x0b\x12\xaf\x03\x68\x48\x32\xff\x0d\x13\x67\xb0\x5d\xed\x25\x0f\x35\x0b\xff\xb9\xc6\x72\x43\xa4\xa2\x6c\xac\x6a\x56\x64\xba\x93\xce\x0c\x5f\xfc\xa8\x1d\x81\xc8\xa8\xa1\x84\x16\x56\x6c\x33\xd0\x0a\x99\x9b\xaf\x45\xad\x35\x17\x40\x79\x5a\x1a\x3a\x7f\x59\xab\xe5\x9a\xc2\x18\xf6\xe2\x04\xdc\x13\x29\xf1\x58\xd3\x6e\x4d\x0c\x86\x20\x0e\x4d\x8b\x5d\xbd\xa2\x75\xd2\x0e\x53\x15\xc5\x2e\x12\x89\x56\x63\xd7\xe5\xf4\xad\x1f\x0d\x1a\x8a\xc3\x01\x4e\xb4\x60\x3f\x30\x44\x5a\x97\x5d\x0a\x77\xfe\xec\x81\xe4\xe9\x9b\xd7\x1a\xca\xd6\x46\xcb\x04\xb6\x08\x19\xe8\xec\x24\xa8\xa2\xdb\x39\x09\x68\x8b\xb2\x84\x16\x28\x72\xbc\x71\x5c\x3e\xf9\x86\x3a\x13\xd6\x0f\x4e\x3a\xcd\x69\x54\xf1\xff\x26\x8e\xee\x5c\xbe\x35\x46\x5b\x4e\x65\xc6\x0d\xbf\x3d\xa3\x56\x89\xaf\x39\xd3\xdc\x0d\x9d\x22\x26\x40\x61\x47\xfe\xcc\xad\x22\xfd\x6d\x92\x55\xa8\xb9\x21\x78\xc6\xaf\xa7\xaa\x2d\xec\xd0\xae\x46\xec\x45\xc9\xbb\xf6\xe5\x3f\xea\xd2\xd6\x82\xd7\x15\x17\x5b\xa6\x08\xf8\x4b\xa1\x4d\x9a\x28\xc5\xe4\x7e\xbd\x82\x9a\x76\xbc\xa0\xc2\x82\x1b\x0e\x29\x91\x5a\x28\x89\xe0\x01\xa2\x01\x52\x4f\xcf\x62\x45\xad\xcf\x4d\x32\x6d\x69\x17\x6d\x7f\xa2\x7e\xd8\xd5\x93\xe2\x5e\xef\x7a\xfa\xa1\x47\x9e\x50\x63\x48\xf0\xa6\x75\x36\x97\x03\x4b\x9c\x60\x9f\x46\x51\x46\xf9\x56\x9d\xdd\x56\xaf\xf7\xfc\x2f\xad\xef\xb8\x9f\xa2\xd2\xd4\xb8\x38\xe7\xd6\x32\x00\x09\x7b\x77\xed\x52\xd9\xc3\x1c\x98\xfd\x76\xf9\x46\x7f\xf5\x11\x6c\xa0\x0f\x85\x84\x6a\x91\xbe\xf6\x94\x19\xaa\xc6\xeb\xc7\xdd\xfb\xa2\xb2\x68\xbf\xe2\x62\xf6\xf5\x5d\x52\xa6\x47\xaf\x8a\x0b\x45\x39\x1b\xa9\xdf\x09\xe2\x56\x64\x01\x9b\x41\x07\xa2\x31\xee\x76\x1a\x81\x96\x0c\x11\x98\xf5\x20\x9e\x3c\x37\x07\xd7\x68\xb8\xd0\x99\xee\xe5\x63\x05\x5a\x88\xc3\x04\x9f\x5a\xdd\xf8\x74\x7a\x2d\xfd\x6f\x3b\x43\xc5\xc2\x5d\xf5\x0c\x8a\x4b\x77\x87\x2a\x8d\x89\x05\xdf\xa0\x88\x5a\xdd\xdb\x8f\xd4\x9e\x29\x73\x52\x62\xb1\xc9\x4e\xa5\x9c\xe0\xce\xa5\xa0\x61\xfb\xb0\x42\xc7\xe3\x01\xe2\x92\x12\xf2\xf1\x47\x6e\x7c\x25\x31\x7c\xb5\xfa\x81\x77\x4d\x78\xb2\x0e\xfe\xa3\x77\xd4\xfb\xfd\xb1\x90\xcc\x1f\xd5\x8f\x56\x8e\x6a\xc1\x9b\xe0\x5d\x99\xc8\x36\x24\x28\xf5\x9f\x47\x31\x1a\xbf\x17\x8f\x6b\x08\x36\x45\xcc\xf0\x13\x62\x4a\x41\x8b\x8d\x9f\xec\xfa\x26\xf7\xdc\xba\x32\xb4\x39\x54\x49\xc0\xd1\xef\x6f\xa3\x7f\x33\xfa\x5e\xa6\x01\x92\xbb\x5c\xe9\x2e\x45\x8d\x90\xce\xdf\x0e\x85\x78\x78\x11\xc6\x4b\xd0\x43\x6f\x4c\x5c\xa0\x1f\xac\xae\x7b\x79\x3d\x69\x64\x42\x98\x28\x41\xf6\xe8\x3f\x60\x3d\x58\x06\x74\x2a\x4e\xc7\xac\xb4\x06\xc5\x5b\x27\xaa\xad\x7a\x62\x8e\xb2\xf4\x1f\x80\x07\xc0\xe3\x72\x8f\xa1\xf4\x01\x94\xd2\x71\x39\x2f\x6c\x7f\x68\x4e\x1d\xbe\x23\x9c\xf6\xc5\x01\xbd\x4f\x4f\x64\x31\x53\xb4\xe7\xbd\x32\xff\x4b\x3d\xb3\x61\xfe\x9c\x4a\x87\xb4\xd7\x49\x2e\xef\x74\x9b\xd1\x8c\x6a\x44\xda\xba\x60\x54\x2d\xea\xdc\x45\xcb\xfa\x8a\x46\xb8\xd2\x52\x67\x0e\xe3\x12\xed\xe5\x3b\xb5\x16\xf0\x00\x0c\xc2\x50\x09\xf4\xd4\xe7\x4c\x6f\x61\x30\x6c\x34\x4a\x9b\xa4\x8f\xa2\xa2\xd7\x0f\x3e\x1a\xc0\x18\xf9\xc0\xd1\x5d\xda\xaf\xb5\xcf\x89\x86\x7c\xa6\xbf\x6b\x37\x42\x7c\x47\x7e\xec\x1a\xcb\x7f\x36\x9b\x94\x22\xa8\x85\x8e\xbc\x2f\x3a\x10\xa9\xe9\x0a\xea\x0f\x4d\xf8\x2a\xb2\xe8\xd1\x0d\xff\xcb\x99\x89\x2a\x81\x55\xb4\xf8\xaf\xf7\x9e\x93\xdf\x24\x84\x8a\xef\x03\x5e\x85\xd5\x70\x48\xc7\xc9\x3f\xe5\x44\xe3\xef\x17\x54\xc4\x92\x40\x57\x3a\xc1\xea\x67\xb9\x4d\x85\x74\x54\x2d\xff\x03\xf0\x6b\xfe\xdc\x3f\x51\xc6\x20\x40\x28\x61\xf7\x77\xfa\x47\xbc\x05\xc8\x65\xa6\xe6\x3a\xb4\x8e\x70\xc4\xb3\x14\xe6\xf8\x09\x53\xcb\x1a\x22\xb9\x22\x6a\x1b\x3c\xc0\x84\x73\x6b\x2a\x82\x6a\x7f\xc8\x41\x02\x3e\xaa\x56\x44\x8d\x94\x75\x7b\x01\x38\x33\xc5\x3e\x18\x2c\x1d\xe0\x66\x87\x87\x01\xde\xf7\x3b\xdd\x13\xd7\x40\x45\x65\xdc\xc3\x17\xae\x65\x03\x83\xb3\xea\x7d\x5e\x6a\xed\x3d\xbf\x57\x5a\x2c\xa5\x13\x28\x50\xe3\x94\xad\xeb\x9f\xee\x10\x87\x19\x37\x83\x20\xb9\xb4\xe0\xc5\xa6\xdd\xc7\x75\x94\xa8\x02\x41\x51\xb3\xa6\xd3\x22\xfb\x48\xe5\xdb\x7f\x0f\xb0\x4a\x91\x49\xfb\x27\x8e\xd9\xd8\xad\x19\xb1\xb8\xa2\x68\xcb\xa4\xb3\x00\xe9\x31\x39\xf2\xb6\x11\xbb\x77\x79\x83\xb7\x4d\x6f\xac\x85\x2d\x74\x3f\xb5\x01\x1f\x9b\xf2\xbf\xd3\xf4\x31\x4c\xdc\x9b\x1e\x71\xc6\x5e\xa7\x6e\x49\x53\xaf\x36\xbc\xb4\xb9\x64\x9a\xa0\xee\xaa\x6c\x89\x2e\x17\x0d\x32\x85\x24\x17\x08\x59\x4a\x91\xbd\xec\x0f\xde\xdd\x97\x4b\x42\x20\xb4\xb7\x0a\x5a\x93\x99\x38\x52\x7c\x6e\x6e\xf8\x23\xb3\x62\x56\xc1\x36\x9f\xbe\xed\x64\xa9\x0e\x8b\xe5\x45\xea\xc8\x96\x8c\x76\x41\x39\xcc\xd4\xdc\x59\x01\xbc\x01\x99\x85\xaa\xb5\xfe\x71\xe2\x4c\x55\xf2\x60\xc4\xc4\xb7\xfd\x5c\xf5\x28\x8b\x13\xdc\xda\x57\xbb\x34\x50\xfb\x4f\x6e\xce\x5e\x7c\x4a\x0a\x21\xff\xf3\x12\x4c\x3c\x78\x3a\xfa\x87\x44\xf6\xca\x3f\x5c\x3d\xe5\xb4\xc1\x54\xce\xa1\x2b\xa4\x7c\x3c\x69\x4e\xa8\x30\x3a\x8d\x7c\x85\x10\x08\x9c\xc1\x60\x9a\x82\xe6\xa7\xe0\x89\xf6\x3a\xfd\x05\x85\xd3\xf5\xab\xa2\x26\x34\xdd\x7c\x95\x79\x36\x4d\xa1\xd9\x3a\x99\x5f\x77\x06\xda\x20\x8d\x65\xb9\x48\xd7\x46\x13\xe0\xe4\xf8\xc7\x79\x74\xdb\x27\x2e\xdf\x2f\x8d\x52\x91\xcd\x3a\xf0\xd0\xad\xee\xcc\x16\x35\x85\x16\x1b\xc8\xec\x9b\x62\x82\x3f\xeb\x86\x4a\x8f\xfa\x00\x12\x07\x19\x98\x19\x07\xc0\x27\xef\x41\xa9\xc5\xeb\xef\x88\x41\x1b\x42\x0e\x2c\x60\x41\xe9\x4d\xba\xe9\x38\x8f\x72\xdb\x00\x89\xd4\x73\x3c\xed\xc3\x68\xcd\x1d\x68\x05\x63\x4c\x80\xbf\xfb\x9c\x34\x30\xf4\x02\xb7\x3f\xff\x1d\x6c\xf3\x55\xb9\x50\x9c\x1b\xfd\x48\xe7\x9b\x14\x17\x14\x1c\x9b\x9a\xb1\xc0\xf6\x2a\x4c\xf9\x7b\xae\x55\xfe\x53\xaf\xea\x35\x3c\x10\x61\xbb\x88\x2e\x10\x1d\x74\x34\xb3\x9b\xe6\x55\x8e\x77\xea\x26\xb4\x4b\x50\x7c\x2c\x44\xdd\x0a\x62\x5c\x04\x4b\x0a\x78\xee\x23\x64\x86\x28\x42\xd9\xef\x0f\x1b\xcb\x56\x3f\x01\xad\xbd\xee\x69\xe5\x2d\x02\x28\x56\xad\x65\x04\xd8\x11\xe8\x49\xab\x47\x0d\x61\x3d\xa0\xce\x95\x10\x03\x52\x98\x22\xad\xc1\x02\xc4\xc6\x2a\x3a\xad\x2f\x73\x92\xaa\x46\x01\xab\x08\x63\x15\x0c\x35\x8a\xee\xc2\xfc\x5e\x3a\x90\x6d\xf0\x0f\xe5\xdb\x12\x26\xba\xc2\x0f\x08\xd7\x01\xf1\x81\xb9\x0a\x4d\x38\x9b\x91\xdd\xdb\xc2\x4e\x40\x48\x8e\x1c\x46\xab\x2d\x05\xb4\x82\x30\x29\x45\x3c\xc9\x25\x3e\xbc\x43\x70\x96\x4a\x64\xc1\x08\x7c\xb3\x85\x7d\x73\x6d\xc3\x03\xce\x93\x06\x6d\xb6\x0f\xc6\x1b\xe9\xf7\x9c\x0c\x9e\x1c\xa7\xe4\xd7\x3f\x95\x17\x2b\xcb\xaf\x6c\xbd\x18\xc0\x6d\x1c\x1c\xcc\xf2\x3d\x85\x59\x2e\xe6\x84\x43\x49\xb5\xe7\x2e\x6a\x5e\x10\xf5\xee\xd5\xec\xa8\xf9\xc0\xa8\xa9\x5e\x21\x43\x89\x53\x01\x94\xa0\x30\x43\xb2\x11\x08\xa4\x9e\x34\x66\xce\xbe\x30\x78\xda\xdd\x36\x4f\xaf\x67\xfe\x3c\x51\xe1\xdf\x75\xf4\xaa\x61\x98\x54\xb7\x80\xe0\xc0\x4e\x9a\x9b\xf2\x30\x1c\x03\x0a\x36\x26\xce\x82\x0a\xfc\x59\xe1\xc1\x3e\xd6\xfa\x3e\x30\x30\xb9\x66\xf3\x87\x8f\x17\xa1\x6a\x12\x09\x98\x7a\xa9\xf7\xeb\x76\x98\x8d\x40\x1f\x10\xbd\xb0\xa4\x19\xdd\xce\xd1\x10\x56\x59\xe6\x21\x94\x40\xe3\x5e\x98\x4c\x3e\x7a\xda\x78\xc3\x0a\x9a\x73\x99\xce\x1a\xbc\xe3\x6c\x7c\xe3\xe3\x9a\x89\xcf\xac\x98\xf2\x49\x73\x59\x14\xcf\xc1\x6b\xaf\x66\x6e\xd4\xb5\x1f\xf2\x19\x3c\x28\x36\xbd\x43\xe5\xd5\x37\xf2\x65\x36\x46\xf0\x5c\x81\x09\xef\x8e\xdf\xd3\x5b\x3a\xcd\x73\xeb\x7e\x79\x0c\x64\xcc\x2a\x7c\x95\x96\xe4\xa5\xf3\xd0\xe2\xd9\x2b\x30\x1c\x9e\xc5\xd8\x27\x68\xab\x21\x18\x01\xbe\xa9\x63\x40\xc3\x0e\x1b\x09\xfc\x9f\xae\x7c\xff\x26\x15\xd6\x1e\xde\x29\xf9\xb0\xd7\x12\xab\xff\xcd\x93\xea\x3b\x20\xce\xb7\xaa\x57\x36\x8e\x84\xc3\x87\x6e\xcd\x7a\x93\x1c\xb1\x9e\xa5\x17\x60\x3e\xf4\x4a\x98\xb2\x46\x28\x8b\x27\x33\x69\x80\xe4\xbb\x50\x90\x07\xbc\xd0\x18\x58\xcd\x35\xe9\xcd\x8d\xf2\x88\x22\x1d\x3a\x48\x72\x68\x82\x8f\xe7\x32\xfd\x7d\xa2\xe2\xb6\x92\x6b\x4a\x9b\x54\xd5\x4b\x41\xc7\x79\x98\xd1\xef\x53\x84\x87\xe1\xdc\xdf\x87\xfc\xc3\xfa\xb2\x5c\x77\xa7\xcf\x01\xf8\x60\x87\xe2\xb9\x5e\x1e\x4d\x45\x52\x2f\xc3\xf4\x4a\x14\xcb\xfa\xcd\x48\xd6\x3e\xba\x04\x2c\xa3\xe1\x4a\xf8\xe5\xbe\xd3\x18\x6d\xe4\xfb\x69\xf3\x87\xaa\xc8\x82\x42\xd6\x4f\xbd\xcd\x11\x0c\x33\x88\x21\xad\x72\x56\x2f\x09\x2f\x55\xfa\x73\xb5\xe7\xd9\x2c\x9b\x6f\xee\x57\x94\xef\x48\x23\x19\x0f\x92\x57\xb1\x1f\xf4\xfc\x44\x57\xdb\xa9\x0f\xbd\xa8\x0d\xaf\xb5\x17\xfa\x27\x51\x94\x89\x01\x6f\x6f\x45\x80\x06\x40\x1f\x9f\xea\x20\x42\x6a\x54\x5a\xab\x77\x84\xc4\xe3\xdf\x9d\xfa\x9f\xb2\x79\xcf\x21\xa8\x6c\xe3\xf2\x92\xcf\x52\xd3\x43\xfc\xe9\x7e\x05\xb9\x2c\x84\x72\x3d\x7d\xdc\x65\xa7\xbc\x79\xae\x73\xb1\x24\x6b\x6b\x65\x04\x8a\x38\x55\xb6\x2b\x13\x40\x26\x46\x27\xc1\xdf\x82\xf3\x35\x2f\x3a\xc6\xd5\xa7\x5e\x08\x23\x57\x2c\x2f\xb3\x92\xbd\x7e\xf1\x51\x93\xcc\x5f\x6f\xbe\xfc\x4d\x27\xff\xd7\x41\xa9\x3d\x1a\xb7\x99\xd9\xfb\xd5\x45\xd2\xd2\x60\x6e\x35\x66\xeb\x79\xd5\x44\x85\xf5\x56\x15\x10\xa5\x7f\x17\xf2\xb3\x90\x9e\xd1\xbf\xc5\xe5\xd6\x46\x92\xb6\xc5\x03\xeb\x58\xf1\x7c\xae\x55\x41\x37\x60\x74\x67\xe8\xab\x51\xd8\x67\x06\x7f\x50\x37\x4e\x99\xf7\x48\x69\xe0\x17\x7f\x4e\xb5\x2c\x29\x30\xdf\xe5\xca\x2b\x6e\x45\x4d\xb8\xa3\x62\x25\xb2\xc9\x36\xbd\xc5\xbb\x75\xf1\x35\x5f\xfd\x8d\x7f\xa4\x76\xeb\x28\x28\x71\xe5\x21\x11\x83\x2f\xcf\xc2\x46\xda\x41\x5c\x20\x0d\x9e\x6c\x35\x0f\x49\x84\x6a\x00\x22\x66\x01\x91\xa2\x84\x0d\x7a\x53\x75\x36\x74\xc7\x8e\xa0\x0a\x5b\x9e\x26\x6f\xf2\x9b\x1a\x8f\xb1\x93\xe1\x32\xd2\x3f\x96\x0c\xd9\xc8\x24\x9b\x94\x3f\xcd\xb8\x65\x39\x5b\x2c\x03\xab\x67\x5b\xbb\x19\x93\x81\x3f\xb0\xa8\xd1\xe6\x83\x31\x29\x7c\x88\xdb\x1d\xca\x00\x31\x3b\x82\x11\x12\x1b\x60\x23\x47\x5c\xb6\x9d\x6a\xc6\x6c\x11\x16\xa5\x61\x71\x35\x0f\x68\x0c\xc7\x4c\x88\xfe\x99\x05\xed\x07\x87\x80\xe6\xd7\x1b\xcc\x73\x5f\xee\x75\xa9\x44\x4f\x69\x5d\x03\x6a\xa6\xb4\xb9\xe5\x9b\x66\x80\xb6\x31\x29\x67\xf8\xb2\x36\xff\x8b\xee\x60\x31\x6a\x70\xcb\xa0\x31\x2c\x99\x3b\x92\xe3\x0c\xa4\xcb\x11\x8c\x17\x45\xe7\xb5\x78\xc0\xad\x6c\x3a\x7d\x81\x87\x37\x25\x95\xdd\x16\x08\x93\x11\x5f\x11\xb0\x54\xfc\x17\x18\xc9\x67\xbd\xaf\xe9\xbf\x95\xad\x58\x3d\xb5\x93\x96\xd5\x94\x11\x4b\x65\x00\x99\x6e\xef\xf8\x2b\x70\x19\x1e\x52\xfa\x23\x30\xef\xdc\x66\xfa\x36\x3c\xb3\x79\xc9\xc6\x77\x40\x53\x5c\x99\x60\xca\x85\x7c\xfe\x4d\x0a\x88\xbb\xbb\xf2\xe7\xb2\x03\x4b\xb8\x43\x98\x0f\x6f\xa8\x6f\xf6\x02\x33\x5d\x1e\x25\xa6\x13\xc7\xd7\xa4\xef\x7a\x6b\x16\x1c\x25\x82\x23\x9a\xa5\x6f\x5c\x89\x94\xd0\x66\x46\xe0\xaa\x62\xc4\x8b\x54\xe0\x85\x22\x23\x77\x2e\xd4\x4e\x70\x59\x69\x7a\xec\x6b\xc2\x22\x5e\x0e\xda\xc5\x5f\xdb\xff\x1a\x16\xd4\xc6\xde\xf4\xc7\x7d\xdf\x38\xb2\x77\x39\x52\xc8\x11\xff\x14\x5a\xe3\x66\xe2\x16\xc4\x16\x00\x65\x9f\xf7\x8f\x64\xb1\x9e\x35\x4d\x74\xf9\x0a\x61\x90\x7c\x85\xc7\x02\x39\x4f\xe2\xcc\xa4\xf5\xfe\xb5\xb5\x35\x30\xb5\xf4\xc9\xe7\x2f\x5c\x09\x0c\xa4\x64\xa7\xa9\xc3\x95\x14\x37\x35\xfd\xd2\x42\x1d\x07\xe8\xef\xe4\x19\x8a\xd0\x6f\x9d\x23\x0a\x91\xd5\xfb\x50\xef\xc0\x2c\x2d\xb6\xed\x4a\xd7\x50\x31\x9e\x3e\x67\x2f\x52\x13\xdd\xae\x92\xc3\xfc\xec\x0e\xd5\xdf\xf5\x22\xd0\xca\xb8\x9b\xb8\x25\x32\x54\x25\x55\x29\xb3\x2c\xf5\x38\x5c\x90\x01\x42\x1b\x92\xcc\x67\x16\x3c\xc3\x95\x23\x5e\x40\x8a\x46\x3f\xa3\x1e\xef\xd0\x74\x2d\xe5\x13\x9b\xba\x2d\xc1\x41\xff\xf7\xbe\x17\x5f\x41\x8c\xf7\xcf\x89\xdd\x4f\x47\x4a\x2f\xc6\x1d\x0f\x38\x51\xf3\x4d\x52\xc4\x9b\xbd\x12\x26\xbd\x08\x96\x30\x71\xf5\xd4\x91\x8f\x7e\x12\xd0\x02\x8d\x32\x1b\x3d\x6b\xd4\x36\xe0\x2f\x6e\x55\xcc\x48\xc6\x13\xe3\x29\x91\x6c\xb8\x54\x52\x44\xbb\xa3\x77\x90\x8d\x6b\xcf\xeb\x7e\xd6\x62\x08\xe5\x07\xb4\xdf\xd8\xf2\xcb\xa5\xa3\xd4\x2f\x3a\x4e\x4d\xa8\x0e\xba\x19\x9c\xc8\xae\xc8\xa4\x0f\x25\x47\x10\xd8\x11\x83\x24\x96\x75\x0c\x4b\x34\xc3\x6b\x74\x6b\xf3\xcb\x60\xda\xe8\x1e\x73\xda\x95\x2e\xe4\x1c\x2a\x40\x23\x72\xe5\x23\x9f\xd2\xd4\x07\xd8\xe9\x1b\x9e\x57\xb4\x75\x8a\xac\xe5\x9d\xf7\xd8\x3d\x38\xad\x17\x71\x6c\xae\x50\x9d\xdb\x24\x27\xcb\xcf\x84\x7a\x7b\x10\x8e\xdb\x4b\x3a\x70\x81\x71\xe7\x31\xa9\x77\x02\xb6\x37\x7c\x79\x34\xec\x9b\x4c\x74\x46\xea\x03\x1e\x62\xbb\x39\xa6\xe2\xd3\x20\xea\xa8\xb5\x91\x0b\x14\xd8\x82\x6c\x20\x4f\x7a\x4a\xb2\x36\x24\x0b\x48\x60\x66\xb2\x7b\xe7\xf6\x9b\x84\x42\xff\xc8\x03\xc4\xed\x7f\xdd\x23\xef\x2f\xa0\x33\x7d\xb8\x42\x68\x1c\x0f\x8e\xf2\xba\xdc\xc0\x81\x13\xfe\x80\x61\xab\x31\xfa\xf9\x89\xba\x55\x51\x2a\x5f\x0e\x7b\x93\x6d\x63\xc0\xcc\xed\x58\xef\x82\xcf\x0c\x2d\x29\xfb\x23\x18\xe1\x2b\x56\xd4\x91\x2e\x9c\x4f\x96\xdb\x02\xca\x84\x49\x29\x4d\xa3\x3f\x8f\xce\x55\x07\xd3\xeb\x99\x23\x90\x72\xe2\xb2\xe1\x2e\x33\x55\x35\x3b\xf4\x90\x18\x2e\xeb\x7a\xa1\x03\xc9\x77\xc0\x67\x01\xca\xa0\xb7\x44\x55\x11\x66\x89\xb9\xdb\xe9\x0a\xd1\xd1\x85\x39\xd5\xe4\x1a\xda\x0f\x2f\x7f\x1e\x6c\x9a\xa6\x7a\xa2\xaa\x41\x6f\x84\x9f\x18\xc6\xfb\xd2\x2d\xcb\xe0\x3a\xf7\x8b\x15\xce\xdd\xda\x0d\x1b\xbb\xdd\x33\x62\x76\x9f\x50\xe9\x86\x80\xfc\xe5\x4b\x7e\x84\xa9\x4f\x32\x46\x66\xa6\x96\x7f\xc8\x0f\x2e\x5e\x9c\xa9\x4f\x61\x7f\x01\x16\x3a\x16\x01\xc6\x22\x19\xfc\xb5\x67\x82\x66\xe1\xc6\x18\xca\x89\x47\xe7\x4a\x2a\xde\x5e\x40\xda\xeb\x8d\xf5\x62\x0f\x36\x5f\x66\xae\xae\x88\xaf\xb4\x2d\x70\xce\x41\x45\xeb\xaf\xa7\x58\xac\xcc\x19\xe2\x78\xbc\x9f\x45\xda\x63\x85\x9c\x46\xeb\xdf\x7f\x0e\xe2\xe3\xfd\x9d\xd5\x41\x4d\xeb\x86\x07\xd7\xec\x55\x65\x68\x30\x1d\x26\x50\x78\x0b\xe7\xf7\x5f\xcd\xf9\x24\x41\xcb\x98\xf2\x36\x48\xb5\xed\x3f\x3a\x5e\x2c\x96\xda\xaa\xc1\xda\x0c\xe4\x6e\x1d\x85\xb5\xc2\xcf\xf4\xd9\xa9\x16\x7d\x58\x15\xfc\xc6\x6b\xbd\x94\x5f\x0b\x55\x87\x41\x95\xac\xbb\xbf\xec\xf8\x0f\x26\xb7\x0a\x4c\xf6\x62\xf9\x55\xea\x4e\x01\x35\x1f\xaa\x9f\x53\x00\xcf\x35\xc7\x2a\xe6\x09\x15\x06\x2c\xef\xf7\x89\x1e\x76\x77\x51\x91\x96\xbf\x81\x33\x33\x36\x1d\xbb\xee\xcf\xe8\xdc\x12\x7a\x94\xc2\x0b\x9f\xaf\x03\x6d\x71\xa8\x16\xb1\xab\x72\xe8\x20\x19\xd0\x69\x9b\x01\x2a\x12\x60\x22\xcc\x70\x31\x36\x63\x8d\xc8\x67\x49\x05\xb4\x10\x0e\x9b\x8d\x62\xab\xde\xb1\x3c\x84\xbe\x30\x0b\x49\xae\x44\xfc\xea\x4b\x89\x2f\xbf\x65\x64\xcd\xb0\x12\x69\x9e\x9f\xd1\xc9\x64\xf2\xa9\xd7\xf3\x12\x65\x6b\x47\xe6\x91\x66\x82\xb0\x04\x41\x57\xf4\xe2\xdf\xb9\xd5\xf5\x5d\x68\x49\x5d\x76\x3c\x80\x7d\x8e\xc6\x93\x2e\x56\x0c\x91\x3a\xb7\x6f\xc3\xff\x82\x02\x02\xae\x44\xfa\xcb\xda\x1a\xa1\x53\x10\x8f\x16\x8e\x42\x1b\xdb\x1a\x93\xc3\x82\xed\xf0\x8c\xc7\x9c\x5b\x71\x1a\xe1\x3c\x6e\xb8\xe5\x43\x93\xf4\x99\x8e\xc9\x9a\x95\xae\x7f\x85\x99\x9e\x78\x43\x9b\xa6\x03\x44\x55\x45\xf2\x1f\xfc\x85\x62\x07\xee\xa9\x45\x5f\xb1\x4c\x0a\xd9\x67\xf2\x2c\xf0\xf5\x72\xdb\xa5\xca\xc7\x45\x0e\x4e\x52\xce\x71\x3c\xe8\x71\xfc\x76\xd7\xad\xca\x01\x26\x0e\xa7\x08\xda\x43\x40\x01\x80\x5b\xcf\xd1\xf3\xcc\xd1\xc6\x08\x4d\x5e\xc2\xa2\x9f\x00\xe7\x7a\xa4\xf9\x1d\xee\x13\xee\xb5\xfc\xce\x8e\x82\xa1\x03\xb3\x7f\x6c\x4f\x25\x25\x95\x1e\xaa\xd4\x49\xa0\x8a\x75\xd2\xf3\x41\xf1\x7b\x2c\xbd\xf1\x73\x0d\x19\x2e\xf7\x58\xa6\xe8\xf8\x83\xd8\x8c\x07\xf2\xef\x41\xb4\x43\xda\xa7\x95\x00\x02\x44\x26\x3d\x2d\x30\xc7\x62\xf6\xfe\xcf\x3b\xb6\x7f\x8d\xda\x6c\xa7\xd9\xd4\x0a\x18\xe1\x86\x26\x85\x3c\x50\x94\xef\x66\xed\x64\x61\x7e\xe9\x38\x8c\x03\x7a\x74\xa9\x61\x69\x2d\x44\x70\x79\x6a\x68\x3f\x88\x0e\xb9\x04\x10\x60\xac\xee\x4e\x76\x18\xb7\x17\xa0\x57\x95\x1e\x1c\x66\x23\x62\xfd\x26\x70\x9b\xd8\x0a\xf3\x9f\xe5\xc1\x1f\x96\x54\xc2\x65\x5b\x21\xed\xcc\x32\x42\x84\x91\xdc\x5c\x10\x1e\x6a\x22\x2d\x2e\x51\xb9\xf2\x3d\x96\x0f\x12\x74\x8d\x9a\x5f\xc3\xe2\xf6\xc9\x53\x97\x23\x47\x65\x6a\x9f\x78\x7e\xe5\xbd\x19\x64\x45\xaa\x2e\xaf\x8f\x8f\xbd\xaf\xaa\x34\xed\x1b\x05\x5a\x09\xb3\x71\x8d\x8b\x3c\x8f\x1c\xfe\x5a\xc5\x3c\xf3\x7c\x9f\xa7\x6f\xe7\xac\x70\x87\x15\x7b\xdb\xa5\x23\xe2\xa9\xe7\x10\xb3\xf5\xb5\xa7\xff\x9b\x8b\x1f\x61\x2d\x9b\xbb\xb1\x10\x4f\x9d\x6d\xf9\x87\x87\xe9\x25\x23\xfe\x1d\x30\x10\x1e\xdf\x53\xd8\x9d\xf4\xa3\xc4\x2b\xd3\xbd\x27\x37\xf3\xaf\xe0\x15\x4e\xe1\xe8\xd9\x3d\x9a\x27\x75\xd8\x4c\x68\x6d\xac\x89\x84\x51\x2c\xf9\x55\x96\x23\xac\x6f\xe4\xef\x79\xf7\xb3\x4b\x21\x96\x9a\x8a\x8a\x72\x43\xf4\x1e\x11\xa5\x8d\xe3\xe4\xe1\x8f\x33\x85\xee\x70\x03\xc7\x9f\xa5\x27\xb9\x4e\x72\x33\x8f\x2a\x1c\x4c\x45\xff\x04\x5a\x61\x1f\xe1\xdb\x3c\xdd\xa0\xfe\xf1\x21\xf7\x8c\x52\x75\x34\xda\xb2\x66\xdd\x3f\xf6\xf7\x3d\x6b\x6b\xc0\x39\x98\x30\x98\x30\x51\x0a\x57\xeb\x0e\x2d\x74\xde\x38\x11\x27\x75\xb8\x77\x5d\x99\xc1\x5e\x38\xd0\xe7\x09\xf3\x97\x49\x2f\xc6\x46\x2f\x6e\x57\xa7\xff\x65\xd2\x5b\xe9\xeb\x75\x30\xa5\xef\x4f\xc8\x07\xff\x9e\x09\xb7\x01\xb5\x9d\x25\x0b\x54\x1a\x54\x6d\xb7\x5d\x11\x1f\x56\x0a\x47\x21\x7c\x12\x2c\x6b\x29\x28\xd5\xa0\xa0\x47\xa9\x88\xb3\xac\x51\x31\xdf\x00\x96\xc1\x5b\xbc\x39\x8d\x0e\x69\x65\x84\x1b\x17\xf4\x91\x63\x58\x85\xd8\x98\x7a\x04\xbb\xe2\x48\x21\x57\xb5\xca\x88\x3c\x76\x7e\xa1\x56\xb4\xe1\x78\x4b\xa1\xb7\xcf\xeb\x34\x3a\x71\xeb\x03\xeb\xce\x88\x79\x2a\xed\x8b\x18\xe7\xfd\x88\x0c\xd5\x93\x4c\xbe\x55\x52\x3c\x1b\x7c\x82\xb3\xed\x99\xb3\xde\x90\xa4\x79\xf2\x51\xe1\x90\x4a\xc8\x6f\x28\x02\x19\x57\xef\x35\x42\x1d\x3c\x8a\x2d\x39\xee\xe7\x31\x4e\x3f\x3f\x94\x5e\xa2\xfb\x5f\xf7\xf6\xc0\x9b\xa4\x72\xff\x3e\x56\x2c\x61\x68\xb0\xc1\xf8\x43\x65\x8b\xb1\x80\xeb\xfc\xf9\x54\xe5\x8e\x63\x3f\xb1\x61\x27\x51\xbf\x36\x0b\x15\xfe\x67\xca\x59\x4f\x5a\xae\x34\x23\x3a\x3b\x58\xee\xba\x56\x2f\xad\x63", 4096); syscall(SYS_serialize2, /*a=*/0x20001380ul); break; case 9: syscall(SYS_test, /*a0=*/0x20fff000ul, /*a1=*/0, /*a2=*/0x1000, /*a3=*/0x800, /*a4=*/0x400ul, 0); break; case 10: memcpy((void*)0x20000000, "\'/+,\000", 5); *(uint8_t*)0x20000040 = 0x1c; *(uint8_t*)0x20000044 = 1; STORE_BY_BITMASK(uint32_t, , 0x20000044, 3, 8, 4); syz_compare(/*want=*/0x20000000, /*want_len=*/5, /*got=*/0x20000040, /*got_len=*/8); break; case 11: syz_compare_int(/*n=*/2, /*v0=*/0xffff, /*v1=*/0x100, 0, 0); break; case 12: syz_errno(/*v=*/0xfffffff9); break; case 13: memcpy((void*)0x20000080, "\xfe\xaa\x0e\x27\x8d\x40\x3f\x03\xc2\xbf\x80\x48\x86\x76\x75\x4e\x43\x50\x32\xf8\x1e\xee\x19\xff\xa3\xf4\x8c\xa7\x58\xe8\x2b\x07\x72\x89\x83\x4e\xb7\x9b\xe6\x7b\x6c\xf4\x37\xe2\xd9\xb1\x01\xf3\x97\xd7", 50); syz_execute_func(/*text=*/0x20000080); break; case 14: syz_exit(/*status=*/0xffffffc0); break; case 15: syz_mmap(/*addr=*/0x20ffc000, /*len=*/0x1000); break; case 16: syz_sleep_ms(/*ms=*/1); break; case 17: syz_test_fuzzer1(/*a=*/0xd, /*b=*/0xc, /*c=*/0xb); break; } } int main(void) { syz_mmap(/*addr=*/0x20000000, /*len=*/0x1000000); setup_fault(); do_sandbox_none(); return 0; } :297:3: error: call to undeclared function 'syscall'; ISO C99 and later do not support implicit function declarations [-Werror,-Wimplicit-function-declaration] syscall(SYS_breaks_returns); ^ 1 error generated. compiler invocation: c++ [-o /tmp/syz-executor1099815457 -DGOOS_test=1 -DGOARCH_64=1 -DHOSTGOOS_openbsd=1 -x c - -m64 -lutil -O2 -pthread -Wall -Werror -Wparentheses -Wunused-const-variable -Wframe-larger-than=16384 -Wno-array-bounds -Wno-unused-but-set-variable -Wno-unused-command-line-argument -no-pie -fno-exceptions] --- FAIL: TestGenerate/test/64/0 (2.09s) 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: breaks_returns() (fail_nth: 1) breaks_returns() (async) test$end0(&(0x7f0000000000)={0x20, 0x8, 0x7, 0x7fffffff}) (rerun: 4) test$length9(&(0x7f0000000040)={&(0x7f0000ffe000/0x2000)=nil, 0x2000}) test$recur1(&(0x7f0000001280)={&(0x7f0000001240)={&(0x7f0000000600)={0x0, &(0x7f00000005c0)={&(0x7f0000000080), 0x0, &(0x7f0000000180)={&(0x7f00000000c0), &(0x7f0000000100), &(0x7f0000000140)}, &(0x7f00000002c0)={&(0x7f00000001c0), &(0x7f0000000200), &(0x7f0000000240), &(0x7f0000000280)}, 0x0, &(0x7f0000000580)={&(0x7f0000000300), 0x0, &(0x7f0000000400)={&(0x7f0000000340), &(0x7f0000000380), 0x0, &(0x7f00000003c0)}, &(0x7f0000000540)={&(0x7f0000000440), &(0x7f0000000480), &(0x7f00000004c0), &(0x7f0000000500)}}}}, &(0x7f0000001200)={&(0x7f0000000680)={&(0x7f0000000640)}, &(0x7f00000009c0)={0x0, &(0x7f0000000980)={&(0x7f0000000700)={&(0x7f00000006c0)}, 0x0, &(0x7f0000000840)={&(0x7f0000000740), &(0x7f0000000780), &(0x7f00000007c0), &(0x7f0000000800)}, &(0x7f0000000940)={&(0x7f0000000880), &(0x7f00000008c0), &(0x7f0000000900)}}}, &(0x7f0000000ac0)={&(0x7f0000000a00), 0x0, &(0x7f0000000a40), &(0x7f0000000a80)}, &(0x7f0000000bc0)={&(0x7f0000000b00), 0x0, &(0x7f0000000b40), &(0x7f0000000b80)}, &(0x7f0000000e80)={0x0, &(0x7f0000000c00), &(0x7f0000000d40)={&(0x7f0000000c40), &(0x7f0000000c80), &(0x7f0000000cc0), &(0x7f0000000d00)}, &(0x7f0000000e40)={&(0x7f0000000d80), &(0x7f0000000dc0), &(0x7f0000000e00)}}, &(0x7f00000011c0)={&(0x7f0000000f00)={&(0x7f0000000ec0)}, &(0x7f0000000f40), &(0x7f0000001040)={&(0x7f0000000f80), &(0x7f0000000fc0), 0x0, &(0x7f0000001000)}, &(0x7f0000001180)={&(0x7f0000001080), &(0x7f00000010c0), &(0x7f0000001100), &(0x7f0000001140)}}}}}) foo$anyres(&(0x7f00000012c0), &(0x7f0000001300), &(0x7f0000001340)) breaks_returns() test$length10(&(0x7f0000ffe000/0x1000)=nil, 0x1000, 0x1000, 0x800, 0x400) serialize2(&(0x7f0000001380)="b3eb980b12af03684832ff0d1367b05ded250f350bffb9c67243a4a26cac6a5664ba93ce0c5ffca81d81c8a8a18416566c33d00a999baf45ad351740795a1a3a7f59abe59ac218f6e204dc1329f158d36e4d0c86200e4d8b5dbda275d20e5315c52e12895663d7e5f4ad1f0d1a8ac3014eb4603f30445a975d0a77feec81e4e99bd71acad646cb04b60819e8ec24a8a2db3909688bb284162872bc715c3ef9863a13d60f4e3acd6954f1ff268eee5cbe35465b4e65c60dbf3da35689af39d3dc0d9d2226406147feccad22fd6d9255a8b92178c6afa7aa2decd0ae46ec45c9bbf6e53fead2d682d715175ba608f84ba14d9a28c5e47ebd829a76bca0c2821b0e29915a2889e001a201524fcf6245adcf4d326d69176d7fa27ed8d593e25eef7afaa1479e506348f0a6753697034b9c609f465146f9569ddd56aff7fc2fadefb89fa2d2d4b838e7d63200097b77ed52d9c31c98fd76f9467ff5116ca00f85846a91bef69419aac6ebc7ddfba2b268bfe262f6f55d52a647af8a0b45391ba9df09e25664019b4107a231ee761a81960c1198f5209e3c3707d768b8d099eee563055a88c3049f5addf8747a2dfd6f3b43c5c25df50c8a4b77872a8d8905dfa0885adddb8fd49e29735262b1c94ea59ce0cea5a061fbb042c7e301e29212f2f1476e7c25317cb5fa81774d78b20efea377d4fbfdb190cc1fd58f568e6ac19be05d99c8362428f59f47311abf178f6b083645ccf013624a418b8d9fecfa26f7dcba32b4395449c0d1ef6fa37f33fa5ea60192bb5ce92e458d90cedf0e85787811c64bd0436f4c5ca01facae7b793d696442982841f6e83f603d5806742a4ec7acb406c55b27aaad7a628eb2f41f8007c0e3728fa1f40194d271392f6c7f684e1dbe239cf6c501bd4f4f643153b4e7bd32ff4b3db361fe9c4a87b4d7492eef749bd18c6a44daba60542deadc45cbfa8a46b8d252670ee312ede53bb516f0000cc25009f4d4e74c6f61306c344a9ba48fa2a2d70f3e1ac018f9c0d15ddaafb5cf89867ca6bf6b37427c477eec1acb7f369b9422a8858ebc2f3a10a9e90aea0f4df82ab2e8d10dffcb99892a8155b4f8aff79e93df24848aef035e85d57048c7c93fe544e3ef1754c49240573ac1ea67b94d8574542dff03f06bfedc3f51c620402861f777fa47bc05c865a6e63ab48e70c4b314e6f80953cb1a22b9226a1b3cc084736b2a826a7fc841023eaa56448d94757b013833c53e182c1de066878701def73bdd13d7404565dcc317ae650383b3ea7d5e6aed3dbf575a2ca5132850e394adeb9fee108719378320b9b4e0c5a6ddc77594a8024151b3a6d322fb48e5db7f0fb04a9149fb278ed9d8ad19b1b8a268cba4b300e93139f2b611bb777983b74d6fac852d743fb5011f9bf2bfd3f4314cdc9b1e71c65ea76e4953af36bcb4b9649aa0eeaa6c892e170d3285241708594a91bdec0fdedd974b4220b4b70a5a939938527c6e6ef823b36256c1369fbeed64a90e8be545eac8968c764139ccd4dc5901bc019985aab5fe71e24c55f260c4c4b7fd5cf5288b13dcda57bb3450fb4f6ece5e7c4a0a21fff3124c3c783afa8744f6ca3f5c3de5b4c154cea12ba47c3c694ea8303a8d7c8510089cc1609a82e6a7e089f63afd0585d3f5aba22634dd7c9579364da1d93a995f7706da208d65b948d74613e0e4f8c77974db272edf2f8d5291cd3af0d0adeecc163585161bc8ec9b62823feb864a8ffa00120719981907c027ef41a9c5ebef88411b420e2c6041e94dbae9388f72db0089d4733cedc368cd1d6805634c80bffb9c3430f402b73fff1d6cf355b9509c1bfd48e79b1417141c9b9ab1c0f62a4cf97bae55fe53afea353c1061bb882e101d7434b39be6558e77ea26b44b507c2c44dd0a625c044b0a78ee2364862842d9ef0f1bcb563f01adbdee69e52d022856ad6504d811e849ab470d613da0ce951003529822adc102c4c62a3aad2f7392aa4601ab0863150c358aeec2fc5e3a906df00fe5db1226bac20f08d701f181b90a4d389b91dddbc24e40488e1c46ab2d05b4823029453cc9253ebc4370964a64c1087cb3857d736dc303ce93066db60fc61be9f79c0c9e1ca7e4d73f95172bcbaf6cbd18c06d1c1cccf23d85592ee6844349b5e72e6a5e10f5eed5eca8f9c0a8a95e214389530194a03043b21108a49e3466cebe3078dadd364faf67fe3c51e1df75f4aa619854b780e0c04e9a9bf2301c030a3626ce820afc59e1c13ed6fa3e3030b966f3878f17a16a1209987aa9f7eb76988d401f10bdb0a419ddced1105659e6219440e35e984c3e7ada78c30a9a7399ce1abce36c7ce3e39a89cfac98f249735914cfc16baf666ed4b51ff2193c2836bd43e5d537f2653646f05c8109ef8edfd35b3acd73eb7e790c64cc2a7c9596e4a5f3d0e2d92b301c9ec5d82768ab211801bea96340c30e1b09fc9fae7cff2615d61ede29f9b0d712abffcd93ea3b20ceb7aa57368e84c3876ecd7a931cb19ea517603ef44a98b246288b27336980e4bb509007bcd01858cd35e9cd8df288221d3a487268828fe732fd7da2e2b6926b4a9b54d54b41c77998d1ef538487e1dcdf87fcc3fab25c77a7cf01f86087e2b95e1e4d45522fc3f44a14cbfacd48d63eba042ca3e14af8e5bed3186de4fb69f387aac88242d64fbdcd110c338821ad72562f092f55fa73b5e7d92c9b6fee5794ef4823190f9257b11ff4fc4457dba90fbda80dafb517fa27519489016f6f458006401f9fea20426a545aab7784c4e3df9dfa9fb279cf21a86ce3f292cf52d343fce97e05b92c84723d7ddc65a7bc79ae73b1246b6b65048a3855b62b1340264627c1df82f3352f3ac6d5a75e0823572c2fb392bd7ef15193cc5f6fbefc4d27ffd741a93d1ab799d9fbd545d2d2606e3566eb79d54485f5561510a57f17f2b3909ed1bfc5e5d64692b6c503eb58f17cae554137607467e8ab51d867067f50374e99f74869e0177f4eb52c2930dfe5ca2b6e454db8a36225b2c936bdc5bb75f1355ffd8d7fa476eb282871e52111832fcfc246da415c200d9e6c350f49846a0022660191a2840d7a53753674c78ea00a5b9e266ff29b1a8fb193e132d23f960cd9c8249b943fcdb865395b2c03ab675bbb1993813fb0a8d1e68331297c88db1dca00313b8211121b6023475cb69d6ac66c1116a56171350f680cc74c88fe9905ed078780e6d71bcc735fee75a9444f695d036aa6b4b9e59b6680b6312967f8b236ff8bee60316a70cba0312c993b92e30ca4cb118c1745e7b578c0ad6c3a7d8187372595dd160893115f11b054fc1718c967bdafe9bf95ad583db59396d594114b6500996eeff82b70191e52fa2330efdc66fa363cb379c9c67740535c9960ca857cfe4d0a88bbbbf2e7b2034bb843980f6fa86ff602335d1e25a613c7d7a4ef7a6b161c2582239aa56f5c8994d06646e0aa62c48b54e0852223772ed44e7059697aec6bc2225e0edac55fdbff1a16d4c6def4c77ddf38b2773952c811ff145ae366e216c41600659ff78f64b19e354d74f90a61907c85c702394fe2cca4f5feb5b53530b5f4c9e72f5c090ca464a7a9c395143735fdd2421d07e8efe4198ad06f9d230a91d5fb50efc02c2db6ed4ad750319e3e672f5213ddae92c3fcec0ed5dff522d0cab89bb8253254255529b32cf5385c9001421b92cc67163cc395235e408a463fa31eefd0742de5139bba2dc141fff7be175f418cf7cf89dd4f474a2fc61d0f3851f34d52c49bbd1226bd08963071f5d4918f7e12d0028d321b3d6bd436e02f6e55cc48c613e329916cb8545244bba377908d6bcfeb7ed66208e507b4dfd8f2cba5a3d42f3a4e4da80eba199cc8aec8a40f254710d811832496750c4b34c36b746bf3cb60dae81e73da952ee41c2a402372e5239fd2d407d8e91b9e57b4758aace59df7d83d38ad17716cae509ddb2427cbcf847a7b108edb4b3a708171e731a97702b6377c7934ec9b4c7446ea031e62bb39a6e2d320eaa8b5910b14d8826c204f7a4ab236240b486066b27be7f69b8442ffc803c4ed7fdd23ef2fa0337db842681c0f8ef2badcc08113fe8061ab31faf989ba55512a5f0e7b936d63c0cced58ef82cf0c2d29fb2318e12b56d4912e9c4f96db02ca8449294da33f8fce5507d3eb99239072e2b2e12e3355353bf490182eeb7aa103c977c06701caa0b74455116689b9dbe90ad1d18539d5e41ada0f2f7f1e6c9aa67aa2aa416f849f18c6fbd22dcbe03af78b15ceddda0d1bbbdd3362769f50e98680fce54b7e84a94f324666a6967fc80f2e5e9ca94f617f01163a1601c62219fcb5678266e1c618ca8947e74a2ade5e40daeb8df5620f365f66aeae88afb42d70ce4145ebafa758accc19e278bc9f45da63859c46ebdf7f0ee2e3fd9dd5414deb8607d7ec556568301d2650780be7f75fcdf92441cb98f23648b5ed3f3a5e2c96daaac1da0ce46e1d85b5c2cff4d9a9167d5815fcc66bbd945f0b55874195acbbbfecf80f26b70a4cf662f955ea4e01351faa9f5300cf35c72ae60915062ceff7891e7677519196bf813333361dbbeecfe8dc127a94c20b9faf036d71a816b1ab72e82019d0699b012a126022cc703136638dc8674905b4100e9b8d62abdeb13c84be300b49ae44fcea4b892fbf6564cdb012699e9fd1c964f2a9d7f312656b47e6916682b0044157f4e2dfb9d5f55d68495d763c807d8ec6932e560c913ab76fc3ff820202ae44facbda1aa153108f168e421bdb1a93c382edf08cc79c5b711ae13c6eb8e54393f4998ec99a95ae7f85999e78439ba603445545f21ffc856207eea9455fb14c0ad967f22cf0f572dba5cac7450e4e52ce713ce871fc76d7adca01260ea708da434001805bcfd1f3ccd1c6084d5ec2a29f00e77aa4f91dee13eeb5fcce8e82a103b37f6c4f2525951eaad449a08a75d2f341f17b2cbdf1730d192ef758a6e8f883d88c07f2ef41b443daa795000244263d2d30c762f6fecf3bb67f8dda6ca7d9d40a18e18626853c5094ef66ed64617ee9388c037a74a961692d4470796a683f880eb9041060acee4e7618b717a057951e1c662362fd26709bd80af39fe5c11f9654c2655b21edcc32428491dc5c101e6a222d2e51b9f23d960f12748d9a5fc3e2f6c953972347656a9f787ee5bd196445aa2eaf8f8fbdafaa34ed1b055a09b3718d8b3c8f1cfe5ac53cf37c9fa76fe7ac7087157bdba523e2a9e710b3f5b5a7ff9b8b1f612d9bbbb1104f9d6df98787e92523fe1d30101edf53d89df4a3c42bd3bd2737f3afe0154ee1e8d93d9a2775d84c686dac8984512cf9559623ac6fe4ef79f7b34b21969a8a8a7243f41e11a58de3e4e18f3385ee7003c79fa527b94e72338f2a1c4c45ff045a611fe1db3cdda0fef121f78c527534dab266dd3ff6f73d6b6bc03998309830510a57eb0e2d74de38112775b8775d99c15e38d0e709f397492fc6462f6e57a7ff65d25be9eb7530a5ef4fc807ff9e09b701b59d250b541a546db75d111f560a47217c122c6b2928d5a0a047a988b3ac5131df0096c15bbc398d0e6965841b17f491635885d8987a04bbe2482157b5ca883c767ea156b4e1784ba1b7cfeb343a71eb03ebce88792aed8b18e7fd880cd5934cbe55523c1b7c82b3ed99b3de90a479f251e1904ac86f28021957ef35421d3c8a2d39eee7314e3f3f945ea2fb5ff7f6c09ba472ff3e562c6168b0c1f843658bb180ebfcf954e58e633fb1612751bf360b15fe67ca594f5aae34233a3b58eeba562fad63") test$length10(&(0x7f0000fff000/0x1000)=nil, 0x1000, 0x1000, 0x800, 0x400) syz_compare(&(0x7f0000000000)='\'/+,\x00', 0x5, &(0x7f0000000040)=@bf5={0x1c, {0x1, 0x3}}, 0x8) syz_compare_int$2(0x2, 0xffff, 0x100) syz_errno(0xfffffff9) syz_execute_func(&(0x7f0000000080)="feaa0e278d403f03c2bf80488676754e435032f81eee19ffa3f48ca758e82b077289834eb79be67b6cf437e2d9b101f397d7") syz_exit(0xffffffc0) syz_mmap(&(0x7f0000ffc000/0x1000)=nil, 0x1000) syz_sleep_ms(0x1) syz_test_fuzzer1(0xd, 0xc, 0xb) 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 #ifndef SYS_breaks_returns #define SYS_breaks_returns 0 #endif #ifndef SYS_foo #define SYS_foo 0 #endif #ifndef SYS_serialize2 #define SYS_serialize2 0 #endif #ifndef SYS_test #define SYS_test 0 #endif static void sleep_ms(uint64_t ms) { usleep(ms * 1000); } static void use_temporary_dir(void) { char tmpdir_template[] = "./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() { } #define BITMASK(bf_off,bf_len) (((1ull << (bf_len)) - 1) << (bf_off)) #define STORE_BY_BITMASK(type,htobe,addr,val,bf_off,bf_len) *(type*)(addr) = htobe((htobe(*(type*)(addr)) & ~BITMASK((bf_off), (bf_len))) | (((type)(val) << (bf_off)) & BITMASK((bf_off), (bf_len)))) static long syz_mmap(volatile long a0, volatile long a1) { return (long)mmap((void*)a0, a1, PROT_READ | PROT_WRITE, MAP_ANON | MAP_PRIVATE | MAP_FIXED, -1, 0); } static long syz_errno(volatile long v) { errno = v; return v == 0 ? 0 : -1; } static long syz_exit(volatile long status) { _exit(status); return 0; } static long syz_sleep_ms(volatile long ms) { sleep_ms(ms); return 0; } static long syz_compare(volatile long want, volatile long want_len, volatile long got, volatile long got_len) { if (want_len != got_len) { errno = EBADF; goto error; } if (memcmp((void*)want, (void*)got, want_len)) { errno = EINVAL; goto error; } return 0; error: return -1; } static long syz_compare_int(volatile long n, ...) { va_list args; va_start(args, n); long v0 = va_arg(args, long); long v1 = va_arg(args, long); long v2 = va_arg(args, long); long v3 = va_arg(args, long); va_end(args); if (n < 2 || n > 4) return errno = E2BIG, -1; if (n <= 2 && v2 != 0) return errno = EFAULT, -1; if (n <= 3 && v3 != 0) return errno = EFAULT, -1; if (v0 != v1) return errno = EINVAL, -1; if (n > 2 && v0 != v2) return errno = EINVAL, -1; if (n > 3 && v0 != v3) return errno = EINVAL, -1; return 0; } static void loop(); static int do_sandbox_none(void) { loop(); return 0; } static void fake_crash(const char* name) { exit(1); exit(1); } static long syz_test_fuzzer1(volatile long a, volatile long b, volatile long c) { if (a == 1 && b == 1 && c == 1) fake_crash("first bug"); if (a == 1 && b == 2 && c == 3) fake_crash("second bug"); return 0; } static long syz_execute_func(volatile long text) { ((void (*)(void))(text))(); return 0; } static void execute_one(void); static void loop(void) { execute_one(); } void execute_one(void) { inject_fault(1); syscall(SYS_breaks_returns); syscall(SYS_breaks_returns); *(uint8_t*)0x20000000 = 0x20; *(uint16_t*)0x20000001 = htobe16(8); *(uint32_t*)0x20000003 = htobe32(7); *(uint64_t*)0x20000007 = htobe64(0x7fffffff); syscall(SYS_test, /*a0=*/0x20000000ul, 0, 0, 0, 0, 0); { int i; for(i = 0; i < 4; i++) { syscall(SYS_test, /*a0=*/0x20000000ul, 0, 0, 0, 0, 0); } } *(uint64_t*)0x20000040 = 0x20ffe000; *(uint64_t*)0x20000048 = 0x2000; syscall(SYS_test, /*a0=*/0x20000040ul, 0, 0, 0, 0, 0); *(uint64_t*)0x20001280 = 0x20001240; *(uint64_t*)0x20001240 = 0x20000600; *(uint64_t*)0x20000600 = 0; *(uint64_t*)0x20000608 = 0x200005c0; *(uint64_t*)0x200005c0 = 0x20000080; *(uint64_t*)0x20000080 = 0; *(uint64_t*)0x200005c8 = 0; *(uint64_t*)0x200005d0 = 0x20000180; *(uint64_t*)0x20000180 = 0x200000c0; *(uint64_t*)0x200000c0 = 0; *(uint64_t*)0x200000c8 = 0; *(uint64_t*)0x200000d0 = 0; *(uint64_t*)0x200000d8 = 0; *(uint64_t*)0x20000188 = 0x20000100; *(uint64_t*)0x20000100 = 0; *(uint64_t*)0x20000108 = 0; *(uint64_t*)0x20000110 = 0; *(uint64_t*)0x20000118 = 0; *(uint64_t*)0x20000190 = 0x20000140; *(uint64_t*)0x20000140 = 0; *(uint64_t*)0x20000148 = 0; *(uint64_t*)0x20000150 = 0; *(uint64_t*)0x20000158 = 0; *(uint64_t*)0x20000198 = 0; *(uint64_t*)0x200005d8 = 0x200002c0; *(uint64_t*)0x200002c0 = 0x200001c0; *(uint64_t*)0x200001c0 = 0; *(uint64_t*)0x200001c8 = 0; *(uint64_t*)0x200001d0 = 0; *(uint64_t*)0x200001d8 = 0; *(uint64_t*)0x200002c8 = 0x20000200; *(uint64_t*)0x20000200 = 0; *(uint64_t*)0x20000208 = 0; *(uint64_t*)0x20000210 = 0; *(uint64_t*)0x20000218 = 0; *(uint64_t*)0x200002d0 = 0x20000240; *(uint64_t*)0x20000240 = 0; *(uint64_t*)0x20000248 = 0; *(uint64_t*)0x20000250 = 0; *(uint64_t*)0x20000258 = 0; *(uint64_t*)0x200002d8 = 0x20000280; *(uint64_t*)0x20000280 = 0; *(uint64_t*)0x20000288 = 0; *(uint64_t*)0x20000290 = 0; *(uint64_t*)0x20000298 = 0; *(uint64_t*)0x200005e0 = 0; *(uint64_t*)0x200005e8 = 0x20000580; *(uint64_t*)0x20000580 = 0x20000300; *(uint64_t*)0x20000300 = 0; *(uint64_t*)0x20000588 = 0; *(uint64_t*)0x20000590 = 0x20000400; *(uint64_t*)0x20000400 = 0x20000340; *(uint64_t*)0x20000340 = 0; *(uint64_t*)0x20000348 = 0; *(uint64_t*)0x20000350 = 0; *(uint64_t*)0x20000358 = 0; *(uint64_t*)0x20000408 = 0x20000380; *(uint64_t*)0x20000380 = 0; *(uint64_t*)0x20000388 = 0; *(uint64_t*)0x20000390 = 0; *(uint64_t*)0x20000398 = 0; *(uint64_t*)0x20000410 = 0; *(uint64_t*)0x20000418 = 0x200003c0; *(uint64_t*)0x200003c0 = 0; *(uint64_t*)0x200003c8 = 0; *(uint64_t*)0x200003d0 = 0; *(uint64_t*)0x200003d8 = 0; *(uint64_t*)0x20000598 = 0x20000540; *(uint64_t*)0x20000540 = 0x20000440; *(uint64_t*)0x20000440 = 0; *(uint64_t*)0x20000448 = 0; *(uint64_t*)0x20000450 = 0; *(uint64_t*)0x20000458 = 0; *(uint64_t*)0x20000548 = 0x20000480; *(uint64_t*)0x20000480 = 0; *(uint64_t*)0x20000488 = 0; *(uint64_t*)0x20000490 = 0; *(uint64_t*)0x20000498 = 0; *(uint64_t*)0x20000550 = 0x200004c0; *(uint64_t*)0x200004c0 = 0; *(uint64_t*)0x200004c8 = 0; *(uint64_t*)0x200004d0 = 0; *(uint64_t*)0x200004d8 = 0; *(uint64_t*)0x20000558 = 0x20000500; *(uint64_t*)0x20000500 = 0; *(uint64_t*)0x20000508 = 0; *(uint64_t*)0x20000510 = 0; *(uint64_t*)0x20000518 = 0; *(uint64_t*)0x200005a0 = 0; *(uint64_t*)0x200005a8 = 0; *(uint64_t*)0x20001248 = 0x20001200; *(uint64_t*)0x20001200 = 0x20000680; *(uint64_t*)0x20000680 = 0x20000640; *(uint64_t*)0x20000640 = 0; *(uint64_t*)0x20001208 = 0x200009c0; *(uint64_t*)0x200009c0 = 0; *(uint64_t*)0x200009c8 = 0x20000980; *(uint64_t*)0x20000980 = 0x20000700; *(uint64_t*)0x20000700 = 0x200006c0; *(uint64_t*)0x200006c0 = 0; *(uint64_t*)0x20000988 = 0; *(uint64_t*)0x20000990 = 0x20000840; *(uint64_t*)0x20000840 = 0x20000740; *(uint64_t*)0x20000740 = 0; *(uint64_t*)0x20000748 = 0; *(uint64_t*)0x20000750 = 0; *(uint64_t*)0x20000758 = 0; *(uint64_t*)0x20000848 = 0x20000780; *(uint64_t*)0x20000780 = 0; *(uint64_t*)0x20000788 = 0; *(uint64_t*)0x20000790 = 0; *(uint64_t*)0x20000798 = 0; *(uint64_t*)0x20000850 = 0x200007c0; *(uint64_t*)0x200007c0 = 0; *(uint64_t*)0x200007c8 = 0; *(uint64_t*)0x200007d0 = 0; *(uint64_t*)0x200007d8 = 0; *(uint64_t*)0x20000858 = 0x20000800; *(uint64_t*)0x20000800 = 0; *(uint64_t*)0x20000808 = 0; *(uint64_t*)0x20000810 = 0; *(uint64_t*)0x20000818 = 0; *(uint64_t*)0x20000998 = 0x20000940; *(uint64_t*)0x20000940 = 0x20000880; *(uint64_t*)0x20000880 = 0; *(uint64_t*)0x20000888 = 0; *(uint64_t*)0x20000890 = 0; *(uint64_t*)0x20000898 = 0; *(uint64_t*)0x20000948 = 0x200008c0; *(uint64_t*)0x200008c0 = 0; *(uint64_t*)0x200008c8 = 0; *(uint64_t*)0x200008d0 = 0; *(uint64_t*)0x200008d8 = 0; *(uint64_t*)0x20000950 = 0x20000900; *(uint64_t*)0x20000900 = 0; *(uint64_t*)0x20000908 = 0; *(uint64_t*)0x20000910 = 0; *(uint64_t*)0x20000918 = 0; *(uint64_t*)0x20000958 = 0; *(uint64_t*)0x200009a0 = 0; *(uint64_t*)0x200009a8 = 0; *(uint64_t*)0x20001210 = 0x20000ac0; *(uint64_t*)0x20000ac0 = 0x20000a00; *(uint64_t*)0x20000a00 = 0; *(uint64_t*)0x20000a08 = 0; *(uint64_t*)0x20000a10 = 0; *(uint64_t*)0x20000a18 = 0; *(uint64_t*)0x20000ac8 = 0; *(uint64_t*)0x20000ad0 = 0x20000a40; *(uint64_t*)0x20000a40 = 0; *(uint64_t*)0x20000a48 = 0; *(uint64_t*)0x20000a50 = 0; *(uint64_t*)0x20000a58 = 0; *(uint64_t*)0x20000ad8 = 0x20000a80; *(uint64_t*)0x20000a80 = 0; *(uint64_t*)0x20000a88 = 0; *(uint64_t*)0x20000a90 = 0; *(uint64_t*)0x20000a98 = 0; *(uint64_t*)0x20001218 = 0x20000bc0; *(uint64_t*)0x20000bc0 = 0x20000b00; *(uint64_t*)0x20000b00 = 0; *(uint64_t*)0x20000b08 = 0; *(uint64_t*)0x20000b10 = 0; *(uint64_t*)0x20000b18 = 0; *(uint64_t*)0x20000bc8 = 0; *(uint64_t*)0x20000bd0 = 0x20000b40; *(uint64_t*)0x20000b40 = 0; *(uint64_t*)0x20000b48 = 0; *(uint64_t*)0x20000b50 = 0; *(uint64_t*)0x20000b58 = 0; *(uint64_t*)0x20000bd8 = 0x20000b80; *(uint64_t*)0x20000b80 = 0; *(uint64_t*)0x20000b88 = 0; *(uint64_t*)0x20000b90 = 0; *(uint64_t*)0x20000b98 = 0; *(uint64_t*)0x20001220 = 0x20000e80; *(uint64_t*)0x20000e80 = 0; *(uint64_t*)0x20000e88 = 0x20000c00; *(uint64_t*)0x20000c00 = 0; *(uint64_t*)0x20000c08 = 0; *(uint64_t*)0x20000e90 = 0x20000d40; *(uint64_t*)0x20000d40 = 0x20000c40; *(uint64_t*)0x20000c40 = 0; *(uint64_t*)0x20000c48 = 0; *(uint64_t*)0x20000c50 = 0; *(uint64_t*)0x20000c58 = 0; *(uint64_t*)0x20000d48 = 0x20000c80; *(uint64_t*)0x20000c80 = 0; *(uint64_t*)0x20000c88 = 0; *(uint64_t*)0x20000c90 = 0; *(uint64_t*)0x20000c98 = 0; *(uint64_t*)0x20000d50 = 0x20000cc0; *(uint64_t*)0x20000cc0 = 0; *(uint64_t*)0x20000cc8 = 0; *(uint64_t*)0x20000cd0 = 0; *(uint64_t*)0x20000cd8 = 0; *(uint64_t*)0x20000d58 = 0x20000d00; *(uint64_t*)0x20000d00 = 0; *(uint64_t*)0x20000d08 = 0; *(uint64_t*)0x20000d10 = 0; *(uint64_t*)0x20000d18 = 0; *(uint64_t*)0x20000e98 = 0x20000e40; *(uint64_t*)0x20000e40 = 0x20000d80; *(uint64_t*)0x20000d80 = 0; *(uint64_t*)0x20000d88 = 0; *(uint64_t*)0x20000d90 = 0; *(uint64_t*)0x20000d98 = 0; *(uint64_t*)0x20000e48 = 0x20000dc0; *(uint64_t*)0x20000dc0 = 0; *(uint64_t*)0x20000dc8 = 0; *(uint64_t*)0x20000dd0 = 0; *(uint64_t*)0x20000dd8 = 0; *(uint64_t*)0x20000e50 = 0x20000e00; *(uint64_t*)0x20000e00 = 0; *(uint64_t*)0x20000e08 = 0; *(uint64_t*)0x20000e10 = 0; *(uint64_t*)0x20000e18 = 0; *(uint64_t*)0x20000e58 = 0; *(uint64_t*)0x20000ea0 = 0; *(uint64_t*)0x20000ea8 = 0; *(uint64_t*)0x20001228 = 0x200011c0; *(uint64_t*)0x200011c0 = 0x20000f00; *(uint64_t*)0x20000f00 = 0x20000ec0; *(uint64_t*)0x20000ec0 = 0; *(uint64_t*)0x200011c8 = 0x20000f40; *(uint64_t*)0x20000f40 = 0; *(uint64_t*)0x20000f48 = 0; *(uint64_t*)0x200011d0 = 0x20001040; *(uint64_t*)0x20001040 = 0x20000f80; *(uint64_t*)0x20000f80 = 0; *(uint64_t*)0x20000f88 = 0; *(uint64_t*)0x20000f90 = 0; *(uint64_t*)0x20000f98 = 0; *(uint64_t*)0x20001048 = 0x20000fc0; *(uint64_t*)0x20000fc0 = 0; *(uint64_t*)0x20000fc8 = 0; *(uint64_t*)0x20000fd0 = 0; *(uint64_t*)0x20000fd8 = 0; *(uint64_t*)0x20001050 = 0; *(uint64_t*)0x20001058 = 0x20001000; *(uint64_t*)0x20001000 = 0; *(uint64_t*)0x20001008 = 0; *(uint64_t*)0x20001010 = 0; *(uint64_t*)0x20001018 = 0; *(uint64_t*)0x200011d8 = 0x20001180; *(uint64_t*)0x20001180 = 0x20001080; *(uint64_t*)0x20001080 = 0; *(uint64_t*)0x20001088 = 0; *(uint64_t*)0x20001090 = 0; *(uint64_t*)0x20001098 = 0; *(uint64_t*)0x20001188 = 0x200010c0; *(uint64_t*)0x200010c0 = 0; *(uint64_t*)0x200010c8 = 0; *(uint64_t*)0x200010d0 = 0; *(uint64_t*)0x200010d8 = 0; *(uint64_t*)0x20001190 = 0x20001100; *(uint64_t*)0x20001100 = 0; *(uint64_t*)0x20001108 = 0; *(uint64_t*)0x20001110 = 0; *(uint64_t*)0x20001118 = 0; *(uint64_t*)0x20001198 = 0x20001140; *(uint64_t*)0x20001140 = 0; *(uint64_t*)0x20001148 = 0; *(uint64_t*)0x20001150 = 0; *(uint64_t*)0x20001158 = 0; *(uint64_t*)0x200011e0 = 0; *(uint64_t*)0x200011e8 = 0; *(uint64_t*)0x20001288 = 0; syscall(SYS_test, /*a0=*/0x20001280ul, 0, 0, 0, 0, 0); syscall(SYS_foo, /*a0=*/0x200012c0ul, /*a1=*/0x20001300ul, /*a2=*/0x20001340ul); syscall(SYS_breaks_returns); syscall(SYS_test, /*a0=*/0x20ffe000ul, /*a1=*/0, /*a2=*/0x1000, /*a3=*/0x800, /*a4=*/0x400ul, 0); memcpy((void*)0x20001380, "\xb3\xeb\x98\x0b\x12\xaf\x03\x68\x48\x32\xff\x0d\x13\x67\xb0\x5d\xed\x25\x0f\x35\x0b\xff\xb9\xc6\x72\x43\xa4\xa2\x6c\xac\x6a\x56\x64\xba\x93\xce\x0c\x5f\xfc\xa8\x1d\x81\xc8\xa8\xa1\x84\x16\x56\x6c\x33\xd0\x0a\x99\x9b\xaf\x45\xad\x35\x17\x40\x79\x5a\x1a\x3a\x7f\x59\xab\xe5\x9a\xc2\x18\xf6\xe2\x04\xdc\x13\x29\xf1\x58\xd3\x6e\x4d\x0c\x86\x20\x0e\x4d\x8b\x5d\xbd\xa2\x75\xd2\x0e\x53\x15\xc5\x2e\x12\x89\x56\x63\xd7\xe5\xf4\xad\x1f\x0d\x1a\x8a\xc3\x01\x4e\xb4\x60\x3f\x30\x44\x5a\x97\x5d\x0a\x77\xfe\xec\x81\xe4\xe9\x9b\xd7\x1a\xca\xd6\x46\xcb\x04\xb6\x08\x19\xe8\xec\x24\xa8\xa2\xdb\x39\x09\x68\x8b\xb2\x84\x16\x28\x72\xbc\x71\x5c\x3e\xf9\x86\x3a\x13\xd6\x0f\x4e\x3a\xcd\x69\x54\xf1\xff\x26\x8e\xee\x5c\xbe\x35\x46\x5b\x4e\x65\xc6\x0d\xbf\x3d\xa3\x56\x89\xaf\x39\xd3\xdc\x0d\x9d\x22\x26\x40\x61\x47\xfe\xcc\xad\x22\xfd\x6d\x92\x55\xa8\xb9\x21\x78\xc6\xaf\xa7\xaa\x2d\xec\xd0\xae\x46\xec\x45\xc9\xbb\xf6\xe5\x3f\xea\xd2\xd6\x82\xd7\x15\x17\x5b\xa6\x08\xf8\x4b\xa1\x4d\x9a\x28\xc5\xe4\x7e\xbd\x82\x9a\x76\xbc\xa0\xc2\x82\x1b\x0e\x29\x91\x5a\x28\x89\xe0\x01\xa2\x01\x52\x4f\xcf\x62\x45\xad\xcf\x4d\x32\x6d\x69\x17\x6d\x7f\xa2\x7e\xd8\xd5\x93\xe2\x5e\xef\x7a\xfa\xa1\x47\x9e\x50\x63\x48\xf0\xa6\x75\x36\x97\x03\x4b\x9c\x60\x9f\x46\x51\x46\xf9\x56\x9d\xdd\x56\xaf\xf7\xfc\x2f\xad\xef\xb8\x9f\xa2\xd2\xd4\xb8\x38\xe7\xd6\x32\x00\x09\x7b\x77\xed\x52\xd9\xc3\x1c\x98\xfd\x76\xf9\x46\x7f\xf5\x11\x6c\xa0\x0f\x85\x84\x6a\x91\xbe\xf6\x94\x19\xaa\xc6\xeb\xc7\xdd\xfb\xa2\xb2\x68\xbf\xe2\x62\xf6\xf5\x5d\x52\xa6\x47\xaf\x8a\x0b\x45\x39\x1b\xa9\xdf\x09\xe2\x56\x64\x01\x9b\x41\x07\xa2\x31\xee\x76\x1a\x81\x96\x0c\x11\x98\xf5\x20\x9e\x3c\x37\x07\xd7\x68\xb8\xd0\x99\xee\xe5\x63\x05\x5a\x88\xc3\x04\x9f\x5a\xdd\xf8\x74\x7a\x2d\xfd\x6f\x3b\x43\xc5\xc2\x5d\xf5\x0c\x8a\x4b\x77\x87\x2a\x8d\x89\x05\xdf\xa0\x88\x5a\xdd\xdb\x8f\xd4\x9e\x29\x73\x52\x62\xb1\xc9\x4e\xa5\x9c\xe0\xce\xa5\xa0\x61\xfb\xb0\x42\xc7\xe3\x01\xe2\x92\x12\xf2\xf1\x47\x6e\x7c\x25\x31\x7c\xb5\xfa\x81\x77\x4d\x78\xb2\x0e\xfe\xa3\x77\xd4\xfb\xfd\xb1\x90\xcc\x1f\xd5\x8f\x56\x8e\x6a\xc1\x9b\xe0\x5d\x99\xc8\x36\x24\x28\xf5\x9f\x47\x31\x1a\xbf\x17\x8f\x6b\x08\x36\x45\xcc\xf0\x13\x62\x4a\x41\x8b\x8d\x9f\xec\xfa\x26\xf7\xdc\xba\x32\xb4\x39\x54\x49\xc0\xd1\xef\x6f\xa3\x7f\x33\xfa\x5e\xa6\x01\x92\xbb\x5c\xe9\x2e\x45\x8d\x90\xce\xdf\x0e\x85\x78\x78\x11\xc6\x4b\xd0\x43\x6f\x4c\x5c\xa0\x1f\xac\xae\x7b\x79\x3d\x69\x64\x42\x98\x28\x41\xf6\xe8\x3f\x60\x3d\x58\x06\x74\x2a\x4e\xc7\xac\xb4\x06\xc5\x5b\x27\xaa\xad\x7a\x62\x8e\xb2\xf4\x1f\x80\x07\xc0\xe3\x72\x8f\xa1\xf4\x01\x94\xd2\x71\x39\x2f\x6c\x7f\x68\x4e\x1d\xbe\x23\x9c\xf6\xc5\x01\xbd\x4f\x4f\x64\x31\x53\xb4\xe7\xbd\x32\xff\x4b\x3d\xb3\x61\xfe\x9c\x4a\x87\xb4\xd7\x49\x2e\xef\x74\x9b\xd1\x8c\x6a\x44\xda\xba\x60\x54\x2d\xea\xdc\x45\xcb\xfa\x8a\x46\xb8\xd2\x52\x67\x0e\xe3\x12\xed\xe5\x3b\xb5\x16\xf0\x00\x0c\xc2\x50\x09\xf4\xd4\xe7\x4c\x6f\x61\x30\x6c\x34\x4a\x9b\xa4\x8f\xa2\xa2\xd7\x0f\x3e\x1a\xc0\x18\xf9\xc0\xd1\x5d\xda\xaf\xb5\xcf\x89\x86\x7c\xa6\xbf\x6b\x37\x42\x7c\x47\x7e\xec\x1a\xcb\x7f\x36\x9b\x94\x22\xa8\x85\x8e\xbc\x2f\x3a\x10\xa9\xe9\x0a\xea\x0f\x4d\xf8\x2a\xb2\xe8\xd1\x0d\xff\xcb\x99\x89\x2a\x81\x55\xb4\xf8\xaf\xf7\x9e\x93\xdf\x24\x84\x8a\xef\x03\x5e\x85\xd5\x70\x48\xc7\xc9\x3f\xe5\x44\xe3\xef\x17\x54\xc4\x92\x40\x57\x3a\xc1\xea\x67\xb9\x4d\x85\x74\x54\x2d\xff\x03\xf0\x6b\xfe\xdc\x3f\x51\xc6\x20\x40\x28\x61\xf7\x77\xfa\x47\xbc\x05\xc8\x65\xa6\xe6\x3a\xb4\x8e\x70\xc4\xb3\x14\xe6\xf8\x09\x53\xcb\x1a\x22\xb9\x22\x6a\x1b\x3c\xc0\x84\x73\x6b\x2a\x82\x6a\x7f\xc8\x41\x02\x3e\xaa\x56\x44\x8d\x94\x75\x7b\x01\x38\x33\xc5\x3e\x18\x2c\x1d\xe0\x66\x87\x87\x01\xde\xf7\x3b\xdd\x13\xd7\x40\x45\x65\xdc\xc3\x17\xae\x65\x03\x83\xb3\xea\x7d\x5e\x6a\xed\x3d\xbf\x57\x5a\x2c\xa5\x13\x28\x50\xe3\x94\xad\xeb\x9f\xee\x10\x87\x19\x37\x83\x20\xb9\xb4\xe0\xc5\xa6\xdd\xc7\x75\x94\xa8\x02\x41\x51\xb3\xa6\xd3\x22\xfb\x48\xe5\xdb\x7f\x0f\xb0\x4a\x91\x49\xfb\x27\x8e\xd9\xd8\xad\x19\xb1\xb8\xa2\x68\xcb\xa4\xb3\x00\xe9\x31\x39\xf2\xb6\x11\xbb\x77\x79\x83\xb7\x4d\x6f\xac\x85\x2d\x74\x3f\xb5\x01\x1f\x9b\xf2\xbf\xd3\xf4\x31\x4c\xdc\x9b\x1e\x71\xc6\x5e\xa7\x6e\x49\x53\xaf\x36\xbc\xb4\xb9\x64\x9a\xa0\xee\xaa\x6c\x89\x2e\x17\x0d\x32\x85\x24\x17\x08\x59\x4a\x91\xbd\xec\x0f\xde\xdd\x97\x4b\x42\x20\xb4\xb7\x0a\x5a\x93\x99\x38\x52\x7c\x6e\x6e\xf8\x23\xb3\x62\x56\xc1\x36\x9f\xbe\xed\x64\xa9\x0e\x8b\xe5\x45\xea\xc8\x96\x8c\x76\x41\x39\xcc\xd4\xdc\x59\x01\xbc\x01\x99\x85\xaa\xb5\xfe\x71\xe2\x4c\x55\xf2\x60\xc4\xc4\xb7\xfd\x5c\xf5\x28\x8b\x13\xdc\xda\x57\xbb\x34\x50\xfb\x4f\x6e\xce\x5e\x7c\x4a\x0a\x21\xff\xf3\x12\x4c\x3c\x78\x3a\xfa\x87\x44\xf6\xca\x3f\x5c\x3d\xe5\xb4\xc1\x54\xce\xa1\x2b\xa4\x7c\x3c\x69\x4e\xa8\x30\x3a\x8d\x7c\x85\x10\x08\x9c\xc1\x60\x9a\x82\xe6\xa7\xe0\x89\xf6\x3a\xfd\x05\x85\xd3\xf5\xab\xa2\x26\x34\xdd\x7c\x95\x79\x36\x4d\xa1\xd9\x3a\x99\x5f\x77\x06\xda\x20\x8d\x65\xb9\x48\xd7\x46\x13\xe0\xe4\xf8\xc7\x79\x74\xdb\x27\x2e\xdf\x2f\x8d\x52\x91\xcd\x3a\xf0\xd0\xad\xee\xcc\x16\x35\x85\x16\x1b\xc8\xec\x9b\x62\x82\x3f\xeb\x86\x4a\x8f\xfa\x00\x12\x07\x19\x98\x19\x07\xc0\x27\xef\x41\xa9\xc5\xeb\xef\x88\x41\x1b\x42\x0e\x2c\x60\x41\xe9\x4d\xba\xe9\x38\x8f\x72\xdb\x00\x89\xd4\x73\x3c\xed\xc3\x68\xcd\x1d\x68\x05\x63\x4c\x80\xbf\xfb\x9c\x34\x30\xf4\x02\xb7\x3f\xff\x1d\x6c\xf3\x55\xb9\x50\x9c\x1b\xfd\x48\xe7\x9b\x14\x17\x14\x1c\x9b\x9a\xb1\xc0\xf6\x2a\x4c\xf9\x7b\xae\x55\xfe\x53\xaf\xea\x35\x3c\x10\x61\xbb\x88\x2e\x10\x1d\x74\x34\xb3\x9b\xe6\x55\x8e\x77\xea\x26\xb4\x4b\x50\x7c\x2c\x44\xdd\x0a\x62\x5c\x04\x4b\x0a\x78\xee\x23\x64\x86\x28\x42\xd9\xef\x0f\x1b\xcb\x56\x3f\x01\xad\xbd\xee\x69\xe5\x2d\x02\x28\x56\xad\x65\x04\xd8\x11\xe8\x49\xab\x47\x0d\x61\x3d\xa0\xce\x95\x10\x03\x52\x98\x22\xad\xc1\x02\xc4\xc6\x2a\x3a\xad\x2f\x73\x92\xaa\x46\x01\xab\x08\x63\x15\x0c\x35\x8a\xee\xc2\xfc\x5e\x3a\x90\x6d\xf0\x0f\xe5\xdb\x12\x26\xba\xc2\x0f\x08\xd7\x01\xf1\x81\xb9\x0a\x4d\x38\x9b\x91\xdd\xdb\xc2\x4e\x40\x48\x8e\x1c\x46\xab\x2d\x05\xb4\x82\x30\x29\x45\x3c\xc9\x25\x3e\xbc\x43\x70\x96\x4a\x64\xc1\x08\x7c\xb3\x85\x7d\x73\x6d\xc3\x03\xce\x93\x06\x6d\xb6\x0f\xc6\x1b\xe9\xf7\x9c\x0c\x9e\x1c\xa7\xe4\xd7\x3f\x95\x17\x2b\xcb\xaf\x6c\xbd\x18\xc0\x6d\x1c\x1c\xcc\xf2\x3d\x85\x59\x2e\xe6\x84\x43\x49\xb5\xe7\x2e\x6a\x5e\x10\xf5\xee\xd5\xec\xa8\xf9\xc0\xa8\xa9\x5e\x21\x43\x89\x53\x01\x94\xa0\x30\x43\xb2\x11\x08\xa4\x9e\x34\x66\xce\xbe\x30\x78\xda\xdd\x36\x4f\xaf\x67\xfe\x3c\x51\xe1\xdf\x75\xf4\xaa\x61\x98\x54\xb7\x80\xe0\xc0\x4e\x9a\x9b\xf2\x30\x1c\x03\x0a\x36\x26\xce\x82\x0a\xfc\x59\xe1\xc1\x3e\xd6\xfa\x3e\x30\x30\xb9\x66\xf3\x87\x8f\x17\xa1\x6a\x12\x09\x98\x7a\xa9\xf7\xeb\x76\x98\x8d\x40\x1f\x10\xbd\xb0\xa4\x19\xdd\xce\xd1\x10\x56\x59\xe6\x21\x94\x40\xe3\x5e\x98\x4c\x3e\x7a\xda\x78\xc3\x0a\x9a\x73\x99\xce\x1a\xbc\xe3\x6c\x7c\xe3\xe3\x9a\x89\xcf\xac\x98\xf2\x49\x73\x59\x14\xcf\xc1\x6b\xaf\x66\x6e\xd4\xb5\x1f\xf2\x19\x3c\x28\x36\xbd\x43\xe5\xd5\x37\xf2\x65\x36\x46\xf0\x5c\x81\x09\xef\x8e\xdf\xd3\x5b\x3a\xcd\x73\xeb\x7e\x79\x0c\x64\xcc\x2a\x7c\x95\x96\xe4\xa5\xf3\xd0\xe2\xd9\x2b\x30\x1c\x9e\xc5\xd8\x27\x68\xab\x21\x18\x01\xbe\xa9\x63\x40\xc3\x0e\x1b\x09\xfc\x9f\xae\x7c\xff\x26\x15\xd6\x1e\xde\x29\xf9\xb0\xd7\x12\xab\xff\xcd\x93\xea\x3b\x20\xce\xb7\xaa\x57\x36\x8e\x84\xc3\x87\x6e\xcd\x7a\x93\x1c\xb1\x9e\xa5\x17\x60\x3e\xf4\x4a\x98\xb2\x46\x28\x8b\x27\x33\x69\x80\xe4\xbb\x50\x90\x07\xbc\xd0\x18\x58\xcd\x35\xe9\xcd\x8d\xf2\x88\x22\x1d\x3a\x48\x72\x68\x82\x8f\xe7\x32\xfd\x7d\xa2\xe2\xb6\x92\x6b\x4a\x9b\x54\xd5\x4b\x41\xc7\x79\x98\xd1\xef\x53\x84\x87\xe1\xdc\xdf\x87\xfc\xc3\xfa\xb2\x5c\x77\xa7\xcf\x01\xf8\x60\x87\xe2\xb9\x5e\x1e\x4d\x45\x52\x2f\xc3\xf4\x4a\x14\xcb\xfa\xcd\x48\xd6\x3e\xba\x04\x2c\xa3\xe1\x4a\xf8\xe5\xbe\xd3\x18\x6d\xe4\xfb\x69\xf3\x87\xaa\xc8\x82\x42\xd6\x4f\xbd\xcd\x11\x0c\x33\x88\x21\xad\x72\x56\x2f\x09\x2f\x55\xfa\x73\xb5\xe7\xd9\x2c\x9b\x6f\xee\x57\x94\xef\x48\x23\x19\x0f\x92\x57\xb1\x1f\xf4\xfc\x44\x57\xdb\xa9\x0f\xbd\xa8\x0d\xaf\xb5\x17\xfa\x27\x51\x94\x89\x01\x6f\x6f\x45\x80\x06\x40\x1f\x9f\xea\x20\x42\x6a\x54\x5a\xab\x77\x84\xc4\xe3\xdf\x9d\xfa\x9f\xb2\x79\xcf\x21\xa8\x6c\xe3\xf2\x92\xcf\x52\xd3\x43\xfc\xe9\x7e\x05\xb9\x2c\x84\x72\x3d\x7d\xdc\x65\xa7\xbc\x79\xae\x73\xb1\x24\x6b\x6b\x65\x04\x8a\x38\x55\xb6\x2b\x13\x40\x26\x46\x27\xc1\xdf\x82\xf3\x35\x2f\x3a\xc6\xd5\xa7\x5e\x08\x23\x57\x2c\x2f\xb3\x92\xbd\x7e\xf1\x51\x93\xcc\x5f\x6f\xbe\xfc\x4d\x27\xff\xd7\x41\xa9\x3d\x1a\xb7\x99\xd9\xfb\xd5\x45\xd2\xd2\x60\x6e\x35\x66\xeb\x79\xd5\x44\x85\xf5\x56\x15\x10\xa5\x7f\x17\xf2\xb3\x90\x9e\xd1\xbf\xc5\xe5\xd6\x46\x92\xb6\xc5\x03\xeb\x58\xf1\x7c\xae\x55\x41\x37\x60\x74\x67\xe8\xab\x51\xd8\x67\x06\x7f\x50\x37\x4e\x99\xf7\x48\x69\xe0\x17\x7f\x4e\xb5\x2c\x29\x30\xdf\xe5\xca\x2b\x6e\x45\x4d\xb8\xa3\x62\x25\xb2\xc9\x36\xbd\xc5\xbb\x75\xf1\x35\x5f\xfd\x8d\x7f\xa4\x76\xeb\x28\x28\x71\xe5\x21\x11\x83\x2f\xcf\xc2\x46\xda\x41\x5c\x20\x0d\x9e\x6c\x35\x0f\x49\x84\x6a\x00\x22\x66\x01\x91\xa2\x84\x0d\x7a\x53\x75\x36\x74\xc7\x8e\xa0\x0a\x5b\x9e\x26\x6f\xf2\x9b\x1a\x8f\xb1\x93\xe1\x32\xd2\x3f\x96\x0c\xd9\xc8\x24\x9b\x94\x3f\xcd\xb8\x65\x39\x5b\x2c\x03\xab\x67\x5b\xbb\x19\x93\x81\x3f\xb0\xa8\xd1\xe6\x83\x31\x29\x7c\x88\xdb\x1d\xca\x00\x31\x3b\x82\x11\x12\x1b\x60\x23\x47\x5c\xb6\x9d\x6a\xc6\x6c\x11\x16\xa5\x61\x71\x35\x0f\x68\x0c\xc7\x4c\x88\xfe\x99\x05\xed\x07\x87\x80\xe6\xd7\x1b\xcc\x73\x5f\xee\x75\xa9\x44\x4f\x69\x5d\x03\x6a\xa6\xb4\xb9\xe5\x9b\x66\x80\xb6\x31\x29\x67\xf8\xb2\x36\xff\x8b\xee\x60\x31\x6a\x70\xcb\xa0\x31\x2c\x99\x3b\x92\xe3\x0c\xa4\xcb\x11\x8c\x17\x45\xe7\xb5\x78\xc0\xad\x6c\x3a\x7d\x81\x87\x37\x25\x95\xdd\x16\x08\x93\x11\x5f\x11\xb0\x54\xfc\x17\x18\xc9\x67\xbd\xaf\xe9\xbf\x95\xad\x58\x3d\xb5\x93\x96\xd5\x94\x11\x4b\x65\x00\x99\x6e\xef\xf8\x2b\x70\x19\x1e\x52\xfa\x23\x30\xef\xdc\x66\xfa\x36\x3c\xb3\x79\xc9\xc6\x77\x40\x53\x5c\x99\x60\xca\x85\x7c\xfe\x4d\x0a\x88\xbb\xbb\xf2\xe7\xb2\x03\x4b\xb8\x43\x98\x0f\x6f\xa8\x6f\xf6\x02\x33\x5d\x1e\x25\xa6\x13\xc7\xd7\xa4\xef\x7a\x6b\x16\x1c\x25\x82\x23\x9a\xa5\x6f\x5c\x89\x94\xd0\x66\x46\xe0\xaa\x62\xc4\x8b\x54\xe0\x85\x22\x23\x77\x2e\xd4\x4e\x70\x59\x69\x7a\xec\x6b\xc2\x22\x5e\x0e\xda\xc5\x5f\xdb\xff\x1a\x16\xd4\xc6\xde\xf4\xc7\x7d\xdf\x38\xb2\x77\x39\x52\xc8\x11\xff\x14\x5a\xe3\x66\xe2\x16\xc4\x16\x00\x65\x9f\xf7\x8f\x64\xb1\x9e\x35\x4d\x74\xf9\x0a\x61\x90\x7c\x85\xc7\x02\x39\x4f\xe2\xcc\xa4\xf5\xfe\xb5\xb5\x35\x30\xb5\xf4\xc9\xe7\x2f\x5c\x09\x0c\xa4\x64\xa7\xa9\xc3\x95\x14\x37\x35\xfd\xd2\x42\x1d\x07\xe8\xef\xe4\x19\x8a\xd0\x6f\x9d\x23\x0a\x91\xd5\xfb\x50\xef\xc0\x2c\x2d\xb6\xed\x4a\xd7\x50\x31\x9e\x3e\x67\x2f\x52\x13\xdd\xae\x92\xc3\xfc\xec\x0e\xd5\xdf\xf5\x22\xd0\xca\xb8\x9b\xb8\x25\x32\x54\x25\x55\x29\xb3\x2c\xf5\x38\x5c\x90\x01\x42\x1b\x92\xcc\x67\x16\x3c\xc3\x95\x23\x5e\x40\x8a\x46\x3f\xa3\x1e\xef\xd0\x74\x2d\xe5\x13\x9b\xba\x2d\xc1\x41\xff\xf7\xbe\x17\x5f\x41\x8c\xf7\xcf\x89\xdd\x4f\x47\x4a\x2f\xc6\x1d\x0f\x38\x51\xf3\x4d\x52\xc4\x9b\xbd\x12\x26\xbd\x08\x96\x30\x71\xf5\xd4\x91\x8f\x7e\x12\xd0\x02\x8d\x32\x1b\x3d\x6b\xd4\x36\xe0\x2f\x6e\x55\xcc\x48\xc6\x13\xe3\x29\x91\x6c\xb8\x54\x52\x44\xbb\xa3\x77\x90\x8d\x6b\xcf\xeb\x7e\xd6\x62\x08\xe5\x07\xb4\xdf\xd8\xf2\xcb\xa5\xa3\xd4\x2f\x3a\x4e\x4d\xa8\x0e\xba\x19\x9c\xc8\xae\xc8\xa4\x0f\x25\x47\x10\xd8\x11\x83\x24\x96\x75\x0c\x4b\x34\xc3\x6b\x74\x6b\xf3\xcb\x60\xda\xe8\x1e\x73\xda\x95\x2e\xe4\x1c\x2a\x40\x23\x72\xe5\x23\x9f\xd2\xd4\x07\xd8\xe9\x1b\x9e\x57\xb4\x75\x8a\xac\xe5\x9d\xf7\xd8\x3d\x38\xad\x17\x71\x6c\xae\x50\x9d\xdb\x24\x27\xcb\xcf\x84\x7a\x7b\x10\x8e\xdb\x4b\x3a\x70\x81\x71\xe7\x31\xa9\x77\x02\xb6\x37\x7c\x79\x34\xec\x9b\x4c\x74\x46\xea\x03\x1e\x62\xbb\x39\xa6\xe2\xd3\x20\xea\xa8\xb5\x91\x0b\x14\xd8\x82\x6c\x20\x4f\x7a\x4a\xb2\x36\x24\x0b\x48\x60\x66\xb2\x7b\xe7\xf6\x9b\x84\x42\xff\xc8\x03\xc4\xed\x7f\xdd\x23\xef\x2f\xa0\x33\x7d\xb8\x42\x68\x1c\x0f\x8e\xf2\xba\xdc\xc0\x81\x13\xfe\x80\x61\xab\x31\xfa\xf9\x89\xba\x55\x51\x2a\x5f\x0e\x7b\x93\x6d\x63\xc0\xcc\xed\x58\xef\x82\xcf\x0c\x2d\x29\xfb\x23\x18\xe1\x2b\x56\xd4\x91\x2e\x9c\x4f\x96\xdb\x02\xca\x84\x49\x29\x4d\xa3\x3f\x8f\xce\x55\x07\xd3\xeb\x99\x23\x90\x72\xe2\xb2\xe1\x2e\x33\x55\x35\x3b\xf4\x90\x18\x2e\xeb\x7a\xa1\x03\xc9\x77\xc0\x67\x01\xca\xa0\xb7\x44\x55\x11\x66\x89\xb9\xdb\xe9\x0a\xd1\xd1\x85\x39\xd5\xe4\x1a\xda\x0f\x2f\x7f\x1e\x6c\x9a\xa6\x7a\xa2\xaa\x41\x6f\x84\x9f\x18\xc6\xfb\xd2\x2d\xcb\xe0\x3a\xf7\x8b\x15\xce\xdd\xda\x0d\x1b\xbb\xdd\x33\x62\x76\x9f\x50\xe9\x86\x80\xfc\xe5\x4b\x7e\x84\xa9\x4f\x32\x46\x66\xa6\x96\x7f\xc8\x0f\x2e\x5e\x9c\xa9\x4f\x61\x7f\x01\x16\x3a\x16\x01\xc6\x22\x19\xfc\xb5\x67\x82\x66\xe1\xc6\x18\xca\x89\x47\xe7\x4a\x2a\xde\x5e\x40\xda\xeb\x8d\xf5\x62\x0f\x36\x5f\x66\xae\xae\x88\xaf\xb4\x2d\x70\xce\x41\x45\xeb\xaf\xa7\x58\xac\xcc\x19\xe2\x78\xbc\x9f\x45\xda\x63\x85\x9c\x46\xeb\xdf\x7f\x0e\xe2\xe3\xfd\x9d\xd5\x41\x4d\xeb\x86\x07\xd7\xec\x55\x65\x68\x30\x1d\x26\x50\x78\x0b\xe7\xf7\x5f\xcd\xf9\x24\x41\xcb\x98\xf2\x36\x48\xb5\xed\x3f\x3a\x5e\x2c\x96\xda\xaa\xc1\xda\x0c\xe4\x6e\x1d\x85\xb5\xc2\xcf\xf4\xd9\xa9\x16\x7d\x58\x15\xfc\xc6\x6b\xbd\x94\x5f\x0b\x55\x87\x41\x95\xac\xbb\xbf\xec\xf8\x0f\x26\xb7\x0a\x4c\xf6\x62\xf9\x55\xea\x4e\x01\x35\x1f\xaa\x9f\x53\x00\xcf\x35\xc7\x2a\xe6\x09\x15\x06\x2c\xef\xf7\x89\x1e\x76\x77\x51\x91\x96\xbf\x81\x33\x33\x36\x1d\xbb\xee\xcf\xe8\xdc\x12\x7a\x94\xc2\x0b\x9f\xaf\x03\x6d\x71\xa8\x16\xb1\xab\x72\xe8\x20\x19\xd0\x69\x9b\x01\x2a\x12\x60\x22\xcc\x70\x31\x36\x63\x8d\xc8\x67\x49\x05\xb4\x10\x0e\x9b\x8d\x62\xab\xde\xb1\x3c\x84\xbe\x30\x0b\x49\xae\x44\xfc\xea\x4b\x89\x2f\xbf\x65\x64\xcd\xb0\x12\x69\x9e\x9f\xd1\xc9\x64\xf2\xa9\xd7\xf3\x12\x65\x6b\x47\xe6\x91\x66\x82\xb0\x04\x41\x57\xf4\xe2\xdf\xb9\xd5\xf5\x5d\x68\x49\x5d\x76\x3c\x80\x7d\x8e\xc6\x93\x2e\x56\x0c\x91\x3a\xb7\x6f\xc3\xff\x82\x02\x02\xae\x44\xfa\xcb\xda\x1a\xa1\x53\x10\x8f\x16\x8e\x42\x1b\xdb\x1a\x93\xc3\x82\xed\xf0\x8c\xc7\x9c\x5b\x71\x1a\xe1\x3c\x6e\xb8\xe5\x43\x93\xf4\x99\x8e\xc9\x9a\x95\xae\x7f\x85\x99\x9e\x78\x43\x9b\xa6\x03\x44\x55\x45\xf2\x1f\xfc\x85\x62\x07\xee\xa9\x45\x5f\xb1\x4c\x0a\xd9\x67\xf2\x2c\xf0\xf5\x72\xdb\xa5\xca\xc7\x45\x0e\x4e\x52\xce\x71\x3c\xe8\x71\xfc\x76\xd7\xad\xca\x01\x26\x0e\xa7\x08\xda\x43\x40\x01\x80\x5b\xcf\xd1\xf3\xcc\xd1\xc6\x08\x4d\x5e\xc2\xa2\x9f\x00\xe7\x7a\xa4\xf9\x1d\xee\x13\xee\xb5\xfc\xce\x8e\x82\xa1\x03\xb3\x7f\x6c\x4f\x25\x25\x95\x1e\xaa\xd4\x49\xa0\x8a\x75\xd2\xf3\x41\xf1\x7b\x2c\xbd\xf1\x73\x0d\x19\x2e\xf7\x58\xa6\xe8\xf8\x83\xd8\x8c\x07\xf2\xef\x41\xb4\x43\xda\xa7\x95\x00\x02\x44\x26\x3d\x2d\x30\xc7\x62\xf6\xfe\xcf\x3b\xb6\x7f\x8d\xda\x6c\xa7\xd9\xd4\x0a\x18\xe1\x86\x26\x85\x3c\x50\x94\xef\x66\xed\x64\x61\x7e\xe9\x38\x8c\x03\x7a\x74\xa9\x61\x69\x2d\x44\x70\x79\x6a\x68\x3f\x88\x0e\xb9\x04\x10\x60\xac\xee\x4e\x76\x18\xb7\x17\xa0\x57\x95\x1e\x1c\x66\x23\x62\xfd\x26\x70\x9b\xd8\x0a\xf3\x9f\xe5\xc1\x1f\x96\x54\xc2\x65\x5b\x21\xed\xcc\x32\x42\x84\x91\xdc\x5c\x10\x1e\x6a\x22\x2d\x2e\x51\xb9\xf2\x3d\x96\x0f\x12\x74\x8d\x9a\x5f\xc3\xe2\xf6\xc9\x53\x97\x23\x47\x65\x6a\x9f\x78\x7e\xe5\xbd\x19\x64\x45\xaa\x2e\xaf\x8f\x8f\xbd\xaf\xaa\x34\xed\x1b\x05\x5a\x09\xb3\x71\x8d\x8b\x3c\x8f\x1c\xfe\x5a\xc5\x3c\xf3\x7c\x9f\xa7\x6f\xe7\xac\x70\x87\x15\x7b\xdb\xa5\x23\xe2\xa9\xe7\x10\xb3\xf5\xb5\xa7\xff\x9b\x8b\x1f\x61\x2d\x9b\xbb\xb1\x10\x4f\x9d\x6d\xf9\x87\x87\xe9\x25\x23\xfe\x1d\x30\x10\x1e\xdf\x53\xd8\x9d\xf4\xa3\xc4\x2b\xd3\xbd\x27\x37\xf3\xaf\xe0\x15\x4e\xe1\xe8\xd9\x3d\x9a\x27\x75\xd8\x4c\x68\x6d\xac\x89\x84\x51\x2c\xf9\x55\x96\x23\xac\x6f\xe4\xef\x79\xf7\xb3\x4b\x21\x96\x9a\x8a\x8a\x72\x43\xf4\x1e\x11\xa5\x8d\xe3\xe4\xe1\x8f\x33\x85\xee\x70\x03\xc7\x9f\xa5\x27\xb9\x4e\x72\x33\x8f\x2a\x1c\x4c\x45\xff\x04\x5a\x61\x1f\xe1\xdb\x3c\xdd\xa0\xfe\xf1\x21\xf7\x8c\x52\x75\x34\xda\xb2\x66\xdd\x3f\xf6\xf7\x3d\x6b\x6b\xc0\x39\x98\x30\x98\x30\x51\x0a\x57\xeb\x0e\x2d\x74\xde\x38\x11\x27\x75\xb8\x77\x5d\x99\xc1\x5e\x38\xd0\xe7\x09\xf3\x97\x49\x2f\xc6\x46\x2f\x6e\x57\xa7\xff\x65\xd2\x5b\xe9\xeb\x75\x30\xa5\xef\x4f\xc8\x07\xff\x9e\x09\xb7\x01\xb5\x9d\x25\x0b\x54\x1a\x54\x6d\xb7\x5d\x11\x1f\x56\x0a\x47\x21\x7c\x12\x2c\x6b\x29\x28\xd5\xa0\xa0\x47\xa9\x88\xb3\xac\x51\x31\xdf\x00\x96\xc1\x5b\xbc\x39\x8d\x0e\x69\x65\x84\x1b\x17\xf4\x91\x63\x58\x85\xd8\x98\x7a\x04\xbb\xe2\x48\x21\x57\xb5\xca\x88\x3c\x76\x7e\xa1\x56\xb4\xe1\x78\x4b\xa1\xb7\xcf\xeb\x34\x3a\x71\xeb\x03\xeb\xce\x88\x79\x2a\xed\x8b\x18\xe7\xfd\x88\x0c\xd5\x93\x4c\xbe\x55\x52\x3c\x1b\x7c\x82\xb3\xed\x99\xb3\xde\x90\xa4\x79\xf2\x51\xe1\x90\x4a\xc8\x6f\x28\x02\x19\x57\xef\x35\x42\x1d\x3c\x8a\x2d\x39\xee\xe7\x31\x4e\x3f\x3f\x94\x5e\xa2\xfb\x5f\xf7\xf6\xc0\x9b\xa4\x72\xff\x3e\x56\x2c\x61\x68\xb0\xc1\xf8\x43\x65\x8b\xb1\x80\xeb\xfc\xf9\x54\xe5\x8e\x63\x3f\xb1\x61\x27\x51\xbf\x36\x0b\x15\xfe\x67\xca\x59\x4f\x5a\xae\x34\x23\x3a\x3b\x58\xee\xba\x56\x2f\xad\x63", 4096); syscall(SYS_serialize2, /*a=*/0x20001380ul); syscall(SYS_test, /*a0=*/0x20fff000ul, /*a1=*/0, /*a2=*/0x1000, /*a3=*/0x800, /*a4=*/0x400ul, 0); memcpy((void*)0x20000000, "\'/+,\000", 5); *(uint8_t*)0x20000040 = 0x1c; *(uint8_t*)0x20000044 = 1; STORE_BY_BITMASK(uint32_t, , 0x20000044, 3, 8, 4); syz_compare(/*want=*/0x20000000, /*want_len=*/5, /*got=*/0x20000040, /*got_len=*/8); syz_compare_int(/*n=*/2, /*v0=*/0xffff, /*v1=*/0x100, 0, 0); syz_errno(/*v=*/0xfffffff9); memcpy((void*)0x20000080, "\xfe\xaa\x0e\x27\x8d\x40\x3f\x03\xc2\xbf\x80\x48\x86\x76\x75\x4e\x43\x50\x32\xf8\x1e\xee\x19\xff\xa3\xf4\x8c\xa7\x58\xe8\x2b\x07\x72\x89\x83\x4e\xb7\x9b\xe6\x7b\x6c\xf4\x37\xe2\xd9\xb1\x01\xf3\x97\xd7", 50); syz_execute_func(/*text=*/0x20000080); syz_exit(/*status=*/0xffffffc0); syz_mmap(/*addr=*/0x20ffc000, /*len=*/0x1000); syz_sleep_ms(/*ms=*/1); syz_test_fuzzer1(/*a=*/0xd, /*b=*/0xc, /*c=*/0xb); } int main(void) { syz_mmap(/*addr=*/0x20000000, /*len=*/0x1000000); setup_fault(); use_temporary_dir(); do_sandbox_none(); return 0; } :158:2: error: call to undeclared function 'syscall'; ISO C99 and later do not support implicit function declarations [-Werror,-Wimplicit-function-declaration] syscall(SYS_breaks_returns); ^ 1 error generated. compiler invocation: c++ [-o /tmp/syz-executor3448558549 -DGOOS_test=1 -DGOARCH_64=1 -DHOSTGOOS_openbsd=1 -x c - -m64 -lutil -O2 -pthread -Wall -Werror -Wparentheses -Wunused-const-variable -Wframe-larger-than=16384 -Wno-array-bounds -Wno-unused-but-set-variable -Wno-unused-command-line-argument -no-pie -fno-exceptions] --- FAIL: TestGenerate/test/64/9 (2.14s) 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: breaks_returns() (fail_nth: 1) breaks_returns() (async) test$end0(&(0x7f0000000000)={0x20, 0x8, 0x7, 0x7fffffff}) (rerun: 4) test$length9(&(0x7f0000000040)={&(0x7f0000ffe000/0x2000)=nil, 0x2000}) test$recur1(&(0x7f0000001280)={&(0x7f0000001240)={&(0x7f0000000600)={0x0, &(0x7f00000005c0)={&(0x7f0000000080), 0x0, &(0x7f0000000180)={&(0x7f00000000c0), &(0x7f0000000100), &(0x7f0000000140)}, &(0x7f00000002c0)={&(0x7f00000001c0), &(0x7f0000000200), &(0x7f0000000240), &(0x7f0000000280)}, 0x0, &(0x7f0000000580)={&(0x7f0000000300), 0x0, &(0x7f0000000400)={&(0x7f0000000340), &(0x7f0000000380), 0x0, &(0x7f00000003c0)}, &(0x7f0000000540)={&(0x7f0000000440), &(0x7f0000000480), &(0x7f00000004c0), &(0x7f0000000500)}}}}, &(0x7f0000001200)={&(0x7f0000000680)={&(0x7f0000000640)}, &(0x7f00000009c0)={0x0, &(0x7f0000000980)={&(0x7f0000000700)={&(0x7f00000006c0)}, 0x0, &(0x7f0000000840)={&(0x7f0000000740), &(0x7f0000000780), &(0x7f00000007c0), &(0x7f0000000800)}, &(0x7f0000000940)={&(0x7f0000000880), &(0x7f00000008c0), &(0x7f0000000900)}}}, &(0x7f0000000ac0)={&(0x7f0000000a00), 0x0, &(0x7f0000000a40), &(0x7f0000000a80)}, &(0x7f0000000bc0)={&(0x7f0000000b00), 0x0, &(0x7f0000000b40), &(0x7f0000000b80)}, &(0x7f0000000e80)={0x0, &(0x7f0000000c00), &(0x7f0000000d40)={&(0x7f0000000c40), &(0x7f0000000c80), &(0x7f0000000cc0), &(0x7f0000000d00)}, &(0x7f0000000e40)={&(0x7f0000000d80), &(0x7f0000000dc0), &(0x7f0000000e00)}}, &(0x7f00000011c0)={&(0x7f0000000f00)={&(0x7f0000000ec0)}, &(0x7f0000000f40), &(0x7f0000001040)={&(0x7f0000000f80), &(0x7f0000000fc0), 0x0, &(0x7f0000001000)}, &(0x7f0000001180)={&(0x7f0000001080), &(0x7f00000010c0), &(0x7f0000001100), &(0x7f0000001140)}}}}}) foo$anyres(&(0x7f00000012c0), &(0x7f0000001300), &(0x7f0000001340)) breaks_returns() test$length10(&(0x7f0000ffe000/0x1000)=nil, 0x1000, 0x1000, 0x800, 0x400) serialize2(&(0x7f0000001380)="b3eb980b12af03684832ff0d1367b05ded250f350bffb9c67243a4a26cac6a5664ba93ce0c5ffca81d81c8a8a18416566c33d00a999baf45ad351740795a1a3a7f59abe59ac218f6e204dc1329f158d36e4d0c86200e4d8b5dbda275d20e5315c52e12895663d7e5f4ad1f0d1a8ac3014eb4603f30445a975d0a77feec81e4e99bd71acad646cb04b60819e8ec24a8a2db3909688bb284162872bc715c3ef9863a13d60f4e3acd6954f1ff268eee5cbe35465b4e65c60dbf3da35689af39d3dc0d9d2226406147feccad22fd6d9255a8b92178c6afa7aa2decd0ae46ec45c9bbf6e53fead2d682d715175ba608f84ba14d9a28c5e47ebd829a76bca0c2821b0e29915a2889e001a201524fcf6245adcf4d326d69176d7fa27ed8d593e25eef7afaa1479e506348f0a6753697034b9c609f465146f9569ddd56aff7fc2fadefb89fa2d2d4b838e7d63200097b77ed52d9c31c98fd76f9467ff5116ca00f85846a91bef69419aac6ebc7ddfba2b268bfe262f6f55d52a647af8a0b45391ba9df09e25664019b4107a231ee761a81960c1198f5209e3c3707d768b8d099eee563055a88c3049f5addf8747a2dfd6f3b43c5c25df50c8a4b77872a8d8905dfa0885adddb8fd49e29735262b1c94ea59ce0cea5a061fbb042c7e301e29212f2f1476e7c25317cb5fa81774d78b20efea377d4fbfdb190cc1fd58f568e6ac19be05d99c8362428f59f47311abf178f6b083645ccf013624a418b8d9fecfa26f7dcba32b4395449c0d1ef6fa37f33fa5ea60192bb5ce92e458d90cedf0e85787811c64bd0436f4c5ca01facae7b793d696442982841f6e83f603d5806742a4ec7acb406c55b27aaad7a628eb2f41f8007c0e3728fa1f40194d271392f6c7f684e1dbe239cf6c501bd4f4f643153b4e7bd32ff4b3db361fe9c4a87b4d7492eef749bd18c6a44daba60542deadc45cbfa8a46b8d252670ee312ede53bb516f0000cc25009f4d4e74c6f61306c344a9ba48fa2a2d70f3e1ac018f9c0d15ddaafb5cf89867ca6bf6b37427c477eec1acb7f369b9422a8858ebc2f3a10a9e90aea0f4df82ab2e8d10dffcb99892a8155b4f8aff79e93df24848aef035e85d57048c7c93fe544e3ef1754c49240573ac1ea67b94d8574542dff03f06bfedc3f51c620402861f777fa47bc05c865a6e63ab48e70c4b314e6f80953cb1a22b9226a1b3cc084736b2a826a7fc841023eaa56448d94757b013833c53e182c1de066878701def73bdd13d7404565dcc317ae650383b3ea7d5e6aed3dbf575a2ca5132850e394adeb9fee108719378320b9b4e0c5a6ddc77594a8024151b3a6d322fb48e5db7f0fb04a9149fb278ed9d8ad19b1b8a268cba4b300e93139f2b611bb777983b74d6fac852d743fb5011f9bf2bfd3f4314cdc9b1e71c65ea76e4953af36bcb4b9649aa0eeaa6c892e170d3285241708594a91bdec0fdedd974b4220b4b70a5a939938527c6e6ef823b36256c1369fbeed64a90e8be545eac8968c764139ccd4dc5901bc019985aab5fe71e24c55f260c4c4b7fd5cf5288b13dcda57bb3450fb4f6ece5e7c4a0a21fff3124c3c783afa8744f6ca3f5c3de5b4c154cea12ba47c3c694ea8303a8d7c8510089cc1609a82e6a7e089f63afd0585d3f5aba22634dd7c9579364da1d93a995f7706da208d65b948d74613e0e4f8c77974db272edf2f8d5291cd3af0d0adeecc163585161bc8ec9b62823feb864a8ffa00120719981907c027ef41a9c5ebef88411b420e2c6041e94dbae9388f72db0089d4733cedc368cd1d6805634c80bffb9c3430f402b73fff1d6cf355b9509c1bfd48e79b1417141c9b9ab1c0f62a4cf97bae55fe53afea353c1061bb882e101d7434b39be6558e77ea26b44b507c2c44dd0a625c044b0a78ee2364862842d9ef0f1bcb563f01adbdee69e52d022856ad6504d811e849ab470d613da0ce951003529822adc102c4c62a3aad2f7392aa4601ab0863150c358aeec2fc5e3a906df00fe5db1226bac20f08d701f181b90a4d389b91dddbc24e40488e1c46ab2d05b4823029453cc9253ebc4370964a64c1087cb3857d736dc303ce93066db60fc61be9f79c0c9e1ca7e4d73f95172bcbaf6cbd18c06d1c1cccf23d85592ee6844349b5e72e6a5e10f5eed5eca8f9c0a8a95e214389530194a03043b21108a49e3466cebe3078dadd364faf67fe3c51e1df75f4aa619854b780e0c04e9a9bf2301c030a3626ce820afc59e1c13ed6fa3e3030b966f3878f17a16a1209987aa9f7eb76988d401f10bdb0a419ddced1105659e6219440e35e984c3e7ada78c30a9a7399ce1abce36c7ce3e39a89cfac98f249735914cfc16baf666ed4b51ff2193c2836bd43e5d537f2653646f05c8109ef8edfd35b3acd73eb7e790c64cc2a7c9596e4a5f3d0e2d92b301c9ec5d82768ab211801bea96340c30e1b09fc9fae7cff2615d61ede29f9b0d712abffcd93ea3b20ceb7aa57368e84c3876ecd7a931cb19ea517603ef44a98b246288b27336980e4bb509007bcd01858cd35e9cd8df288221d3a487268828fe732fd7da2e2b6926b4a9b54d54b41c77998d1ef538487e1dcdf87fcc3fab25c77a7cf01f86087e2b95e1e4d45522fc3f44a14cbfacd48d63eba042ca3e14af8e5bed3186de4fb69f387aac88242d64fbdcd110c338821ad72562f092f55fa73b5e7d92c9b6fee5794ef4823190f9257b11ff4fc4457dba90fbda80dafb517fa27519489016f6f458006401f9fea20426a545aab7784c4e3df9dfa9fb279cf21a86ce3f292cf52d343fce97e05b92c84723d7ddc65a7bc79ae73b1246b6b65048a3855b62b1340264627c1df82f3352f3ac6d5a75e0823572c2fb392bd7ef15193cc5f6fbefc4d27ffd741a93d1ab799d9fbd545d2d2606e3566eb79d54485f5561510a57f17f2b3909ed1bfc5e5d64692b6c503eb58f17cae554137607467e8ab51d867067f50374e99f74869e0177f4eb52c2930dfe5ca2b6e454db8a36225b2c936bdc5bb75f1355ffd8d7fa476eb282871e52111832fcfc246da415c200d9e6c350f49846a0022660191a2840d7a53753674c78ea00a5b9e266ff29b1a8fb193e132d23f960cd9c8249b943fcdb865395b2c03ab675bbb1993813fb0a8d1e68331297c88db1dca00313b8211121b6023475cb69d6ac66c1116a56171350f680cc74c88fe9905ed078780e6d71bcc735fee75a9444f695d036aa6b4b9e59b6680b6312967f8b236ff8bee60316a70cba0312c993b92e30ca4cb118c1745e7b578c0ad6c3a7d8187372595dd160893115f11b054fc1718c967bdafe9bf95ad583db59396d594114b6500996eeff82b70191e52fa2330efdc66fa363cb379c9c67740535c9960ca857cfe4d0a88bbbbf2e7b2034bb843980f6fa86ff602335d1e25a613c7d7a4ef7a6b161c2582239aa56f5c8994d06646e0aa62c48b54e0852223772ed44e7059697aec6bc2225e0edac55fdbff1a16d4c6def4c77ddf38b2773952c811ff145ae366e216c41600659ff78f64b19e354d74f90a61907c85c702394fe2cca4f5feb5b53530b5f4c9e72f5c090ca464a7a9c395143735fdd2421d07e8efe4198ad06f9d230a91d5fb50efc02c2db6ed4ad750319e3e672f5213ddae92c3fcec0ed5dff522d0cab89bb8253254255529b32cf5385c9001421b92cc67163cc395235e408a463fa31eefd0742de5139bba2dc141fff7be175f418cf7cf89dd4f474a2fc61d0f3851f34d52c49bbd1226bd08963071f5d4918f7e12d0028d321b3d6bd436e02f6e55cc48c613e329916cb8545244bba377908d6bcfeb7ed66208e507b4dfd8f2cba5a3d42f3a4e4da80eba199cc8aec8a40f254710d811832496750c4b34c36b746bf3cb60dae81e73da952ee41c2a402372e5239fd2d407d8e91b9e57b4758aace59df7d83d38ad17716cae509ddb2427cbcf847a7b108edb4b3a708171e731a97702b6377c7934ec9b4c7446ea031e62bb39a6e2d320eaa8b5910b14d8826c204f7a4ab236240b486066b27be7f69b8442ffc803c4ed7fdd23ef2fa0337db842681c0f8ef2badcc08113fe8061ab31faf989ba55512a5f0e7b936d63c0cced58ef82cf0c2d29fb2318e12b56d4912e9c4f96db02ca8449294da33f8fce5507d3eb99239072e2b2e12e3355353bf490182eeb7aa103c977c06701caa0b74455116689b9dbe90ad1d18539d5e41ada0f2f7f1e6c9aa67aa2aa416f849f18c6fbd22dcbe03af78b15ceddda0d1bbbdd3362769f50e98680fce54b7e84a94f324666a6967fc80f2e5e9ca94f617f01163a1601c62219fcb5678266e1c618ca8947e74a2ade5e40daeb8df5620f365f66aeae88afb42d70ce4145ebafa758accc19e278bc9f45da63859c46ebdf7f0ee2e3fd9dd5414deb8607d7ec556568301d2650780be7f75fcdf92441cb98f23648b5ed3f3a5e2c96daaac1da0ce46e1d85b5c2cff4d9a9167d5815fcc66bbd945f0b55874195acbbbfecf80f26b70a4cf662f955ea4e01351faa9f5300cf35c72ae60915062ceff7891e7677519196bf813333361dbbeecfe8dc127a94c20b9faf036d71a816b1ab72e82019d0699b012a126022cc703136638dc8674905b4100e9b8d62abdeb13c84be300b49ae44fcea4b892fbf6564cdb012699e9fd1c964f2a9d7f312656b47e6916682b0044157f4e2dfb9d5f55d68495d763c807d8ec6932e560c913ab76fc3ff820202ae44facbda1aa153108f168e421bdb1a93c382edf08cc79c5b711ae13c6eb8e54393f4998ec99a95ae7f85999e78439ba603445545f21ffc856207eea9455fb14c0ad967f22cf0f572dba5cac7450e4e52ce713ce871fc76d7adca01260ea708da434001805bcfd1f3ccd1c6084d5ec2a29f00e77aa4f91dee13eeb5fcce8e82a103b37f6c4f2525951eaad449a08a75d2f341f17b2cbdf1730d192ef758a6e8f883d88c07f2ef41b443daa795000244263d2d30c762f6fecf3bb67f8dda6ca7d9d40a18e18626853c5094ef66ed64617ee9388c037a74a961692d4470796a683f880eb9041060acee4e7618b717a057951e1c662362fd26709bd80af39fe5c11f9654c2655b21edcc32428491dc5c101e6a222d2e51b9f23d960f12748d9a5fc3e2f6c953972347656a9f787ee5bd196445aa2eaf8f8fbdafaa34ed1b055a09b3718d8b3c8f1cfe5ac53cf37c9fa76fe7ac7087157bdba523e2a9e710b3f5b5a7ff9b8b1f612d9bbbb1104f9d6df98787e92523fe1d30101edf53d89df4a3c42bd3bd2737f3afe0154ee1e8d93d9a2775d84c686dac8984512cf9559623ac6fe4ef79f7b34b21969a8a8a7243f41e11a58de3e4e18f3385ee7003c79fa527b94e72338f2a1c4c45ff045a611fe1db3cdda0fef121f78c527534dab266dd3ff6f73d6b6bc03998309830510a57eb0e2d74de38112775b8775d99c15e38d0e709f397492fc6462f6e57a7ff65d25be9eb7530a5ef4fc807ff9e09b701b59d250b541a546db75d111f560a47217c122c6b2928d5a0a047a988b3ac5131df0096c15bbc398d0e6965841b17f491635885d8987a04bbe2482157b5ca883c767ea156b4e1784ba1b7cfeb343a71eb03ebce88792aed8b18e7fd880cd5934cbe55523c1b7c82b3ed99b3de90a479f251e1904ac86f28021957ef35421d3c8a2d39eee7314e3f3f945ea2fb5ff7f6c09ba472ff3e562c6168b0c1f843658bb180ebfcf954e58e633fb1612751bf360b15fe67ca594f5aae34233a3b58eeba562fad63") test$length10(&(0x7f0000fff000/0x1000)=nil, 0x1000, 0x1000, 0x800, 0x400) syz_compare(&(0x7f0000000000)='\'/+,\x00', 0x5, &(0x7f0000000040)=@bf5={0x1c, {0x1, 0x3}}, 0x8) syz_compare_int$2(0x2, 0xffff, 0x100) syz_errno(0xfffffff9) syz_execute_func(&(0x7f0000000080)="feaa0e278d403f03c2bf80488676754e435032f81eee19ffa3f48ca758e82b077289834eb79be67b6cf437e2d9b101f397d7") syz_exit(0xffffffc0) syz_mmap(&(0x7f0000ffc000/0x1000)=nil, 0x1000) syz_sleep_ms(0x1) syz_test_fuzzer1(0xd, 0xc, 0xb) 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 #ifndef SYS_breaks_returns #define SYS_breaks_returns 0 #endif #ifndef SYS_foo #define SYS_foo 0 #endif #ifndef SYS_serialize2 #define SYS_serialize2 0 #endif #ifndef SYS_test #define SYS_test 0 #endif 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[] = "./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 { pthread_mutex_t mu; pthread_cond_t cv; int state; } event_t; static void event_init(event_t* ev) { if (pthread_mutex_init(&ev->mu, 0)) exit(1); if (pthread_cond_init(&ev->cv, 0)) exit(1); ev->state = 0; } static void event_reset(event_t* ev) { ev->state = 0; } static void event_set(event_t* ev) { pthread_mutex_lock(&ev->mu); if (ev->state) exit(1); ev->state = 1; pthread_mutex_unlock(&ev->mu); pthread_cond_broadcast(&ev->cv); } static void event_wait(event_t* ev) { pthread_mutex_lock(&ev->mu); while (!ev->state) pthread_cond_wait(&ev->cv, &ev->mu); pthread_mutex_unlock(&ev->mu); } static int event_isset(event_t* ev) { pthread_mutex_lock(&ev->mu); int res = ev->state; pthread_mutex_unlock(&ev->mu); return res; } static int event_timedwait(event_t* ev, uint64_t timeout) { uint64_t start = current_time_ms(); uint64_t now = start; pthread_mutex_lock(&ev->mu); for (;;) { if (ev->state) break; uint64_t remain = timeout - (now - start); struct timespec ts; ts.tv_sec = remain / 1000; ts.tv_nsec = (remain % 1000) * 1000 * 1000; pthread_cond_timedwait(&ev->cv, &ev->mu, &ts); now = current_time_ms(); if (now - start > timeout) break; } int res = ev->state; pthread_mutex_unlock(&ev->mu); return res; } #define BITMASK(bf_off,bf_len) (((1ull << (bf_len)) - 1) << (bf_off)) #define STORE_BY_BITMASK(type,htobe,addr,val,bf_off,bf_len) *(type*)(addr) = htobe((htobe(*(type*)(addr)) & ~BITMASK((bf_off), (bf_len))) | (((type)(val) << (bf_off)) & BITMASK((bf_off), (bf_len)))) static long syz_mmap(volatile long a0, volatile long a1) { return (long)mmap((void*)a0, a1, PROT_READ | PROT_WRITE, MAP_ANON | MAP_PRIVATE | MAP_FIXED, -1, 0); } static long syz_errno(volatile long v) { errno = v; return v == 0 ? 0 : -1; } static long syz_exit(volatile long status) { _exit(status); return 0; } static long syz_sleep_ms(volatile long ms) { sleep_ms(ms); return 0; } static long syz_compare(volatile long want, volatile long want_len, volatile long got, volatile long got_len) { if (want_len != got_len) { errno = EBADF; goto error; } if (memcmp((void*)want, (void*)got, want_len)) { errno = EINVAL; goto error; } return 0; error: return -1; } static long syz_compare_int(volatile long n, ...) { va_list args; va_start(args, n); long v0 = va_arg(args, long); long v1 = va_arg(args, long); long v2 = va_arg(args, long); long v3 = va_arg(args, long); va_end(args); if (n < 2 || n > 4) return errno = E2BIG, -1; if (n <= 2 && v2 != 0) return errno = EFAULT, -1; if (n <= 3 && v3 != 0) return errno = EFAULT, -1; if (v0 != v1) return errno = EINVAL, -1; if (n > 2 && v0 != v2) return errno = EINVAL, -1; if (n > 3 && v0 != v3) return errno = EINVAL, -1; return 0; } static void loop(); static int do_sandbox_none(void) { loop(); return 0; } static void fake_crash(const char* name) { exit(1); exit(1); } static long syz_test_fuzzer1(volatile long a, volatile long b, volatile long c) { if (a == 1 && b == 1 && c == 1) fake_crash("first bug"); if (a == 1 && b == 2 && c == 3) fake_crash("second bug"); return 0; } 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 < 18; 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(); } void execute_call(int call) { switch (call) { case 0: inject_fault(1); syscall(SYS_breaks_returns); break; case 1: syscall(SYS_breaks_returns); break; case 2: *(uint8_t*)0x20000000 = 0x20; *(uint16_t*)0x20000001 = htobe16(8); *(uint32_t*)0x20000003 = htobe32(7); *(uint64_t*)0x20000007 = htobe64(0x7fffffff); syscall(SYS_test, /*a0=*/0x20000000ul, 0, 0, 0, 0, 0); { int i; for(i = 0; i < 4; i++) { syscall(SYS_test, /*a0=*/0x20000000ul, 0, 0, 0, 0, 0); } } break; case 3: *(uint64_t*)0x20000040 = 0x20ffe000; *(uint64_t*)0x20000048 = 0x2000; syscall(SYS_test, /*a0=*/0x20000040ul, 0, 0, 0, 0, 0); break; case 4: *(uint64_t*)0x20001280 = 0x20001240; *(uint64_t*)0x20001240 = 0x20000600; *(uint64_t*)0x20000600 = 0; *(uint64_t*)0x20000608 = 0x200005c0; *(uint64_t*)0x200005c0 = 0x20000080; *(uint64_t*)0x20000080 = 0; *(uint64_t*)0x200005c8 = 0; *(uint64_t*)0x200005d0 = 0x20000180; *(uint64_t*)0x20000180 = 0x200000c0; *(uint64_t*)0x200000c0 = 0; *(uint64_t*)0x200000c8 = 0; *(uint64_t*)0x200000d0 = 0; *(uint64_t*)0x200000d8 = 0; *(uint64_t*)0x20000188 = 0x20000100; *(uint64_t*)0x20000100 = 0; *(uint64_t*)0x20000108 = 0; *(uint64_t*)0x20000110 = 0; *(uint64_t*)0x20000118 = 0; *(uint64_t*)0x20000190 = 0x20000140; *(uint64_t*)0x20000140 = 0; *(uint64_t*)0x20000148 = 0; *(uint64_t*)0x20000150 = 0; *(uint64_t*)0x20000158 = 0; *(uint64_t*)0x20000198 = 0; *(uint64_t*)0x200005d8 = 0x200002c0; *(uint64_t*)0x200002c0 = 0x200001c0; *(uint64_t*)0x200001c0 = 0; *(uint64_t*)0x200001c8 = 0; *(uint64_t*)0x200001d0 = 0; *(uint64_t*)0x200001d8 = 0; *(uint64_t*)0x200002c8 = 0x20000200; *(uint64_t*)0x20000200 = 0; *(uint64_t*)0x20000208 = 0; *(uint64_t*)0x20000210 = 0; *(uint64_t*)0x20000218 = 0; *(uint64_t*)0x200002d0 = 0x20000240; *(uint64_t*)0x20000240 = 0; *(uint64_t*)0x20000248 = 0; *(uint64_t*)0x20000250 = 0; *(uint64_t*)0x20000258 = 0; *(uint64_t*)0x200002d8 = 0x20000280; *(uint64_t*)0x20000280 = 0; *(uint64_t*)0x20000288 = 0; *(uint64_t*)0x20000290 = 0; *(uint64_t*)0x20000298 = 0; *(uint64_t*)0x200005e0 = 0; *(uint64_t*)0x200005e8 = 0x20000580; *(uint64_t*)0x20000580 = 0x20000300; *(uint64_t*)0x20000300 = 0; *(uint64_t*)0x20000588 = 0; *(uint64_t*)0x20000590 = 0x20000400; *(uint64_t*)0x20000400 = 0x20000340; *(uint64_t*)0x20000340 = 0; *(uint64_t*)0x20000348 = 0; *(uint64_t*)0x20000350 = 0; *(uint64_t*)0x20000358 = 0; *(uint64_t*)0x20000408 = 0x20000380; *(uint64_t*)0x20000380 = 0; *(uint64_t*)0x20000388 = 0; *(uint64_t*)0x20000390 = 0; *(uint64_t*)0x20000398 = 0; *(uint64_t*)0x20000410 = 0; *(uint64_t*)0x20000418 = 0x200003c0; *(uint64_t*)0x200003c0 = 0; *(uint64_t*)0x200003c8 = 0; *(uint64_t*)0x200003d0 = 0; *(uint64_t*)0x200003d8 = 0; *(uint64_t*)0x20000598 = 0x20000540; *(uint64_t*)0x20000540 = 0x20000440; *(uint64_t*)0x20000440 = 0; *(uint64_t*)0x20000448 = 0; *(uint64_t*)0x20000450 = 0; *(uint64_t*)0x20000458 = 0; *(uint64_t*)0x20000548 = 0x20000480; *(uint64_t*)0x20000480 = 0; *(uint64_t*)0x20000488 = 0; *(uint64_t*)0x20000490 = 0; *(uint64_t*)0x20000498 = 0; *(uint64_t*)0x20000550 = 0x200004c0; *(uint64_t*)0x200004c0 = 0; *(uint64_t*)0x200004c8 = 0; *(uint64_t*)0x200004d0 = 0; *(uint64_t*)0x200004d8 = 0; *(uint64_t*)0x20000558 = 0x20000500; *(uint64_t*)0x20000500 = 0; *(uint64_t*)0x20000508 = 0; *(uint64_t*)0x20000510 = 0; *(uint64_t*)0x20000518 = 0; *(uint64_t*)0x200005a0 = 0; *(uint64_t*)0x200005a8 = 0; *(uint64_t*)0x20001248 = 0x20001200; *(uint64_t*)0x20001200 = 0x20000680; *(uint64_t*)0x20000680 = 0x20000640; *(uint64_t*)0x20000640 = 0; *(uint64_t*)0x20001208 = 0x200009c0; *(uint64_t*)0x200009c0 = 0; *(uint64_t*)0x200009c8 = 0x20000980; *(uint64_t*)0x20000980 = 0x20000700; *(uint64_t*)0x20000700 = 0x200006c0; *(uint64_t*)0x200006c0 = 0; *(uint64_t*)0x20000988 = 0; *(uint64_t*)0x20000990 = 0x20000840; *(uint64_t*)0x20000840 = 0x20000740; *(uint64_t*)0x20000740 = 0; *(uint64_t*)0x20000748 = 0; *(uint64_t*)0x20000750 = 0; *(uint64_t*)0x20000758 = 0; *(uint64_t*)0x20000848 = 0x20000780; *(uint64_t*)0x20000780 = 0; *(uint64_t*)0x20000788 = 0; *(uint64_t*)0x20000790 = 0; *(uint64_t*)0x20000798 = 0; *(uint64_t*)0x20000850 = 0x200007c0; *(uint64_t*)0x200007c0 = 0; *(uint64_t*)0x200007c8 = 0; *(uint64_t*)0x200007d0 = 0; *(uint64_t*)0x200007d8 = 0; *(uint64_t*)0x20000858 = 0x20000800; *(uint64_t*)0x20000800 = 0; *(uint64_t*)0x20000808 = 0; *(uint64_t*)0x20000810 = 0; *(uint64_t*)0x20000818 = 0; *(uint64_t*)0x20000998 = 0x20000940; *(uint64_t*)0x20000940 = 0x20000880; *(uint64_t*)0x20000880 = 0; *(uint64_t*)0x20000888 = 0; *(uint64_t*)0x20000890 = 0; *(uint64_t*)0x20000898 = 0; *(uint64_t*)0x20000948 = 0x200008c0; *(uint64_t*)0x200008c0 = 0; *(uint64_t*)0x200008c8 = 0; *(uint64_t*)0x200008d0 = 0; *(uint64_t*)0x200008d8 = 0; *(uint64_t*)0x20000950 = 0x20000900; *(uint64_t*)0x20000900 = 0; *(uint64_t*)0x20000908 = 0; *(uint64_t*)0x20000910 = 0; *(uint64_t*)0x20000918 = 0; *(uint64_t*)0x20000958 = 0; *(uint64_t*)0x200009a0 = 0; *(uint64_t*)0x200009a8 = 0; *(uint64_t*)0x20001210 = 0x20000ac0; *(uint64_t*)0x20000ac0 = 0x20000a00; *(uint64_t*)0x20000a00 = 0; *(uint64_t*)0x20000a08 = 0; *(uint64_t*)0x20000a10 = 0; *(uint64_t*)0x20000a18 = 0; *(uint64_t*)0x20000ac8 = 0; *(uint64_t*)0x20000ad0 = 0x20000a40; *(uint64_t*)0x20000a40 = 0; *(uint64_t*)0x20000a48 = 0; *(uint64_t*)0x20000a50 = 0; *(uint64_t*)0x20000a58 = 0; *(uint64_t*)0x20000ad8 = 0x20000a80; *(uint64_t*)0x20000a80 = 0; *(uint64_t*)0x20000a88 = 0; *(uint64_t*)0x20000a90 = 0; *(uint64_t*)0x20000a98 = 0; *(uint64_t*)0x20001218 = 0x20000bc0; *(uint64_t*)0x20000bc0 = 0x20000b00; *(uint64_t*)0x20000b00 = 0; *(uint64_t*)0x20000b08 = 0; *(uint64_t*)0x20000b10 = 0; *(uint64_t*)0x20000b18 = 0; *(uint64_t*)0x20000bc8 = 0; *(uint64_t*)0x20000bd0 = 0x20000b40; *(uint64_t*)0x20000b40 = 0; *(uint64_t*)0x20000b48 = 0; *(uint64_t*)0x20000b50 = 0; *(uint64_t*)0x20000b58 = 0; *(uint64_t*)0x20000bd8 = 0x20000b80; *(uint64_t*)0x20000b80 = 0; *(uint64_t*)0x20000b88 = 0; *(uint64_t*)0x20000b90 = 0; *(uint64_t*)0x20000b98 = 0; *(uint64_t*)0x20001220 = 0x20000e80; *(uint64_t*)0x20000e80 = 0; *(uint64_t*)0x20000e88 = 0x20000c00; *(uint64_t*)0x20000c00 = 0; *(uint64_t*)0x20000c08 = 0; *(uint64_t*)0x20000e90 = 0x20000d40; *(uint64_t*)0x20000d40 = 0x20000c40; *(uint64_t*)0x20000c40 = 0; *(uint64_t*)0x20000c48 = 0; *(uint64_t*)0x20000c50 = 0; *(uint64_t*)0x20000c58 = 0; *(uint64_t*)0x20000d48 = 0x20000c80; *(uint64_t*)0x20000c80 = 0; *(uint64_t*)0x20000c88 = 0; *(uint64_t*)0x20000c90 = 0; *(uint64_t*)0x20000c98 = 0; *(uint64_t*)0x20000d50 = 0x20000cc0; *(uint64_t*)0x20000cc0 = 0; *(uint64_t*)0x20000cc8 = 0; *(uint64_t*)0x20000cd0 = 0; *(uint64_t*)0x20000cd8 = 0; *(uint64_t*)0x20000d58 = 0x20000d00; *(uint64_t*)0x20000d00 = 0; *(uint64_t*)0x20000d08 = 0; *(uint64_t*)0x20000d10 = 0; *(uint64_t*)0x20000d18 = 0; *(uint64_t*)0x20000e98 = 0x20000e40; *(uint64_t*)0x20000e40 = 0x20000d80; *(uint64_t*)0x20000d80 = 0; *(uint64_t*)0x20000d88 = 0; *(uint64_t*)0x20000d90 = 0; *(uint64_t*)0x20000d98 = 0; *(uint64_t*)0x20000e48 = 0x20000dc0; *(uint64_t*)0x20000dc0 = 0; *(uint64_t*)0x20000dc8 = 0; *(uint64_t*)0x20000dd0 = 0; *(uint64_t*)0x20000dd8 = 0; *(uint64_t*)0x20000e50 = 0x20000e00; *(uint64_t*)0x20000e00 = 0; *(uint64_t*)0x20000e08 = 0; *(uint64_t*)0x20000e10 = 0; *(uint64_t*)0x20000e18 = 0; *(uint64_t*)0x20000e58 = 0; *(uint64_t*)0x20000ea0 = 0; *(uint64_t*)0x20000ea8 = 0; *(uint64_t*)0x20001228 = 0x200011c0; *(uint64_t*)0x200011c0 = 0x20000f00; *(uint64_t*)0x20000f00 = 0x20000ec0; *(uint64_t*)0x20000ec0 = 0; *(uint64_t*)0x200011c8 = 0x20000f40; *(uint64_t*)0x20000f40 = 0; *(uint64_t*)0x20000f48 = 0; *(uint64_t*)0x200011d0 = 0x20001040; *(uint64_t*)0x20001040 = 0x20000f80; *(uint64_t*)0x20000f80 = 0; *(uint64_t*)0x20000f88 = 0; *(uint64_t*)0x20000f90 = 0; *(uint64_t*)0x20000f98 = 0; *(uint64_t*)0x20001048 = 0x20000fc0; *(uint64_t*)0x20000fc0 = 0; *(uint64_t*)0x20000fc8 = 0; *(uint64_t*)0x20000fd0 = 0; *(uint64_t*)0x20000fd8 = 0; *(uint64_t*)0x20001050 = 0; *(uint64_t*)0x20001058 = 0x20001000; *(uint64_t*)0x20001000 = 0; *(uint64_t*)0x20001008 = 0; *(uint64_t*)0x20001010 = 0; *(uint64_t*)0x20001018 = 0; *(uint64_t*)0x200011d8 = 0x20001180; *(uint64_t*)0x20001180 = 0x20001080; *(uint64_t*)0x20001080 = 0; *(uint64_t*)0x20001088 = 0; *(uint64_t*)0x20001090 = 0; *(uint64_t*)0x20001098 = 0; *(uint64_t*)0x20001188 = 0x200010c0; *(uint64_t*)0x200010c0 = 0; *(uint64_t*)0x200010c8 = 0; *(uint64_t*)0x200010d0 = 0; *(uint64_t*)0x200010d8 = 0; *(uint64_t*)0x20001190 = 0x20001100; *(uint64_t*)0x20001100 = 0; *(uint64_t*)0x20001108 = 0; *(uint64_t*)0x20001110 = 0; *(uint64_t*)0x20001118 = 0; *(uint64_t*)0x20001198 = 0x20001140; *(uint64_t*)0x20001140 = 0; *(uint64_t*)0x20001148 = 0; *(uint64_t*)0x20001150 = 0; *(uint64_t*)0x20001158 = 0; *(uint64_t*)0x200011e0 = 0; *(uint64_t*)0x200011e8 = 0; *(uint64_t*)0x20001288 = 0; syscall(SYS_test, /*a0=*/0x20001280ul, 0, 0, 0, 0, 0); break; case 5: syscall(SYS_foo, /*a0=*/0x200012c0ul, /*a1=*/0x20001300ul, /*a2=*/0x20001340ul); break; case 6: syscall(SYS_breaks_returns); break; case 7: syscall(SYS_test, /*a0=*/0x20ffe000ul, /*a1=*/0, /*a2=*/0x1000, /*a3=*/0x800, /*a4=*/0x400ul, 0); break; case 8: memcpy((void*)0x20001380, "\xb3\xeb\x98\x0b\x12\xaf\x03\x68\x48\x32\xff\x0d\x13\x67\xb0\x5d\xed\x25\x0f\x35\x0b\xff\xb9\xc6\x72\x43\xa4\xa2\x6c\xac\x6a\x56\x64\xba\x93\xce\x0c\x5f\xfc\xa8\x1d\x81\xc8\xa8\xa1\x84\x16\x56\x6c\x33\xd0\x0a\x99\x9b\xaf\x45\xad\x35\x17\x40\x79\x5a\x1a\x3a\x7f\x59\xab\xe5\x9a\xc2\x18\xf6\xe2\x04\xdc\x13\x29\xf1\x58\xd3\x6e\x4d\x0c\x86\x20\x0e\x4d\x8b\x5d\xbd\xa2\x75\xd2\x0e\x53\x15\xc5\x2e\x12\x89\x56\x63\xd7\xe5\xf4\xad\x1f\x0d\x1a\x8a\xc3\x01\x4e\xb4\x60\x3f\x30\x44\x5a\x97\x5d\x0a\x77\xfe\xec\x81\xe4\xe9\x9b\xd7\x1a\xca\xd6\x46\xcb\x04\xb6\x08\x19\xe8\xec\x24\xa8\xa2\xdb\x39\x09\x68\x8b\xb2\x84\x16\x28\x72\xbc\x71\x5c\x3e\xf9\x86\x3a\x13\xd6\x0f\x4e\x3a\xcd\x69\x54\xf1\xff\x26\x8e\xee\x5c\xbe\x35\x46\x5b\x4e\x65\xc6\x0d\xbf\x3d\xa3\x56\x89\xaf\x39\xd3\xdc\x0d\x9d\x22\x26\x40\x61\x47\xfe\xcc\xad\x22\xfd\x6d\x92\x55\xa8\xb9\x21\x78\xc6\xaf\xa7\xaa\x2d\xec\xd0\xae\x46\xec\x45\xc9\xbb\xf6\xe5\x3f\xea\xd2\xd6\x82\xd7\x15\x17\x5b\xa6\x08\xf8\x4b\xa1\x4d\x9a\x28\xc5\xe4\x7e\xbd\x82\x9a\x76\xbc\xa0\xc2\x82\x1b\x0e\x29\x91\x5a\x28\x89\xe0\x01\xa2\x01\x52\x4f\xcf\x62\x45\xad\xcf\x4d\x32\x6d\x69\x17\x6d\x7f\xa2\x7e\xd8\xd5\x93\xe2\x5e\xef\x7a\xfa\xa1\x47\x9e\x50\x63\x48\xf0\xa6\x75\x36\x97\x03\x4b\x9c\x60\x9f\x46\x51\x46\xf9\x56\x9d\xdd\x56\xaf\xf7\xfc\x2f\xad\xef\xb8\x9f\xa2\xd2\xd4\xb8\x38\xe7\xd6\x32\x00\x09\x7b\x77\xed\x52\xd9\xc3\x1c\x98\xfd\x76\xf9\x46\x7f\xf5\x11\x6c\xa0\x0f\x85\x84\x6a\x91\xbe\xf6\x94\x19\xaa\xc6\xeb\xc7\xdd\xfb\xa2\xb2\x68\xbf\xe2\x62\xf6\xf5\x5d\x52\xa6\x47\xaf\x8a\x0b\x45\x39\x1b\xa9\xdf\x09\xe2\x56\x64\x01\x9b\x41\x07\xa2\x31\xee\x76\x1a\x81\x96\x0c\x11\x98\xf5\x20\x9e\x3c\x37\x07\xd7\x68\xb8\xd0\x99\xee\xe5\x63\x05\x5a\x88\xc3\x04\x9f\x5a\xdd\xf8\x74\x7a\x2d\xfd\x6f\x3b\x43\xc5\xc2\x5d\xf5\x0c\x8a\x4b\x77\x87\x2a\x8d\x89\x05\xdf\xa0\x88\x5a\xdd\xdb\x8f\xd4\x9e\x29\x73\x52\x62\xb1\xc9\x4e\xa5\x9c\xe0\xce\xa5\xa0\x61\xfb\xb0\x42\xc7\xe3\x01\xe2\x92\x12\xf2\xf1\x47\x6e\x7c\x25\x31\x7c\xb5\xfa\x81\x77\x4d\x78\xb2\x0e\xfe\xa3\x77\xd4\xfb\xfd\xb1\x90\xcc\x1f\xd5\x8f\x56\x8e\x6a\xc1\x9b\xe0\x5d\x99\xc8\x36\x24\x28\xf5\x9f\x47\x31\x1a\xbf\x17\x8f\x6b\x08\x36\x45\xcc\xf0\x13\x62\x4a\x41\x8b\x8d\x9f\xec\xfa\x26\xf7\xdc\xba\x32\xb4\x39\x54\x49\xc0\xd1\xef\x6f\xa3\x7f\x33\xfa\x5e\xa6\x01\x92\xbb\x5c\xe9\x2e\x45\x8d\x90\xce\xdf\x0e\x85\x78\x78\x11\xc6\x4b\xd0\x43\x6f\x4c\x5c\xa0\x1f\xac\xae\x7b\x79\x3d\x69\x64\x42\x98\x28\x41\xf6\xe8\x3f\x60\x3d\x58\x06\x74\x2a\x4e\xc7\xac\xb4\x06\xc5\x5b\x27\xaa\xad\x7a\x62\x8e\xb2\xf4\x1f\x80\x07\xc0\xe3\x72\x8f\xa1\xf4\x01\x94\xd2\x71\x39\x2f\x6c\x7f\x68\x4e\x1d\xbe\x23\x9c\xf6\xc5\x01\xbd\x4f\x4f\x64\x31\x53\xb4\xe7\xbd\x32\xff\x4b\x3d\xb3\x61\xfe\x9c\x4a\x87\xb4\xd7\x49\x2e\xef\x74\x9b\xd1\x8c\x6a\x44\xda\xba\x60\x54\x2d\xea\xdc\x45\xcb\xfa\x8a\x46\xb8\xd2\x52\x67\x0e\xe3\x12\xed\xe5\x3b\xb5\x16\xf0\x00\x0c\xc2\x50\x09\xf4\xd4\xe7\x4c\x6f\x61\x30\x6c\x34\x4a\x9b\xa4\x8f\xa2\xa2\xd7\x0f\x3e\x1a\xc0\x18\xf9\xc0\xd1\x5d\xda\xaf\xb5\xcf\x89\x86\x7c\xa6\xbf\x6b\x37\x42\x7c\x47\x7e\xec\x1a\xcb\x7f\x36\x9b\x94\x22\xa8\x85\x8e\xbc\x2f\x3a\x10\xa9\xe9\x0a\xea\x0f\x4d\xf8\x2a\xb2\xe8\xd1\x0d\xff\xcb\x99\x89\x2a\x81\x55\xb4\xf8\xaf\xf7\x9e\x93\xdf\x24\x84\x8a\xef\x03\x5e\x85\xd5\x70\x48\xc7\xc9\x3f\xe5\x44\xe3\xef\x17\x54\xc4\x92\x40\x57\x3a\xc1\xea\x67\xb9\x4d\x85\x74\x54\x2d\xff\x03\xf0\x6b\xfe\xdc\x3f\x51\xc6\x20\x40\x28\x61\xf7\x77\xfa\x47\xbc\x05\xc8\x65\xa6\xe6\x3a\xb4\x8e\x70\xc4\xb3\x14\xe6\xf8\x09\x53\xcb\x1a\x22\xb9\x22\x6a\x1b\x3c\xc0\x84\x73\x6b\x2a\x82\x6a\x7f\xc8\x41\x02\x3e\xaa\x56\x44\x8d\x94\x75\x7b\x01\x38\x33\xc5\x3e\x18\x2c\x1d\xe0\x66\x87\x87\x01\xde\xf7\x3b\xdd\x13\xd7\x40\x45\x65\xdc\xc3\x17\xae\x65\x03\x83\xb3\xea\x7d\x5e\x6a\xed\x3d\xbf\x57\x5a\x2c\xa5\x13\x28\x50\xe3\x94\xad\xeb\x9f\xee\x10\x87\x19\x37\x83\x20\xb9\xb4\xe0\xc5\xa6\xdd\xc7\x75\x94\xa8\x02\x41\x51\xb3\xa6\xd3\x22\xfb\x48\xe5\xdb\x7f\x0f\xb0\x4a\x91\x49\xfb\x27\x8e\xd9\xd8\xad\x19\xb1\xb8\xa2\x68\xcb\xa4\xb3\x00\xe9\x31\x39\xf2\xb6\x11\xbb\x77\x79\x83\xb7\x4d\x6f\xac\x85\x2d\x74\x3f\xb5\x01\x1f\x9b\xf2\xbf\xd3\xf4\x31\x4c\xdc\x9b\x1e\x71\xc6\x5e\xa7\x6e\x49\x53\xaf\x36\xbc\xb4\xb9\x64\x9a\xa0\xee\xaa\x6c\x89\x2e\x17\x0d\x32\x85\x24\x17\x08\x59\x4a\x91\xbd\xec\x0f\xde\xdd\x97\x4b\x42\x20\xb4\xb7\x0a\x5a\x93\x99\x38\x52\x7c\x6e\x6e\xf8\x23\xb3\x62\x56\xc1\x36\x9f\xbe\xed\x64\xa9\x0e\x8b\xe5\x45\xea\xc8\x96\x8c\x76\x41\x39\xcc\xd4\xdc\x59\x01\xbc\x01\x99\x85\xaa\xb5\xfe\x71\xe2\x4c\x55\xf2\x60\xc4\xc4\xb7\xfd\x5c\xf5\x28\x8b\x13\xdc\xda\x57\xbb\x34\x50\xfb\x4f\x6e\xce\x5e\x7c\x4a\x0a\x21\xff\xf3\x12\x4c\x3c\x78\x3a\xfa\x87\x44\xf6\xca\x3f\x5c\x3d\xe5\xb4\xc1\x54\xce\xa1\x2b\xa4\x7c\x3c\x69\x4e\xa8\x30\x3a\x8d\x7c\x85\x10\x08\x9c\xc1\x60\x9a\x82\xe6\xa7\xe0\x89\xf6\x3a\xfd\x05\x85\xd3\xf5\xab\xa2\x26\x34\xdd\x7c\x95\x79\x36\x4d\xa1\xd9\x3a\x99\x5f\x77\x06\xda\x20\x8d\x65\xb9\x48\xd7\x46\x13\xe0\xe4\xf8\xc7\x79\x74\xdb\x27\x2e\xdf\x2f\x8d\x52\x91\xcd\x3a\xf0\xd0\xad\xee\xcc\x16\x35\x85\x16\x1b\xc8\xec\x9b\x62\x82\x3f\xeb\x86\x4a\x8f\xfa\x00\x12\x07\x19\x98\x19\x07\xc0\x27\xef\x41\xa9\xc5\xeb\xef\x88\x41\x1b\x42\x0e\x2c\x60\x41\xe9\x4d\xba\xe9\x38\x8f\x72\xdb\x00\x89\xd4\x73\x3c\xed\xc3\x68\xcd\x1d\x68\x05\x63\x4c\x80\xbf\xfb\x9c\x34\x30\xf4\x02\xb7\x3f\xff\x1d\x6c\xf3\x55\xb9\x50\x9c\x1b\xfd\x48\xe7\x9b\x14\x17\x14\x1c\x9b\x9a\xb1\xc0\xf6\x2a\x4c\xf9\x7b\xae\x55\xfe\x53\xaf\xea\x35\x3c\x10\x61\xbb\x88\x2e\x10\x1d\x74\x34\xb3\x9b\xe6\x55\x8e\x77\xea\x26\xb4\x4b\x50\x7c\x2c\x44\xdd\x0a\x62\x5c\x04\x4b\x0a\x78\xee\x23\x64\x86\x28\x42\xd9\xef\x0f\x1b\xcb\x56\x3f\x01\xad\xbd\xee\x69\xe5\x2d\x02\x28\x56\xad\x65\x04\xd8\x11\xe8\x49\xab\x47\x0d\x61\x3d\xa0\xce\x95\x10\x03\x52\x98\x22\xad\xc1\x02\xc4\xc6\x2a\x3a\xad\x2f\x73\x92\xaa\x46\x01\xab\x08\x63\x15\x0c\x35\x8a\xee\xc2\xfc\x5e\x3a\x90\x6d\xf0\x0f\xe5\xdb\x12\x26\xba\xc2\x0f\x08\xd7\x01\xf1\x81\xb9\x0a\x4d\x38\x9b\x91\xdd\xdb\xc2\x4e\x40\x48\x8e\x1c\x46\xab\x2d\x05\xb4\x82\x30\x29\x45\x3c\xc9\x25\x3e\xbc\x43\x70\x96\x4a\x64\xc1\x08\x7c\xb3\x85\x7d\x73\x6d\xc3\x03\xce\x93\x06\x6d\xb6\x0f\xc6\x1b\xe9\xf7\x9c\x0c\x9e\x1c\xa7\xe4\xd7\x3f\x95\x17\x2b\xcb\xaf\x6c\xbd\x18\xc0\x6d\x1c\x1c\xcc\xf2\x3d\x85\x59\x2e\xe6\x84\x43\x49\xb5\xe7\x2e\x6a\x5e\x10\xf5\xee\xd5\xec\xa8\xf9\xc0\xa8\xa9\x5e\x21\x43\x89\x53\x01\x94\xa0\x30\x43\xb2\x11\x08\xa4\x9e\x34\x66\xce\xbe\x30\x78\xda\xdd\x36\x4f\xaf\x67\xfe\x3c\x51\xe1\xdf\x75\xf4\xaa\x61\x98\x54\xb7\x80\xe0\xc0\x4e\x9a\x9b\xf2\x30\x1c\x03\x0a\x36\x26\xce\x82\x0a\xfc\x59\xe1\xc1\x3e\xd6\xfa\x3e\x30\x30\xb9\x66\xf3\x87\x8f\x17\xa1\x6a\x12\x09\x98\x7a\xa9\xf7\xeb\x76\x98\x8d\x40\x1f\x10\xbd\xb0\xa4\x19\xdd\xce\xd1\x10\x56\x59\xe6\x21\x94\x40\xe3\x5e\x98\x4c\x3e\x7a\xda\x78\xc3\x0a\x9a\x73\x99\xce\x1a\xbc\xe3\x6c\x7c\xe3\xe3\x9a\x89\xcf\xac\x98\xf2\x49\x73\x59\x14\xcf\xc1\x6b\xaf\x66\x6e\xd4\xb5\x1f\xf2\x19\x3c\x28\x36\xbd\x43\xe5\xd5\x37\xf2\x65\x36\x46\xf0\x5c\x81\x09\xef\x8e\xdf\xd3\x5b\x3a\xcd\x73\xeb\x7e\x79\x0c\x64\xcc\x2a\x7c\x95\x96\xe4\xa5\xf3\xd0\xe2\xd9\x2b\x30\x1c\x9e\xc5\xd8\x27\x68\xab\x21\x18\x01\xbe\xa9\x63\x40\xc3\x0e\x1b\x09\xfc\x9f\xae\x7c\xff\x26\x15\xd6\x1e\xde\x29\xf9\xb0\xd7\x12\xab\xff\xcd\x93\xea\x3b\x20\xce\xb7\xaa\x57\x36\x8e\x84\xc3\x87\x6e\xcd\x7a\x93\x1c\xb1\x9e\xa5\x17\x60\x3e\xf4\x4a\x98\xb2\x46\x28\x8b\x27\x33\x69\x80\xe4\xbb\x50\x90\x07\xbc\xd0\x18\x58\xcd\x35\xe9\xcd\x8d\xf2\x88\x22\x1d\x3a\x48\x72\x68\x82\x8f\xe7\x32\xfd\x7d\xa2\xe2\xb6\x92\x6b\x4a\x9b\x54\xd5\x4b\x41\xc7\x79\x98\xd1\xef\x53\x84\x87\xe1\xdc\xdf\x87\xfc\xc3\xfa\xb2\x5c\x77\xa7\xcf\x01\xf8\x60\x87\xe2\xb9\x5e\x1e\x4d\x45\x52\x2f\xc3\xf4\x4a\x14\xcb\xfa\xcd\x48\xd6\x3e\xba\x04\x2c\xa3\xe1\x4a\xf8\xe5\xbe\xd3\x18\x6d\xe4\xfb\x69\xf3\x87\xaa\xc8\x82\x42\xd6\x4f\xbd\xcd\x11\x0c\x33\x88\x21\xad\x72\x56\x2f\x09\x2f\x55\xfa\x73\xb5\xe7\xd9\x2c\x9b\x6f\xee\x57\x94\xef\x48\x23\x19\x0f\x92\x57\xb1\x1f\xf4\xfc\x44\x57\xdb\xa9\x0f\xbd\xa8\x0d\xaf\xb5\x17\xfa\x27\x51\x94\x89\x01\x6f\x6f\x45\x80\x06\x40\x1f\x9f\xea\x20\x42\x6a\x54\x5a\xab\x77\x84\xc4\xe3\xdf\x9d\xfa\x9f\xb2\x79\xcf\x21\xa8\x6c\xe3\xf2\x92\xcf\x52\xd3\x43\xfc\xe9\x7e\x05\xb9\x2c\x84\x72\x3d\x7d\xdc\x65\xa7\xbc\x79\xae\x73\xb1\x24\x6b\x6b\x65\x04\x8a\x38\x55\xb6\x2b\x13\x40\x26\x46\x27\xc1\xdf\x82\xf3\x35\x2f\x3a\xc6\xd5\xa7\x5e\x08\x23\x57\x2c\x2f\xb3\x92\xbd\x7e\xf1\x51\x93\xcc\x5f\x6f\xbe\xfc\x4d\x27\xff\xd7\x41\xa9\x3d\x1a\xb7\x99\xd9\xfb\xd5\x45\xd2\xd2\x60\x6e\x35\x66\xeb\x79\xd5\x44\x85\xf5\x56\x15\x10\xa5\x7f\x17\xf2\xb3\x90\x9e\xd1\xbf\xc5\xe5\xd6\x46\x92\xb6\xc5\x03\xeb\x58\xf1\x7c\xae\x55\x41\x37\x60\x74\x67\xe8\xab\x51\xd8\x67\x06\x7f\x50\x37\x4e\x99\xf7\x48\x69\xe0\x17\x7f\x4e\xb5\x2c\x29\x30\xdf\xe5\xca\x2b\x6e\x45\x4d\xb8\xa3\x62\x25\xb2\xc9\x36\xbd\xc5\xbb\x75\xf1\x35\x5f\xfd\x8d\x7f\xa4\x76\xeb\x28\x28\x71\xe5\x21\x11\x83\x2f\xcf\xc2\x46\xda\x41\x5c\x20\x0d\x9e\x6c\x35\x0f\x49\x84\x6a\x00\x22\x66\x01\x91\xa2\x84\x0d\x7a\x53\x75\x36\x74\xc7\x8e\xa0\x0a\x5b\x9e\x26\x6f\xf2\x9b\x1a\x8f\xb1\x93\xe1\x32\xd2\x3f\x96\x0c\xd9\xc8\x24\x9b\x94\x3f\xcd\xb8\x65\x39\x5b\x2c\x03\xab\x67\x5b\xbb\x19\x93\x81\x3f\xb0\xa8\xd1\xe6\x83\x31\x29\x7c\x88\xdb\x1d\xca\x00\x31\x3b\x82\x11\x12\x1b\x60\x23\x47\x5c\xb6\x9d\x6a\xc6\x6c\x11\x16\xa5\x61\x71\x35\x0f\x68\x0c\xc7\x4c\x88\xfe\x99\x05\xed\x07\x87\x80\xe6\xd7\x1b\xcc\x73\x5f\xee\x75\xa9\x44\x4f\x69\x5d\x03\x6a\xa6\xb4\xb9\xe5\x9b\x66\x80\xb6\x31\x29\x67\xf8\xb2\x36\xff\x8b\xee\x60\x31\x6a\x70\xcb\xa0\x31\x2c\x99\x3b\x92\xe3\x0c\xa4\xcb\x11\x8c\x17\x45\xe7\xb5\x78\xc0\xad\x6c\x3a\x7d\x81\x87\x37\x25\x95\xdd\x16\x08\x93\x11\x5f\x11\xb0\x54\xfc\x17\x18\xc9\x67\xbd\xaf\xe9\xbf\x95\xad\x58\x3d\xb5\x93\x96\xd5\x94\x11\x4b\x65\x00\x99\x6e\xef\xf8\x2b\x70\x19\x1e\x52\xfa\x23\x30\xef\xdc\x66\xfa\x36\x3c\xb3\x79\xc9\xc6\x77\x40\x53\x5c\x99\x60\xca\x85\x7c\xfe\x4d\x0a\x88\xbb\xbb\xf2\xe7\xb2\x03\x4b\xb8\x43\x98\x0f\x6f\xa8\x6f\xf6\x02\x33\x5d\x1e\x25\xa6\x13\xc7\xd7\xa4\xef\x7a\x6b\x16\x1c\x25\x82\x23\x9a\xa5\x6f\x5c\x89\x94\xd0\x66\x46\xe0\xaa\x62\xc4\x8b\x54\xe0\x85\x22\x23\x77\x2e\xd4\x4e\x70\x59\x69\x7a\xec\x6b\xc2\x22\x5e\x0e\xda\xc5\x5f\xdb\xff\x1a\x16\xd4\xc6\xde\xf4\xc7\x7d\xdf\x38\xb2\x77\x39\x52\xc8\x11\xff\x14\x5a\xe3\x66\xe2\x16\xc4\x16\x00\x65\x9f\xf7\x8f\x64\xb1\x9e\x35\x4d\x74\xf9\x0a\x61\x90\x7c\x85\xc7\x02\x39\x4f\xe2\xcc\xa4\xf5\xfe\xb5\xb5\x35\x30\xb5\xf4\xc9\xe7\x2f\x5c\x09\x0c\xa4\x64\xa7\xa9\xc3\x95\x14\x37\x35\xfd\xd2\x42\x1d\x07\xe8\xef\xe4\x19\x8a\xd0\x6f\x9d\x23\x0a\x91\xd5\xfb\x50\xef\xc0\x2c\x2d\xb6\xed\x4a\xd7\x50\x31\x9e\x3e\x67\x2f\x52\x13\xdd\xae\x92\xc3\xfc\xec\x0e\xd5\xdf\xf5\x22\xd0\xca\xb8\x9b\xb8\x25\x32\x54\x25\x55\x29\xb3\x2c\xf5\x38\x5c\x90\x01\x42\x1b\x92\xcc\x67\x16\x3c\xc3\x95\x23\x5e\x40\x8a\x46\x3f\xa3\x1e\xef\xd0\x74\x2d\xe5\x13\x9b\xba\x2d\xc1\x41\xff\xf7\xbe\x17\x5f\x41\x8c\xf7\xcf\x89\xdd\x4f\x47\x4a\x2f\xc6\x1d\x0f\x38\x51\xf3\x4d\x52\xc4\x9b\xbd\x12\x26\xbd\x08\x96\x30\x71\xf5\xd4\x91\x8f\x7e\x12\xd0\x02\x8d\x32\x1b\x3d\x6b\xd4\x36\xe0\x2f\x6e\x55\xcc\x48\xc6\x13\xe3\x29\x91\x6c\xb8\x54\x52\x44\xbb\xa3\x77\x90\x8d\x6b\xcf\xeb\x7e\xd6\x62\x08\xe5\x07\xb4\xdf\xd8\xf2\xcb\xa5\xa3\xd4\x2f\x3a\x4e\x4d\xa8\x0e\xba\x19\x9c\xc8\xae\xc8\xa4\x0f\x25\x47\x10\xd8\x11\x83\x24\x96\x75\x0c\x4b\x34\xc3\x6b\x74\x6b\xf3\xcb\x60\xda\xe8\x1e\x73\xda\x95\x2e\xe4\x1c\x2a\x40\x23\x72\xe5\x23\x9f\xd2\xd4\x07\xd8\xe9\x1b\x9e\x57\xb4\x75\x8a\xac\xe5\x9d\xf7\xd8\x3d\x38\xad\x17\x71\x6c\xae\x50\x9d\xdb\x24\x27\xcb\xcf\x84\x7a\x7b\x10\x8e\xdb\x4b\x3a\x70\x81\x71\xe7\x31\xa9\x77\x02\xb6\x37\x7c\x79\x34\xec\x9b\x4c\x74\x46\xea\x03\x1e\x62\xbb\x39\xa6\xe2\xd3\x20\xea\xa8\xb5\x91\x0b\x14\xd8\x82\x6c\x20\x4f\x7a\x4a\xb2\x36\x24\x0b\x48\x60\x66\xb2\x7b\xe7\xf6\x9b\x84\x42\xff\xc8\x03\xc4\xed\x7f\xdd\x23\xef\x2f\xa0\x33\x7d\xb8\x42\x68\x1c\x0f\x8e\xf2\xba\xdc\xc0\x81\x13\xfe\x80\x61\xab\x31\xfa\xf9\x89\xba\x55\x51\x2a\x5f\x0e\x7b\x93\x6d\x63\xc0\xcc\xed\x58\xef\x82\xcf\x0c\x2d\x29\xfb\x23\x18\xe1\x2b\x56\xd4\x91\x2e\x9c\x4f\x96\xdb\x02\xca\x84\x49\x29\x4d\xa3\x3f\x8f\xce\x55\x07\xd3\xeb\x99\x23\x90\x72\xe2\xb2\xe1\x2e\x33\x55\x35\x3b\xf4\x90\x18\x2e\xeb\x7a\xa1\x03\xc9\x77\xc0\x67\x01\xca\xa0\xb7\x44\x55\x11\x66\x89\xb9\xdb\xe9\x0a\xd1\xd1\x85\x39\xd5\xe4\x1a\xda\x0f\x2f\x7f\x1e\x6c\x9a\xa6\x7a\xa2\xaa\x41\x6f\x84\x9f\x18\xc6\xfb\xd2\x2d\xcb\xe0\x3a\xf7\x8b\x15\xce\xdd\xda\x0d\x1b\xbb\xdd\x33\x62\x76\x9f\x50\xe9\x86\x80\xfc\xe5\x4b\x7e\x84\xa9\x4f\x32\x46\x66\xa6\x96\x7f\xc8\x0f\x2e\x5e\x9c\xa9\x4f\x61\x7f\x01\x16\x3a\x16\x01\xc6\x22\x19\xfc\xb5\x67\x82\x66\xe1\xc6\x18\xca\x89\x47\xe7\x4a\x2a\xde\x5e\x40\xda\xeb\x8d\xf5\x62\x0f\x36\x5f\x66\xae\xae\x88\xaf\xb4\x2d\x70\xce\x41\x45\xeb\xaf\xa7\x58\xac\xcc\x19\xe2\x78\xbc\x9f\x45\xda\x63\x85\x9c\x46\xeb\xdf\x7f\x0e\xe2\xe3\xfd\x9d\xd5\x41\x4d\xeb\x86\x07\xd7\xec\x55\x65\x68\x30\x1d\x26\x50\x78\x0b\xe7\xf7\x5f\xcd\xf9\x24\x41\xcb\x98\xf2\x36\x48\xb5\xed\x3f\x3a\x5e\x2c\x96\xda\xaa\xc1\xda\x0c\xe4\x6e\x1d\x85\xb5\xc2\xcf\xf4\xd9\xa9\x16\x7d\x58\x15\xfc\xc6\x6b\xbd\x94\x5f\x0b\x55\x87\x41\x95\xac\xbb\xbf\xec\xf8\x0f\x26\xb7\x0a\x4c\xf6\x62\xf9\x55\xea\x4e\x01\x35\x1f\xaa\x9f\x53\x00\xcf\x35\xc7\x2a\xe6\x09\x15\x06\x2c\xef\xf7\x89\x1e\x76\x77\x51\x91\x96\xbf\x81\x33\x33\x36\x1d\xbb\xee\xcf\xe8\xdc\x12\x7a\x94\xc2\x0b\x9f\xaf\x03\x6d\x71\xa8\x16\xb1\xab\x72\xe8\x20\x19\xd0\x69\x9b\x01\x2a\x12\x60\x22\xcc\x70\x31\x36\x63\x8d\xc8\x67\x49\x05\xb4\x10\x0e\x9b\x8d\x62\xab\xde\xb1\x3c\x84\xbe\x30\x0b\x49\xae\x44\xfc\xea\x4b\x89\x2f\xbf\x65\x64\xcd\xb0\x12\x69\x9e\x9f\xd1\xc9\x64\xf2\xa9\xd7\xf3\x12\x65\x6b\x47\xe6\x91\x66\x82\xb0\x04\x41\x57\xf4\xe2\xdf\xb9\xd5\xf5\x5d\x68\x49\x5d\x76\x3c\x80\x7d\x8e\xc6\x93\x2e\x56\x0c\x91\x3a\xb7\x6f\xc3\xff\x82\x02\x02\xae\x44\xfa\xcb\xda\x1a\xa1\x53\x10\x8f\x16\x8e\x42\x1b\xdb\x1a\x93\xc3\x82\xed\xf0\x8c\xc7\x9c\x5b\x71\x1a\xe1\x3c\x6e\xb8\xe5\x43\x93\xf4\x99\x8e\xc9\x9a\x95\xae\x7f\x85\x99\x9e\x78\x43\x9b\xa6\x03\x44\x55\x45\xf2\x1f\xfc\x85\x62\x07\xee\xa9\x45\x5f\xb1\x4c\x0a\xd9\x67\xf2\x2c\xf0\xf5\x72\xdb\xa5\xca\xc7\x45\x0e\x4e\x52\xce\x71\x3c\xe8\x71\xfc\x76\xd7\xad\xca\x01\x26\x0e\xa7\x08\xda\x43\x40\x01\x80\x5b\xcf\xd1\xf3\xcc\xd1\xc6\x08\x4d\x5e\xc2\xa2\x9f\x00\xe7\x7a\xa4\xf9\x1d\xee\x13\xee\xb5\xfc\xce\x8e\x82\xa1\x03\xb3\x7f\x6c\x4f\x25\x25\x95\x1e\xaa\xd4\x49\xa0\x8a\x75\xd2\xf3\x41\xf1\x7b\x2c\xbd\xf1\x73\x0d\x19\x2e\xf7\x58\xa6\xe8\xf8\x83\xd8\x8c\x07\xf2\xef\x41\xb4\x43\xda\xa7\x95\x00\x02\x44\x26\x3d\x2d\x30\xc7\x62\xf6\xfe\xcf\x3b\xb6\x7f\x8d\xda\x6c\xa7\xd9\xd4\x0a\x18\xe1\x86\x26\x85\x3c\x50\x94\xef\x66\xed\x64\x61\x7e\xe9\x38\x8c\x03\x7a\x74\xa9\x61\x69\x2d\x44\x70\x79\x6a\x68\x3f\x88\x0e\xb9\x04\x10\x60\xac\xee\x4e\x76\x18\xb7\x17\xa0\x57\x95\x1e\x1c\x66\x23\x62\xfd\x26\x70\x9b\xd8\x0a\xf3\x9f\xe5\xc1\x1f\x96\x54\xc2\x65\x5b\x21\xed\xcc\x32\x42\x84\x91\xdc\x5c\x10\x1e\x6a\x22\x2d\x2e\x51\xb9\xf2\x3d\x96\x0f\x12\x74\x8d\x9a\x5f\xc3\xe2\xf6\xc9\x53\x97\x23\x47\x65\x6a\x9f\x78\x7e\xe5\xbd\x19\x64\x45\xaa\x2e\xaf\x8f\x8f\xbd\xaf\xaa\x34\xed\x1b\x05\x5a\x09\xb3\x71\x8d\x8b\x3c\x8f\x1c\xfe\x5a\xc5\x3c\xf3\x7c\x9f\xa7\x6f\xe7\xac\x70\x87\x15\x7b\xdb\xa5\x23\xe2\xa9\xe7\x10\xb3\xf5\xb5\xa7\xff\x9b\x8b\x1f\x61\x2d\x9b\xbb\xb1\x10\x4f\x9d\x6d\xf9\x87\x87\xe9\x25\x23\xfe\x1d\x30\x10\x1e\xdf\x53\xd8\x9d\xf4\xa3\xc4\x2b\xd3\xbd\x27\x37\xf3\xaf\xe0\x15\x4e\xe1\xe8\xd9\x3d\x9a\x27\x75\xd8\x4c\x68\x6d\xac\x89\x84\x51\x2c\xf9\x55\x96\x23\xac\x6f\xe4\xef\x79\xf7\xb3\x4b\x21\x96\x9a\x8a\x8a\x72\x43\xf4\x1e\x11\xa5\x8d\xe3\xe4\xe1\x8f\x33\x85\xee\x70\x03\xc7\x9f\xa5\x27\xb9\x4e\x72\x33\x8f\x2a\x1c\x4c\x45\xff\x04\x5a\x61\x1f\xe1\xdb\x3c\xdd\xa0\xfe\xf1\x21\xf7\x8c\x52\x75\x34\xda\xb2\x66\xdd\x3f\xf6\xf7\x3d\x6b\x6b\xc0\x39\x98\x30\x98\x30\x51\x0a\x57\xeb\x0e\x2d\x74\xde\x38\x11\x27\x75\xb8\x77\x5d\x99\xc1\x5e\x38\xd0\xe7\x09\xf3\x97\x49\x2f\xc6\x46\x2f\x6e\x57\xa7\xff\x65\xd2\x5b\xe9\xeb\x75\x30\xa5\xef\x4f\xc8\x07\xff\x9e\x09\xb7\x01\xb5\x9d\x25\x0b\x54\x1a\x54\x6d\xb7\x5d\x11\x1f\x56\x0a\x47\x21\x7c\x12\x2c\x6b\x29\x28\xd5\xa0\xa0\x47\xa9\x88\xb3\xac\x51\x31\xdf\x00\x96\xc1\x5b\xbc\x39\x8d\x0e\x69\x65\x84\x1b\x17\xf4\x91\x63\x58\x85\xd8\x98\x7a\x04\xbb\xe2\x48\x21\x57\xb5\xca\x88\x3c\x76\x7e\xa1\x56\xb4\xe1\x78\x4b\xa1\xb7\xcf\xeb\x34\x3a\x71\xeb\x03\xeb\xce\x88\x79\x2a\xed\x8b\x18\xe7\xfd\x88\x0c\xd5\x93\x4c\xbe\x55\x52\x3c\x1b\x7c\x82\xb3\xed\x99\xb3\xde\x90\xa4\x79\xf2\x51\xe1\x90\x4a\xc8\x6f\x28\x02\x19\x57\xef\x35\x42\x1d\x3c\x8a\x2d\x39\xee\xe7\x31\x4e\x3f\x3f\x94\x5e\xa2\xfb\x5f\xf7\xf6\xc0\x9b\xa4\x72\xff\x3e\x56\x2c\x61\x68\xb0\xc1\xf8\x43\x65\x8b\xb1\x80\xeb\xfc\xf9\x54\xe5\x8e\x63\x3f\xb1\x61\x27\x51\xbf\x36\x0b\x15\xfe\x67\xca\x59\x4f\x5a\xae\x34\x23\x3a\x3b\x58\xee\xba\x56\x2f\xad\x63", 4096); syscall(SYS_serialize2, /*a=*/0x20001380ul); break; case 9: syscall(SYS_test, /*a0=*/0x20fff000ul, /*a1=*/0, /*a2=*/0x1000, /*a3=*/0x800, /*a4=*/0x400ul, 0); break; case 10: memcpy((void*)0x20000000, "\'/+,\000", 5); *(uint8_t*)0x20000040 = 0x1c; *(uint8_t*)0x20000044 = 1; STORE_BY_BITMASK(uint32_t, , 0x20000044, 3, 8, 4); syz_compare(/*want=*/0x20000000, /*want_len=*/5, /*got=*/0x20000040, /*got_len=*/8); break; case 11: syz_compare_int(/*n=*/2, /*v0=*/0xffff, /*v1=*/0x100, 0, 0); break; case 12: syz_errno(/*v=*/0xfffffff9); break; case 13: memcpy((void*)0x20000080, "\xfe\xaa\x0e\x27\x8d\x40\x3f\x03\xc2\xbf\x80\x48\x86\x76\x75\x4e\x43\x50\x32\xf8\x1e\xee\x19\xff\xa3\xf4\x8c\xa7\x58\xe8\x2b\x07\x72\x89\x83\x4e\xb7\x9b\xe6\x7b\x6c\xf4\x37\xe2\xd9\xb1\x01\xf3\x97\xd7", 50); syz_execute_func(/*text=*/0x20000080); break; case 14: syz_exit(/*status=*/0xffffffc0); break; case 15: syz_mmap(/*addr=*/0x20ffc000, /*len=*/0x1000); break; case 16: syz_sleep_ms(/*ms=*/1); break; case 17: syz_test_fuzzer1(/*a=*/0xd, /*b=*/0xc, /*c=*/0xb); break; } } int main(void) { syz_mmap(/*addr=*/0x20000000, /*len=*/0x1000000); setup_fault(); use_temporary_dir(); do_sandbox_none(); return 0; } :310:3: error: call to undeclared function 'syscall'; ISO C99 and later do not support implicit function declarations [-Werror,-Wimplicit-function-declaration] syscall(SYS_breaks_returns); ^ 1 error generated. compiler invocation: c++ [-o /tmp/syz-executor3708434091 -DGOOS_test=1 -DGOARCH_64=1 -DHOSTGOOS_openbsd=1 -x c - -m64 -lutil -O2 -pthread -Wall -Werror -Wparentheses -Wunused-const-variable -Wframe-larger-than=16384 -Wno-array-bounds -Wno-unused-but-set-variable -Wno-unused-command-line-argument -no-pie -fno-exceptions] --- FAIL: TestGenerate/test/64/14 (2.22s) 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: breaks_returns() (fail_nth: 1) breaks_returns() (async) test$end0(&(0x7f0000000000)={0x20, 0x8, 0x7, 0x7fffffff}) (rerun: 4) test$length9(&(0x7f0000000040)={&(0x7f0000ffe000/0x2000)=nil, 0x2000}) test$recur1(&(0x7f0000001280)={&(0x7f0000001240)={&(0x7f0000000600)={0x0, &(0x7f00000005c0)={&(0x7f0000000080), 0x0, &(0x7f0000000180)={&(0x7f00000000c0), &(0x7f0000000100), &(0x7f0000000140)}, &(0x7f00000002c0)={&(0x7f00000001c0), &(0x7f0000000200), &(0x7f0000000240), &(0x7f0000000280)}, 0x0, &(0x7f0000000580)={&(0x7f0000000300), 0x0, &(0x7f0000000400)={&(0x7f0000000340), &(0x7f0000000380), 0x0, &(0x7f00000003c0)}, &(0x7f0000000540)={&(0x7f0000000440), &(0x7f0000000480), &(0x7f00000004c0), &(0x7f0000000500)}}}}, &(0x7f0000001200)={&(0x7f0000000680)={&(0x7f0000000640)}, &(0x7f00000009c0)={0x0, &(0x7f0000000980)={&(0x7f0000000700)={&(0x7f00000006c0)}, 0x0, &(0x7f0000000840)={&(0x7f0000000740), &(0x7f0000000780), &(0x7f00000007c0), &(0x7f0000000800)}, &(0x7f0000000940)={&(0x7f0000000880), &(0x7f00000008c0), &(0x7f0000000900)}}}, &(0x7f0000000ac0)={&(0x7f0000000a00), 0x0, &(0x7f0000000a40), &(0x7f0000000a80)}, &(0x7f0000000bc0)={&(0x7f0000000b00), 0x0, &(0x7f0000000b40), &(0x7f0000000b80)}, &(0x7f0000000e80)={0x0, &(0x7f0000000c00), &(0x7f0000000d40)={&(0x7f0000000c40), &(0x7f0000000c80), &(0x7f0000000cc0), &(0x7f0000000d00)}, &(0x7f0000000e40)={&(0x7f0000000d80), &(0x7f0000000dc0), &(0x7f0000000e00)}}, &(0x7f00000011c0)={&(0x7f0000000f00)={&(0x7f0000000ec0)}, &(0x7f0000000f40), &(0x7f0000001040)={&(0x7f0000000f80), &(0x7f0000000fc0), 0x0, &(0x7f0000001000)}, &(0x7f0000001180)={&(0x7f0000001080), &(0x7f00000010c0), &(0x7f0000001100), &(0x7f0000001140)}}}}}) foo$anyres(&(0x7f00000012c0), &(0x7f0000001300), &(0x7f0000001340)) breaks_returns() test$length10(&(0x7f0000ffe000/0x1000)=nil, 0x1000, 0x1000, 0x800, 0x400) serialize2(&(0x7f0000001380)="b3eb980b12af03684832ff0d1367b05ded250f350bffb9c67243a4a26cac6a5664ba93ce0c5ffca81d81c8a8a18416566c33d00a999baf45ad351740795a1a3a7f59abe59ac218f6e204dc1329f158d36e4d0c86200e4d8b5dbda275d20e5315c52e12895663d7e5f4ad1f0d1a8ac3014eb4603f30445a975d0a77feec81e4e99bd71acad646cb04b60819e8ec24a8a2db3909688bb284162872bc715c3ef9863a13d60f4e3acd6954f1ff268eee5cbe35465b4e65c60dbf3da35689af39d3dc0d9d2226406147feccad22fd6d9255a8b92178c6afa7aa2decd0ae46ec45c9bbf6e53fead2d682d715175ba608f84ba14d9a28c5e47ebd829a76bca0c2821b0e29915a2889e001a201524fcf6245adcf4d326d69176d7fa27ed8d593e25eef7afaa1479e506348f0a6753697034b9c609f465146f9569ddd56aff7fc2fadefb89fa2d2d4b838e7d63200097b77ed52d9c31c98fd76f9467ff5116ca00f85846a91bef69419aac6ebc7ddfba2b268bfe262f6f55d52a647af8a0b45391ba9df09e25664019b4107a231ee761a81960c1198f5209e3c3707d768b8d099eee563055a88c3049f5addf8747a2dfd6f3b43c5c25df50c8a4b77872a8d8905dfa0885adddb8fd49e29735262b1c94ea59ce0cea5a061fbb042c7e301e29212f2f1476e7c25317cb5fa81774d78b20efea377d4fbfdb190cc1fd58f568e6ac19be05d99c8362428f59f47311abf178f6b083645ccf013624a418b8d9fecfa26f7dcba32b4395449c0d1ef6fa37f33fa5ea60192bb5ce92e458d90cedf0e85787811c64bd0436f4c5ca01facae7b793d696442982841f6e83f603d5806742a4ec7acb406c55b27aaad7a628eb2f41f8007c0e3728fa1f40194d271392f6c7f684e1dbe239cf6c501bd4f4f643153b4e7bd32ff4b3db361fe9c4a87b4d7492eef749bd18c6a44daba60542deadc45cbfa8a46b8d252670ee312ede53bb516f0000cc25009f4d4e74c6f61306c344a9ba48fa2a2d70f3e1ac018f9c0d15ddaafb5cf89867ca6bf6b37427c477eec1acb7f369b9422a8858ebc2f3a10a9e90aea0f4df82ab2e8d10dffcb99892a8155b4f8aff79e93df24848aef035e85d57048c7c93fe544e3ef1754c49240573ac1ea67b94d8574542dff03f06bfedc3f51c620402861f777fa47bc05c865a6e63ab48e70c4b314e6f80953cb1a22b9226a1b3cc084736b2a826a7fc841023eaa56448d94757b013833c53e182c1de066878701def73bdd13d7404565dcc317ae650383b3ea7d5e6aed3dbf575a2ca5132850e394adeb9fee108719378320b9b4e0c5a6ddc77594a8024151b3a6d322fb48e5db7f0fb04a9149fb278ed9d8ad19b1b8a268cba4b300e93139f2b611bb777983b74d6fac852d743fb5011f9bf2bfd3f4314cdc9b1e71c65ea76e4953af36bcb4b9649aa0eeaa6c892e170d3285241708594a91bdec0fdedd974b4220b4b70a5a939938527c6e6ef823b36256c1369fbeed64a90e8be545eac8968c764139ccd4dc5901bc019985aab5fe71e24c55f260c4c4b7fd5cf5288b13dcda57bb3450fb4f6ece5e7c4a0a21fff3124c3c783afa8744f6ca3f5c3de5b4c154cea12ba47c3c694ea8303a8d7c8510089cc1609a82e6a7e089f63afd0585d3f5aba22634dd7c9579364da1d93a995f7706da208d65b948d74613e0e4f8c77974db272edf2f8d5291cd3af0d0adeecc163585161bc8ec9b62823feb864a8ffa00120719981907c027ef41a9c5ebef88411b420e2c6041e94dbae9388f72db0089d4733cedc368cd1d6805634c80bffb9c3430f402b73fff1d6cf355b9509c1bfd48e79b1417141c9b9ab1c0f62a4cf97bae55fe53afea353c1061bb882e101d7434b39be6558e77ea26b44b507c2c44dd0a625c044b0a78ee2364862842d9ef0f1bcb563f01adbdee69e52d022856ad6504d811e849ab470d613da0ce951003529822adc102c4c62a3aad2f7392aa4601ab0863150c358aeec2fc5e3a906df00fe5db1226bac20f08d701f181b90a4d389b91dddbc24e40488e1c46ab2d05b4823029453cc9253ebc4370964a64c1087cb3857d736dc303ce93066db60fc61be9f79c0c9e1ca7e4d73f95172bcbaf6cbd18c06d1c1cccf23d85592ee6844349b5e72e6a5e10f5eed5eca8f9c0a8a95e214389530194a03043b21108a49e3466cebe3078dadd364faf67fe3c51e1df75f4aa619854b780e0c04e9a9bf2301c030a3626ce820afc59e1c13ed6fa3e3030b966f3878f17a16a1209987aa9f7eb76988d401f10bdb0a419ddced1105659e6219440e35e984c3e7ada78c30a9a7399ce1abce36c7ce3e39a89cfac98f249735914cfc16baf666ed4b51ff2193c2836bd43e5d537f2653646f05c8109ef8edfd35b3acd73eb7e790c64cc2a7c9596e4a5f3d0e2d92b301c9ec5d82768ab211801bea96340c30e1b09fc9fae7cff2615d61ede29f9b0d712abffcd93ea3b20ceb7aa57368e84c3876ecd7a931cb19ea517603ef44a98b246288b27336980e4bb509007bcd01858cd35e9cd8df288221d3a487268828fe732fd7da2e2b6926b4a9b54d54b41c77998d1ef538487e1dcdf87fcc3fab25c77a7cf01f86087e2b95e1e4d45522fc3f44a14cbfacd48d63eba042ca3e14af8e5bed3186de4fb69f387aac88242d64fbdcd110c338821ad72562f092f55fa73b5e7d92c9b6fee5794ef4823190f9257b11ff4fc4457dba90fbda80dafb517fa27519489016f6f458006401f9fea20426a545aab7784c4e3df9dfa9fb279cf21a86ce3f292cf52d343fce97e05b92c84723d7ddc65a7bc79ae73b1246b6b65048a3855b62b1340264627c1df82f3352f3ac6d5a75e0823572c2fb392bd7ef15193cc5f6fbefc4d27ffd741a93d1ab799d9fbd545d2d2606e3566eb79d54485f5561510a57f17f2b3909ed1bfc5e5d64692b6c503eb58f17cae554137607467e8ab51d867067f50374e99f74869e0177f4eb52c2930dfe5ca2b6e454db8a36225b2c936bdc5bb75f1355ffd8d7fa476eb282871e52111832fcfc246da415c200d9e6c350f49846a0022660191a2840d7a53753674c78ea00a5b9e266ff29b1a8fb193e132d23f960cd9c8249b943fcdb865395b2c03ab675bbb1993813fb0a8d1e68331297c88db1dca00313b8211121b6023475cb69d6ac66c1116a56171350f680cc74c88fe9905ed078780e6d71bcc735fee75a9444f695d036aa6b4b9e59b6680b6312967f8b236ff8bee60316a70cba0312c993b92e30ca4cb118c1745e7b578c0ad6c3a7d8187372595dd160893115f11b054fc1718c967bdafe9bf95ad583db59396d594114b6500996eeff82b70191e52fa2330efdc66fa363cb379c9c67740535c9960ca857cfe4d0a88bbbbf2e7b2034bb843980f6fa86ff602335d1e25a613c7d7a4ef7a6b161c2582239aa56f5c8994d06646e0aa62c48b54e0852223772ed44e7059697aec6bc2225e0edac55fdbff1a16d4c6def4c77ddf38b2773952c811ff145ae366e216c41600659ff78f64b19e354d74f90a61907c85c702394fe2cca4f5feb5b53530b5f4c9e72f5c090ca464a7a9c395143735fdd2421d07e8efe4198ad06f9d230a91d5fb50efc02c2db6ed4ad750319e3e672f5213ddae92c3fcec0ed5dff522d0cab89bb8253254255529b32cf5385c9001421b92cc67163cc395235e408a463fa31eefd0742de5139bba2dc141fff7be175f418cf7cf89dd4f474a2fc61d0f3851f34d52c49bbd1226bd08963071f5d4918f7e12d0028d321b3d6bd436e02f6e55cc48c613e329916cb8545244bba377908d6bcfeb7ed66208e507b4dfd8f2cba5a3d42f3a4e4da80eba199cc8aec8a40f254710d811832496750c4b34c36b746bf3cb60dae81e73da952ee41c2a402372e5239fd2d407d8e91b9e57b4758aace59df7d83d38ad17716cae509ddb2427cbcf847a7b108edb4b3a708171e731a97702b6377c7934ec9b4c7446ea031e62bb39a6e2d320eaa8b5910b14d8826c204f7a4ab236240b486066b27be7f69b8442ffc803c4ed7fdd23ef2fa0337db842681c0f8ef2badcc08113fe8061ab31faf989ba55512a5f0e7b936d63c0cced58ef82cf0c2d29fb2318e12b56d4912e9c4f96db02ca8449294da33f8fce5507d3eb99239072e2b2e12e3355353bf490182eeb7aa103c977c06701caa0b74455116689b9dbe90ad1d18539d5e41ada0f2f7f1e6c9aa67aa2aa416f849f18c6fbd22dcbe03af78b15ceddda0d1bbbdd3362769f50e98680fce54b7e84a94f324666a6967fc80f2e5e9ca94f617f01163a1601c62219fcb5678266e1c618ca8947e74a2ade5e40daeb8df5620f365f66aeae88afb42d70ce4145ebafa758accc19e278bc9f45da63859c46ebdf7f0ee2e3fd9dd5414deb8607d7ec556568301d2650780be7f75fcdf92441cb98f23648b5ed3f3a5e2c96daaac1da0ce46e1d85b5c2cff4d9a9167d5815fcc66bbd945f0b55874195acbbbfecf80f26b70a4cf662f955ea4e01351faa9f5300cf35c72ae60915062ceff7891e7677519196bf813333361dbbeecfe8dc127a94c20b9faf036d71a816b1ab72e82019d0699b012a126022cc703136638dc8674905b4100e9b8d62abdeb13c84be300b49ae44fcea4b892fbf6564cdb012699e9fd1c964f2a9d7f312656b47e6916682b0044157f4e2dfb9d5f55d68495d763c807d8ec6932e560c913ab76fc3ff820202ae44facbda1aa153108f168e421bdb1a93c382edf08cc79c5b711ae13c6eb8e54393f4998ec99a95ae7f85999e78439ba603445545f21ffc856207eea9455fb14c0ad967f22cf0f572dba5cac7450e4e52ce713ce871fc76d7adca01260ea708da434001805bcfd1f3ccd1c6084d5ec2a29f00e77aa4f91dee13eeb5fcce8e82a103b37f6c4f2525951eaad449a08a75d2f341f17b2cbdf1730d192ef758a6e8f883d88c07f2ef41b443daa795000244263d2d30c762f6fecf3bb67f8dda6ca7d9d40a18e18626853c5094ef66ed64617ee9388c037a74a961692d4470796a683f880eb9041060acee4e7618b717a057951e1c662362fd26709bd80af39fe5c11f9654c2655b21edcc32428491dc5c101e6a222d2e51b9f23d960f12748d9a5fc3e2f6c953972347656a9f787ee5bd196445aa2eaf8f8fbdafaa34ed1b055a09b3718d8b3c8f1cfe5ac53cf37c9fa76fe7ac7087157bdba523e2a9e710b3f5b5a7ff9b8b1f612d9bbbb1104f9d6df98787e92523fe1d30101edf53d89df4a3c42bd3bd2737f3afe0154ee1e8d93d9a2775d84c686dac8984512cf9559623ac6fe4ef79f7b34b21969a8a8a7243f41e11a58de3e4e18f3385ee7003c79fa527b94e72338f2a1c4c45ff045a611fe1db3cdda0fef121f78c527534dab266dd3ff6f73d6b6bc03998309830510a57eb0e2d74de38112775b8775d99c15e38d0e709f397492fc6462f6e57a7ff65d25be9eb7530a5ef4fc807ff9e09b701b59d250b541a546db75d111f560a47217c122c6b2928d5a0a047a988b3ac5131df0096c15bbc398d0e6965841b17f491635885d8987a04bbe2482157b5ca883c767ea156b4e1784ba1b7cfeb343a71eb03ebce88792aed8b18e7fd880cd5934cbe55523c1b7c82b3ed99b3de90a479f251e1904ac86f28021957ef35421d3c8a2d39eee7314e3f3f945ea2fb5ff7f6c09ba472ff3e562c6168b0c1f843658bb180ebfcf954e58e633fb1612751bf360b15fe67ca594f5aae34233a3b58eeba562fad63") test$length10(&(0x7f0000fff000/0x1000)=nil, 0x1000, 0x1000, 0x800, 0x400) syz_compare(&(0x7f0000000000)='\'/+,\x00', 0x5, &(0x7f0000000040)=@bf5={0x1c, {0x1, 0x3}}, 0x8) syz_compare_int$2(0x2, 0xffff, 0x100) syz_errno(0xfffffff9) syz_execute_func(&(0x7f0000000080)="feaa0e278d403f03c2bf80488676754e435032f81eee19ffa3f48ca758e82b077289834eb79be67b6cf437e2d9b101f397d7") syz_exit(0xffffffc0) syz_mmap(&(0x7f0000ffc000/0x1000)=nil, 0x1000) syz_sleep_ms(0x1) syz_test_fuzzer1(0xd, 0xc, 0xb) 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 #ifndef SYS_breaks_returns #define SYS_breaks_returns 0 #endif #ifndef SYS_foo #define SYS_foo 0 #endif #ifndef SYS_serialize2 #define SYS_serialize2 0 #endif #ifndef SYS_test #define SYS_test 0 #endif 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[] = "./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 { pthread_mutex_t mu; pthread_cond_t cv; int state; } event_t; static void event_init(event_t* ev) { if (pthread_mutex_init(&ev->mu, 0)) exit(1); if (pthread_cond_init(&ev->cv, 0)) exit(1); ev->state = 0; } static void event_reset(event_t* ev) { ev->state = 0; } static void event_set(event_t* ev) { pthread_mutex_lock(&ev->mu); if (ev->state) exit(1); ev->state = 1; pthread_mutex_unlock(&ev->mu); pthread_cond_broadcast(&ev->cv); } static void event_wait(event_t* ev) { pthread_mutex_lock(&ev->mu); while (!ev->state) pthread_cond_wait(&ev->cv, &ev->mu); pthread_mutex_unlock(&ev->mu); } static int event_isset(event_t* ev) { pthread_mutex_lock(&ev->mu); int res = ev->state; pthread_mutex_unlock(&ev->mu); return res; } static int event_timedwait(event_t* ev, uint64_t timeout) { uint64_t start = current_time_ms(); uint64_t now = start; pthread_mutex_lock(&ev->mu); for (;;) { if (ev->state) break; uint64_t remain = timeout - (now - start); struct timespec ts; ts.tv_sec = remain / 1000; ts.tv_nsec = (remain % 1000) * 1000 * 1000; pthread_cond_timedwait(&ev->cv, &ev->mu, &ts); now = current_time_ms(); if (now - start > timeout) break; } int res = ev->state; pthread_mutex_unlock(&ev->mu); return res; } #define BITMASK(bf_off,bf_len) (((1ull << (bf_len)) - 1) << (bf_off)) #define STORE_BY_BITMASK(type,htobe,addr,val,bf_off,bf_len) *(type*)(addr) = htobe((htobe(*(type*)(addr)) & ~BITMASK((bf_off), (bf_len))) | (((type)(val) << (bf_off)) & BITMASK((bf_off), (bf_len)))) static long syz_mmap(volatile long a0, volatile long a1) { return (long)mmap((void*)a0, a1, PROT_READ | PROT_WRITE, MAP_ANON | MAP_PRIVATE | MAP_FIXED, -1, 0); } static long syz_errno(volatile long v) { errno = v; return v == 0 ? 0 : -1; } static long syz_exit(volatile long status) { _exit(status); return 0; } static long syz_sleep_ms(volatile long ms) { sleep_ms(ms); return 0; } static long syz_compare(volatile long want, volatile long want_len, volatile long got, volatile long got_len) { if (want_len != got_len) { errno = EBADF; goto error; } if (memcmp((void*)want, (void*)got, want_len)) { errno = EINVAL; goto error; } return 0; error: return -1; } static long syz_compare_int(volatile long n, ...) { va_list args; va_start(args, n); long v0 = va_arg(args, long); long v1 = va_arg(args, long); long v2 = va_arg(args, long); long v3 = va_arg(args, long); va_end(args); if (n < 2 || n > 4) return errno = E2BIG, -1; if (n <= 2 && v2 != 0) return errno = EFAULT, -1; if (n <= 3 && v3 != 0) return errno = EFAULT, -1; if (v0 != v1) return errno = EINVAL, -1; if (n > 2 && v0 != v2) return errno = EINVAL, -1; if (n > 3 && v0 != v3) return errno = EINVAL, -1; return 0; } static void loop(); static int do_sandbox_none(void) { loop(); return 0; } static void fake_crash(const char* name) { exit(1); exit(1); } static long syz_test_fuzzer1(volatile long a, volatile long b, volatile long c) { if (a == 1 && b == 1 && c == 1) fake_crash("first bug"); if (a == 1 && b == 2 && c == 3) fake_crash("second bug"); return 0; } 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 < 18; 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(); } void execute_call(int call) { switch (call) { case 0: inject_fault(1); syscall(SYS_breaks_returns); break; case 1: syscall(SYS_breaks_returns); break; case 2: *(uint8_t*)0x20000000 = 0x20; *(uint16_t*)0x20000001 = htobe16(8); *(uint32_t*)0x20000003 = htobe32(7); *(uint64_t*)0x20000007 = htobe64(0x7fffffff); syscall(SYS_test, /*a0=*/0x20000000ul, 0, 0, 0, 0, 0); { int i; for(i = 0; i < 4; i++) { syscall(SYS_test, /*a0=*/0x20000000ul, 0, 0, 0, 0, 0); } } break; case 3: *(uint64_t*)0x20000040 = 0x20ffe000; *(uint64_t*)0x20000048 = 0x2000; syscall(SYS_test, /*a0=*/0x20000040ul, 0, 0, 0, 0, 0); break; case 4: *(uint64_t*)0x20001280 = 0x20001240; *(uint64_t*)0x20001240 = 0x20000600; *(uint64_t*)0x20000600 = 0; *(uint64_t*)0x20000608 = 0x200005c0; *(uint64_t*)0x200005c0 = 0x20000080; *(uint64_t*)0x20000080 = 0; *(uint64_t*)0x200005c8 = 0; *(uint64_t*)0x200005d0 = 0x20000180; *(uint64_t*)0x20000180 = 0x200000c0; *(uint64_t*)0x200000c0 = 0; *(uint64_t*)0x200000c8 = 0; *(uint64_t*)0x200000d0 = 0; *(uint64_t*)0x200000d8 = 0; *(uint64_t*)0x20000188 = 0x20000100; *(uint64_t*)0x20000100 = 0; *(uint64_t*)0x20000108 = 0; *(uint64_t*)0x20000110 = 0; *(uint64_t*)0x20000118 = 0; *(uint64_t*)0x20000190 = 0x20000140; *(uint64_t*)0x20000140 = 0; *(uint64_t*)0x20000148 = 0; *(uint64_t*)0x20000150 = 0; *(uint64_t*)0x20000158 = 0; *(uint64_t*)0x20000198 = 0; *(uint64_t*)0x200005d8 = 0x200002c0; *(uint64_t*)0x200002c0 = 0x200001c0; *(uint64_t*)0x200001c0 = 0; *(uint64_t*)0x200001c8 = 0; *(uint64_t*)0x200001d0 = 0; *(uint64_t*)0x200001d8 = 0; *(uint64_t*)0x200002c8 = 0x20000200; *(uint64_t*)0x20000200 = 0; *(uint64_t*)0x20000208 = 0; *(uint64_t*)0x20000210 = 0; *(uint64_t*)0x20000218 = 0; *(uint64_t*)0x200002d0 = 0x20000240; *(uint64_t*)0x20000240 = 0; *(uint64_t*)0x20000248 = 0; *(uint64_t*)0x20000250 = 0; *(uint64_t*)0x20000258 = 0; *(uint64_t*)0x200002d8 = 0x20000280; *(uint64_t*)0x20000280 = 0; *(uint64_t*)0x20000288 = 0; *(uint64_t*)0x20000290 = 0; *(uint64_t*)0x20000298 = 0; *(uint64_t*)0x200005e0 = 0; *(uint64_t*)0x200005e8 = 0x20000580; *(uint64_t*)0x20000580 = 0x20000300; *(uint64_t*)0x20000300 = 0; *(uint64_t*)0x20000588 = 0; *(uint64_t*)0x20000590 = 0x20000400; *(uint64_t*)0x20000400 = 0x20000340; *(uint64_t*)0x20000340 = 0; *(uint64_t*)0x20000348 = 0; *(uint64_t*)0x20000350 = 0; *(uint64_t*)0x20000358 = 0; *(uint64_t*)0x20000408 = 0x20000380; *(uint64_t*)0x20000380 = 0; *(uint64_t*)0x20000388 = 0; *(uint64_t*)0x20000390 = 0; *(uint64_t*)0x20000398 = 0; *(uint64_t*)0x20000410 = 0; *(uint64_t*)0x20000418 = 0x200003c0; *(uint64_t*)0x200003c0 = 0; *(uint64_t*)0x200003c8 = 0; *(uint64_t*)0x200003d0 = 0; *(uint64_t*)0x200003d8 = 0; *(uint64_t*)0x20000598 = 0x20000540; *(uint64_t*)0x20000540 = 0x20000440; *(uint64_t*)0x20000440 = 0; *(uint64_t*)0x20000448 = 0; *(uint64_t*)0x20000450 = 0; *(uint64_t*)0x20000458 = 0; *(uint64_t*)0x20000548 = 0x20000480; *(uint64_t*)0x20000480 = 0; *(uint64_t*)0x20000488 = 0; *(uint64_t*)0x20000490 = 0; *(uint64_t*)0x20000498 = 0; *(uint64_t*)0x20000550 = 0x200004c0; *(uint64_t*)0x200004c0 = 0; *(uint64_t*)0x200004c8 = 0; *(uint64_t*)0x200004d0 = 0; *(uint64_t*)0x200004d8 = 0; *(uint64_t*)0x20000558 = 0x20000500; *(uint64_t*)0x20000500 = 0; *(uint64_t*)0x20000508 = 0; *(uint64_t*)0x20000510 = 0; *(uint64_t*)0x20000518 = 0; *(uint64_t*)0x200005a0 = 0; *(uint64_t*)0x200005a8 = 0; *(uint64_t*)0x20001248 = 0x20001200; *(uint64_t*)0x20001200 = 0x20000680; *(uint64_t*)0x20000680 = 0x20000640; *(uint64_t*)0x20000640 = 0; *(uint64_t*)0x20001208 = 0x200009c0; *(uint64_t*)0x200009c0 = 0; *(uint64_t*)0x200009c8 = 0x20000980; *(uint64_t*)0x20000980 = 0x20000700; *(uint64_t*)0x20000700 = 0x200006c0; *(uint64_t*)0x200006c0 = 0; *(uint64_t*)0x20000988 = 0; *(uint64_t*)0x20000990 = 0x20000840; *(uint64_t*)0x20000840 = 0x20000740; *(uint64_t*)0x20000740 = 0; *(uint64_t*)0x20000748 = 0; *(uint64_t*)0x20000750 = 0; *(uint64_t*)0x20000758 = 0; *(uint64_t*)0x20000848 = 0x20000780; *(uint64_t*)0x20000780 = 0; *(uint64_t*)0x20000788 = 0; *(uint64_t*)0x20000790 = 0; *(uint64_t*)0x20000798 = 0; *(uint64_t*)0x20000850 = 0x200007c0; *(uint64_t*)0x200007c0 = 0; *(uint64_t*)0x200007c8 = 0; *(uint64_t*)0x200007d0 = 0; *(uint64_t*)0x200007d8 = 0; *(uint64_t*)0x20000858 = 0x20000800; *(uint64_t*)0x20000800 = 0; *(uint64_t*)0x20000808 = 0; *(uint64_t*)0x20000810 = 0; *(uint64_t*)0x20000818 = 0; *(uint64_t*)0x20000998 = 0x20000940; *(uint64_t*)0x20000940 = 0x20000880; *(uint64_t*)0x20000880 = 0; *(uint64_t*)0x20000888 = 0; *(uint64_t*)0x20000890 = 0; *(uint64_t*)0x20000898 = 0; *(uint64_t*)0x20000948 = 0x200008c0; *(uint64_t*)0x200008c0 = 0; *(uint64_t*)0x200008c8 = 0; *(uint64_t*)0x200008d0 = 0; *(uint64_t*)0x200008d8 = 0; *(uint64_t*)0x20000950 = 0x20000900; *(uint64_t*)0x20000900 = 0; *(uint64_t*)0x20000908 = 0; *(uint64_t*)0x20000910 = 0; *(uint64_t*)0x20000918 = 0; *(uint64_t*)0x20000958 = 0; *(uint64_t*)0x200009a0 = 0; *(uint64_t*)0x200009a8 = 0; *(uint64_t*)0x20001210 = 0x20000ac0; *(uint64_t*)0x20000ac0 = 0x20000a00; *(uint64_t*)0x20000a00 = 0; *(uint64_t*)0x20000a08 = 0; *(uint64_t*)0x20000a10 = 0; *(uint64_t*)0x20000a18 = 0; *(uint64_t*)0x20000ac8 = 0; *(uint64_t*)0x20000ad0 = 0x20000a40; *(uint64_t*)0x20000a40 = 0; *(uint64_t*)0x20000a48 = 0; *(uint64_t*)0x20000a50 = 0; *(uint64_t*)0x20000a58 = 0; *(uint64_t*)0x20000ad8 = 0x20000a80; *(uint64_t*)0x20000a80 = 0; *(uint64_t*)0x20000a88 = 0; *(uint64_t*)0x20000a90 = 0; *(uint64_t*)0x20000a98 = 0; *(uint64_t*)0x20001218 = 0x20000bc0; *(uint64_t*)0x20000bc0 = 0x20000b00; *(uint64_t*)0x20000b00 = 0; *(uint64_t*)0x20000b08 = 0; *(uint64_t*)0x20000b10 = 0; *(uint64_t*)0x20000b18 = 0; *(uint64_t*)0x20000bc8 = 0; *(uint64_t*)0x20000bd0 = 0x20000b40; *(uint64_t*)0x20000b40 = 0; *(uint64_t*)0x20000b48 = 0; *(uint64_t*)0x20000b50 = 0; *(uint64_t*)0x20000b58 = 0; *(uint64_t*)0x20000bd8 = 0x20000b80; *(uint64_t*)0x20000b80 = 0; *(uint64_t*)0x20000b88 = 0; *(uint64_t*)0x20000b90 = 0; *(uint64_t*)0x20000b98 = 0; *(uint64_t*)0x20001220 = 0x20000e80; *(uint64_t*)0x20000e80 = 0; *(uint64_t*)0x20000e88 = 0x20000c00; *(uint64_t*)0x20000c00 = 0; *(uint64_t*)0x20000c08 = 0; *(uint64_t*)0x20000e90 = 0x20000d40; *(uint64_t*)0x20000d40 = 0x20000c40; *(uint64_t*)0x20000c40 = 0; *(uint64_t*)0x20000c48 = 0; *(uint64_t*)0x20000c50 = 0; *(uint64_t*)0x20000c58 = 0; *(uint64_t*)0x20000d48 = 0x20000c80; *(uint64_t*)0x20000c80 = 0; *(uint64_t*)0x20000c88 = 0; *(uint64_t*)0x20000c90 = 0; *(uint64_t*)0x20000c98 = 0; *(uint64_t*)0x20000d50 = 0x20000cc0; *(uint64_t*)0x20000cc0 = 0; *(uint64_t*)0x20000cc8 = 0; *(uint64_t*)0x20000cd0 = 0; *(uint64_t*)0x20000cd8 = 0; *(uint64_t*)0x20000d58 = 0x20000d00; *(uint64_t*)0x20000d00 = 0; *(uint64_t*)0x20000d08 = 0; *(uint64_t*)0x20000d10 = 0; *(uint64_t*)0x20000d18 = 0; *(uint64_t*)0x20000e98 = 0x20000e40; *(uint64_t*)0x20000e40 = 0x20000d80; *(uint64_t*)0x20000d80 = 0; *(uint64_t*)0x20000d88 = 0; *(uint64_t*)0x20000d90 = 0; *(uint64_t*)0x20000d98 = 0; *(uint64_t*)0x20000e48 = 0x20000dc0; *(uint64_t*)0x20000dc0 = 0; *(uint64_t*)0x20000dc8 = 0; *(uint64_t*)0x20000dd0 = 0; *(uint64_t*)0x20000dd8 = 0; *(uint64_t*)0x20000e50 = 0x20000e00; *(uint64_t*)0x20000e00 = 0; *(uint64_t*)0x20000e08 = 0; *(uint64_t*)0x20000e10 = 0; *(uint64_t*)0x20000e18 = 0; *(uint64_t*)0x20000e58 = 0; *(uint64_t*)0x20000ea0 = 0; *(uint64_t*)0x20000ea8 = 0; *(uint64_t*)0x20001228 = 0x200011c0; *(uint64_t*)0x200011c0 = 0x20000f00; *(uint64_t*)0x20000f00 = 0x20000ec0; *(uint64_t*)0x20000ec0 = 0; *(uint64_t*)0x200011c8 = 0x20000f40; *(uint64_t*)0x20000f40 = 0; *(uint64_t*)0x20000f48 = 0; *(uint64_t*)0x200011d0 = 0x20001040; *(uint64_t*)0x20001040 = 0x20000f80; *(uint64_t*)0x20000f80 = 0; *(uint64_t*)0x20000f88 = 0; *(uint64_t*)0x20000f90 = 0; *(uint64_t*)0x20000f98 = 0; *(uint64_t*)0x20001048 = 0x20000fc0; *(uint64_t*)0x20000fc0 = 0; *(uint64_t*)0x20000fc8 = 0; *(uint64_t*)0x20000fd0 = 0; *(uint64_t*)0x20000fd8 = 0; *(uint64_t*)0x20001050 = 0; *(uint64_t*)0x20001058 = 0x20001000; *(uint64_t*)0x20001000 = 0; *(uint64_t*)0x20001008 = 0; *(uint64_t*)0x20001010 = 0; *(uint64_t*)0x20001018 = 0; *(uint64_t*)0x200011d8 = 0x20001180; *(uint64_t*)0x20001180 = 0x20001080; *(uint64_t*)0x20001080 = 0; *(uint64_t*)0x20001088 = 0; *(uint64_t*)0x20001090 = 0; *(uint64_t*)0x20001098 = 0; *(uint64_t*)0x20001188 = 0x200010c0; *(uint64_t*)0x200010c0 = 0; *(uint64_t*)0x200010c8 = 0; *(uint64_t*)0x200010d0 = 0; *(uint64_t*)0x200010d8 = 0; *(uint64_t*)0x20001190 = 0x20001100; *(uint64_t*)0x20001100 = 0; *(uint64_t*)0x20001108 = 0; *(uint64_t*)0x20001110 = 0; *(uint64_t*)0x20001118 = 0; *(uint64_t*)0x20001198 = 0x20001140; *(uint64_t*)0x20001140 = 0; *(uint64_t*)0x20001148 = 0; *(uint64_t*)0x20001150 = 0; *(uint64_t*)0x20001158 = 0; *(uint64_t*)0x200011e0 = 0; *(uint64_t*)0x200011e8 = 0; *(uint64_t*)0x20001288 = 0; syscall(SYS_test, /*a0=*/0x20001280ul, 0, 0, 0, 0, 0); break; case 5: syscall(SYS_foo, /*a0=*/0x200012c0ul, /*a1=*/0x20001300ul, /*a2=*/0x20001340ul); break; case 6: syscall(SYS_breaks_returns); break; case 7: syscall(SYS_test, /*a0=*/0x20ffe000ul, /*a1=*/0, /*a2=*/0x1000, /*a3=*/0x800, /*a4=*/0x400ul, 0); break; case 8: memcpy((void*)0x20001380, "\xb3\xeb\x98\x0b\x12\xaf\x03\x68\x48\x32\xff\x0d\x13\x67\xb0\x5d\xed\x25\x0f\x35\x0b\xff\xb9\xc6\x72\x43\xa4\xa2\x6c\xac\x6a\x56\x64\xba\x93\xce\x0c\x5f\xfc\xa8\x1d\x81\xc8\xa8\xa1\x84\x16\x56\x6c\x33\xd0\x0a\x99\x9b\xaf\x45\xad\x35\x17\x40\x79\x5a\x1a\x3a\x7f\x59\xab\xe5\x9a\xc2\x18\xf6\xe2\x04\xdc\x13\x29\xf1\x58\xd3\x6e\x4d\x0c\x86\x20\x0e\x4d\x8b\x5d\xbd\xa2\x75\xd2\x0e\x53\x15\xc5\x2e\x12\x89\x56\x63\xd7\xe5\xf4\xad\x1f\x0d\x1a\x8a\xc3\x01\x4e\xb4\x60\x3f\x30\x44\x5a\x97\x5d\x0a\x77\xfe\xec\x81\xe4\xe9\x9b\xd7\x1a\xca\xd6\x46\xcb\x04\xb6\x08\x19\xe8\xec\x24\xa8\xa2\xdb\x39\x09\x68\x8b\xb2\x84\x16\x28\x72\xbc\x71\x5c\x3e\xf9\x86\x3a\x13\xd6\x0f\x4e\x3a\xcd\x69\x54\xf1\xff\x26\x8e\xee\x5c\xbe\x35\x46\x5b\x4e\x65\xc6\x0d\xbf\x3d\xa3\x56\x89\xaf\x39\xd3\xdc\x0d\x9d\x22\x26\x40\x61\x47\xfe\xcc\xad\x22\xfd\x6d\x92\x55\xa8\xb9\x21\x78\xc6\xaf\xa7\xaa\x2d\xec\xd0\xae\x46\xec\x45\xc9\xbb\xf6\xe5\x3f\xea\xd2\xd6\x82\xd7\x15\x17\x5b\xa6\x08\xf8\x4b\xa1\x4d\x9a\x28\xc5\xe4\x7e\xbd\x82\x9a\x76\xbc\xa0\xc2\x82\x1b\x0e\x29\x91\x5a\x28\x89\xe0\x01\xa2\x01\x52\x4f\xcf\x62\x45\xad\xcf\x4d\x32\x6d\x69\x17\x6d\x7f\xa2\x7e\xd8\xd5\x93\xe2\x5e\xef\x7a\xfa\xa1\x47\x9e\x50\x63\x48\xf0\xa6\x75\x36\x97\x03\x4b\x9c\x60\x9f\x46\x51\x46\xf9\x56\x9d\xdd\x56\xaf\xf7\xfc\x2f\xad\xef\xb8\x9f\xa2\xd2\xd4\xb8\x38\xe7\xd6\x32\x00\x09\x7b\x77\xed\x52\xd9\xc3\x1c\x98\xfd\x76\xf9\x46\x7f\xf5\x11\x6c\xa0\x0f\x85\x84\x6a\x91\xbe\xf6\x94\x19\xaa\xc6\xeb\xc7\xdd\xfb\xa2\xb2\x68\xbf\xe2\x62\xf6\xf5\x5d\x52\xa6\x47\xaf\x8a\x0b\x45\x39\x1b\xa9\xdf\x09\xe2\x56\x64\x01\x9b\x41\x07\xa2\x31\xee\x76\x1a\x81\x96\x0c\x11\x98\xf5\x20\x9e\x3c\x37\x07\xd7\x68\xb8\xd0\x99\xee\xe5\x63\x05\x5a\x88\xc3\x04\x9f\x5a\xdd\xf8\x74\x7a\x2d\xfd\x6f\x3b\x43\xc5\xc2\x5d\xf5\x0c\x8a\x4b\x77\x87\x2a\x8d\x89\x05\xdf\xa0\x88\x5a\xdd\xdb\x8f\xd4\x9e\x29\x73\x52\x62\xb1\xc9\x4e\xa5\x9c\xe0\xce\xa5\xa0\x61\xfb\xb0\x42\xc7\xe3\x01\xe2\x92\x12\xf2\xf1\x47\x6e\x7c\x25\x31\x7c\xb5\xfa\x81\x77\x4d\x78\xb2\x0e\xfe\xa3\x77\xd4\xfb\xfd\xb1\x90\xcc\x1f\xd5\x8f\x56\x8e\x6a\xc1\x9b\xe0\x5d\x99\xc8\x36\x24\x28\xf5\x9f\x47\x31\x1a\xbf\x17\x8f\x6b\x08\x36\x45\xcc\xf0\x13\x62\x4a\x41\x8b\x8d\x9f\xec\xfa\x26\xf7\xdc\xba\x32\xb4\x39\x54\x49\xc0\xd1\xef\x6f\xa3\x7f\x33\xfa\x5e\xa6\x01\x92\xbb\x5c\xe9\x2e\x45\x8d\x90\xce\xdf\x0e\x85\x78\x78\x11\xc6\x4b\xd0\x43\x6f\x4c\x5c\xa0\x1f\xac\xae\x7b\x79\x3d\x69\x64\x42\x98\x28\x41\xf6\xe8\x3f\x60\x3d\x58\x06\x74\x2a\x4e\xc7\xac\xb4\x06\xc5\x5b\x27\xaa\xad\x7a\x62\x8e\xb2\xf4\x1f\x80\x07\xc0\xe3\x72\x8f\xa1\xf4\x01\x94\xd2\x71\x39\x2f\x6c\x7f\x68\x4e\x1d\xbe\x23\x9c\xf6\xc5\x01\xbd\x4f\x4f\x64\x31\x53\xb4\xe7\xbd\x32\xff\x4b\x3d\xb3\x61\xfe\x9c\x4a\x87\xb4\xd7\x49\x2e\xef\x74\x9b\xd1\x8c\x6a\x44\xda\xba\x60\x54\x2d\xea\xdc\x45\xcb\xfa\x8a\x46\xb8\xd2\x52\x67\x0e\xe3\x12\xed\xe5\x3b\xb5\x16\xf0\x00\x0c\xc2\x50\x09\xf4\xd4\xe7\x4c\x6f\x61\x30\x6c\x34\x4a\x9b\xa4\x8f\xa2\xa2\xd7\x0f\x3e\x1a\xc0\x18\xf9\xc0\xd1\x5d\xda\xaf\xb5\xcf\x89\x86\x7c\xa6\xbf\x6b\x37\x42\x7c\x47\x7e\xec\x1a\xcb\x7f\x36\x9b\x94\x22\xa8\x85\x8e\xbc\x2f\x3a\x10\xa9\xe9\x0a\xea\x0f\x4d\xf8\x2a\xb2\xe8\xd1\x0d\xff\xcb\x99\x89\x2a\x81\x55\xb4\xf8\xaf\xf7\x9e\x93\xdf\x24\x84\x8a\xef\x03\x5e\x85\xd5\x70\x48\xc7\xc9\x3f\xe5\x44\xe3\xef\x17\x54\xc4\x92\x40\x57\x3a\xc1\xea\x67\xb9\x4d\x85\x74\x54\x2d\xff\x03\xf0\x6b\xfe\xdc\x3f\x51\xc6\x20\x40\x28\x61\xf7\x77\xfa\x47\xbc\x05\xc8\x65\xa6\xe6\x3a\xb4\x8e\x70\xc4\xb3\x14\xe6\xf8\x09\x53\xcb\x1a\x22\xb9\x22\x6a\x1b\x3c\xc0\x84\x73\x6b\x2a\x82\x6a\x7f\xc8\x41\x02\x3e\xaa\x56\x44\x8d\x94\x75\x7b\x01\x38\x33\xc5\x3e\x18\x2c\x1d\xe0\x66\x87\x87\x01\xde\xf7\x3b\xdd\x13\xd7\x40\x45\x65\xdc\xc3\x17\xae\x65\x03\x83\xb3\xea\x7d\x5e\x6a\xed\x3d\xbf\x57\x5a\x2c\xa5\x13\x28\x50\xe3\x94\xad\xeb\x9f\xee\x10\x87\x19\x37\x83\x20\xb9\xb4\xe0\xc5\xa6\xdd\xc7\x75\x94\xa8\x02\x41\x51\xb3\xa6\xd3\x22\xfb\x48\xe5\xdb\x7f\x0f\xb0\x4a\x91\x49\xfb\x27\x8e\xd9\xd8\xad\x19\xb1\xb8\xa2\x68\xcb\xa4\xb3\x00\xe9\x31\x39\xf2\xb6\x11\xbb\x77\x79\x83\xb7\x4d\x6f\xac\x85\x2d\x74\x3f\xb5\x01\x1f\x9b\xf2\xbf\xd3\xf4\x31\x4c\xdc\x9b\x1e\x71\xc6\x5e\xa7\x6e\x49\x53\xaf\x36\xbc\xb4\xb9\x64\x9a\xa0\xee\xaa\x6c\x89\x2e\x17\x0d\x32\x85\x24\x17\x08\x59\x4a\x91\xbd\xec\x0f\xde\xdd\x97\x4b\x42\x20\xb4\xb7\x0a\x5a\x93\x99\x38\x52\x7c\x6e\x6e\xf8\x23\xb3\x62\x56\xc1\x36\x9f\xbe\xed\x64\xa9\x0e\x8b\xe5\x45\xea\xc8\x96\x8c\x76\x41\x39\xcc\xd4\xdc\x59\x01\xbc\x01\x99\x85\xaa\xb5\xfe\x71\xe2\x4c\x55\xf2\x60\xc4\xc4\xb7\xfd\x5c\xf5\x28\x8b\x13\xdc\xda\x57\xbb\x34\x50\xfb\x4f\x6e\xce\x5e\x7c\x4a\x0a\x21\xff\xf3\x12\x4c\x3c\x78\x3a\xfa\x87\x44\xf6\xca\x3f\x5c\x3d\xe5\xb4\xc1\x54\xce\xa1\x2b\xa4\x7c\x3c\x69\x4e\xa8\x30\x3a\x8d\x7c\x85\x10\x08\x9c\xc1\x60\x9a\x82\xe6\xa7\xe0\x89\xf6\x3a\xfd\x05\x85\xd3\xf5\xab\xa2\x26\x34\xdd\x7c\x95\x79\x36\x4d\xa1\xd9\x3a\x99\x5f\x77\x06\xda\x20\x8d\x65\xb9\x48\xd7\x46\x13\xe0\xe4\xf8\xc7\x79\x74\xdb\x27\x2e\xdf\x2f\x8d\x52\x91\xcd\x3a\xf0\xd0\xad\xee\xcc\x16\x35\x85\x16\x1b\xc8\xec\x9b\x62\x82\x3f\xeb\x86\x4a\x8f\xfa\x00\x12\x07\x19\x98\x19\x07\xc0\x27\xef\x41\xa9\xc5\xeb\xef\x88\x41\x1b\x42\x0e\x2c\x60\x41\xe9\x4d\xba\xe9\x38\x8f\x72\xdb\x00\x89\xd4\x73\x3c\xed\xc3\x68\xcd\x1d\x68\x05\x63\x4c\x80\xbf\xfb\x9c\x34\x30\xf4\x02\xb7\x3f\xff\x1d\x6c\xf3\x55\xb9\x50\x9c\x1b\xfd\x48\xe7\x9b\x14\x17\x14\x1c\x9b\x9a\xb1\xc0\xf6\x2a\x4c\xf9\x7b\xae\x55\xfe\x53\xaf\xea\x35\x3c\x10\x61\xbb\x88\x2e\x10\x1d\x74\x34\xb3\x9b\xe6\x55\x8e\x77\xea\x26\xb4\x4b\x50\x7c\x2c\x44\xdd\x0a\x62\x5c\x04\x4b\x0a\x78\xee\x23\x64\x86\x28\x42\xd9\xef\x0f\x1b\xcb\x56\x3f\x01\xad\xbd\xee\x69\xe5\x2d\x02\x28\x56\xad\x65\x04\xd8\x11\xe8\x49\xab\x47\x0d\x61\x3d\xa0\xce\x95\x10\x03\x52\x98\x22\xad\xc1\x02\xc4\xc6\x2a\x3a\xad\x2f\x73\x92\xaa\x46\x01\xab\x08\x63\x15\x0c\x35\x8a\xee\xc2\xfc\x5e\x3a\x90\x6d\xf0\x0f\xe5\xdb\x12\x26\xba\xc2\x0f\x08\xd7\x01\xf1\x81\xb9\x0a\x4d\x38\x9b\x91\xdd\xdb\xc2\x4e\x40\x48\x8e\x1c\x46\xab\x2d\x05\xb4\x82\x30\x29\x45\x3c\xc9\x25\x3e\xbc\x43\x70\x96\x4a\x64\xc1\x08\x7c\xb3\x85\x7d\x73\x6d\xc3\x03\xce\x93\x06\x6d\xb6\x0f\xc6\x1b\xe9\xf7\x9c\x0c\x9e\x1c\xa7\xe4\xd7\x3f\x95\x17\x2b\xcb\xaf\x6c\xbd\x18\xc0\x6d\x1c\x1c\xcc\xf2\x3d\x85\x59\x2e\xe6\x84\x43\x49\xb5\xe7\x2e\x6a\x5e\x10\xf5\xee\xd5\xec\xa8\xf9\xc0\xa8\xa9\x5e\x21\x43\x89\x53\x01\x94\xa0\x30\x43\xb2\x11\x08\xa4\x9e\x34\x66\xce\xbe\x30\x78\xda\xdd\x36\x4f\xaf\x67\xfe\x3c\x51\xe1\xdf\x75\xf4\xaa\x61\x98\x54\xb7\x80\xe0\xc0\x4e\x9a\x9b\xf2\x30\x1c\x03\x0a\x36\x26\xce\x82\x0a\xfc\x59\xe1\xc1\x3e\xd6\xfa\x3e\x30\x30\xb9\x66\xf3\x87\x8f\x17\xa1\x6a\x12\x09\x98\x7a\xa9\xf7\xeb\x76\x98\x8d\x40\x1f\x10\xbd\xb0\xa4\x19\xdd\xce\xd1\x10\x56\x59\xe6\x21\x94\x40\xe3\x5e\x98\x4c\x3e\x7a\xda\x78\xc3\x0a\x9a\x73\x99\xce\x1a\xbc\xe3\x6c\x7c\xe3\xe3\x9a\x89\xcf\xac\x98\xf2\x49\x73\x59\x14\xcf\xc1\x6b\xaf\x66\x6e\xd4\xb5\x1f\xf2\x19\x3c\x28\x36\xbd\x43\xe5\xd5\x37\xf2\x65\x36\x46\xf0\x5c\x81\x09\xef\x8e\xdf\xd3\x5b\x3a\xcd\x73\xeb\x7e\x79\x0c\x64\xcc\x2a\x7c\x95\x96\xe4\xa5\xf3\xd0\xe2\xd9\x2b\x30\x1c\x9e\xc5\xd8\x27\x68\xab\x21\x18\x01\xbe\xa9\x63\x40\xc3\x0e\x1b\x09\xfc\x9f\xae\x7c\xff\x26\x15\xd6\x1e\xde\x29\xf9\xb0\xd7\x12\xab\xff\xcd\x93\xea\x3b\x20\xce\xb7\xaa\x57\x36\x8e\x84\xc3\x87\x6e\xcd\x7a\x93\x1c\xb1\x9e\xa5\x17\x60\x3e\xf4\x4a\x98\xb2\x46\x28\x8b\x27\x33\x69\x80\xe4\xbb\x50\x90\x07\xbc\xd0\x18\x58\xcd\x35\xe9\xcd\x8d\xf2\x88\x22\x1d\x3a\x48\x72\x68\x82\x8f\xe7\x32\xfd\x7d\xa2\xe2\xb6\x92\x6b\x4a\x9b\x54\xd5\x4b\x41\xc7\x79\x98\xd1\xef\x53\x84\x87\xe1\xdc\xdf\x87\xfc\xc3\xfa\xb2\x5c\x77\xa7\xcf\x01\xf8\x60\x87\xe2\xb9\x5e\x1e\x4d\x45\x52\x2f\xc3\xf4\x4a\x14\xcb\xfa\xcd\x48\xd6\x3e\xba\x04\x2c\xa3\xe1\x4a\xf8\xe5\xbe\xd3\x18\x6d\xe4\xfb\x69\xf3\x87\xaa\xc8\x82\x42\xd6\x4f\xbd\xcd\x11\x0c\x33\x88\x21\xad\x72\x56\x2f\x09\x2f\x55\xfa\x73\xb5\xe7\xd9\x2c\x9b\x6f\xee\x57\x94\xef\x48\x23\x19\x0f\x92\x57\xb1\x1f\xf4\xfc\x44\x57\xdb\xa9\x0f\xbd\xa8\x0d\xaf\xb5\x17\xfa\x27\x51\x94\x89\x01\x6f\x6f\x45\x80\x06\x40\x1f\x9f\xea\x20\x42\x6a\x54\x5a\xab\x77\x84\xc4\xe3\xdf\x9d\xfa\x9f\xb2\x79\xcf\x21\xa8\x6c\xe3\xf2\x92\xcf\x52\xd3\x43\xfc\xe9\x7e\x05\xb9\x2c\x84\x72\x3d\x7d\xdc\x65\xa7\xbc\x79\xae\x73\xb1\x24\x6b\x6b\x65\x04\x8a\x38\x55\xb6\x2b\x13\x40\x26\x46\x27\xc1\xdf\x82\xf3\x35\x2f\x3a\xc6\xd5\xa7\x5e\x08\x23\x57\x2c\x2f\xb3\x92\xbd\x7e\xf1\x51\x93\xcc\x5f\x6f\xbe\xfc\x4d\x27\xff\xd7\x41\xa9\x3d\x1a\xb7\x99\xd9\xfb\xd5\x45\xd2\xd2\x60\x6e\x35\x66\xeb\x79\xd5\x44\x85\xf5\x56\x15\x10\xa5\x7f\x17\xf2\xb3\x90\x9e\xd1\xbf\xc5\xe5\xd6\x46\x92\xb6\xc5\x03\xeb\x58\xf1\x7c\xae\x55\x41\x37\x60\x74\x67\xe8\xab\x51\xd8\x67\x06\x7f\x50\x37\x4e\x99\xf7\x48\x69\xe0\x17\x7f\x4e\xb5\x2c\x29\x30\xdf\xe5\xca\x2b\x6e\x45\x4d\xb8\xa3\x62\x25\xb2\xc9\x36\xbd\xc5\xbb\x75\xf1\x35\x5f\xfd\x8d\x7f\xa4\x76\xeb\x28\x28\x71\xe5\x21\x11\x83\x2f\xcf\xc2\x46\xda\x41\x5c\x20\x0d\x9e\x6c\x35\x0f\x49\x84\x6a\x00\x22\x66\x01\x91\xa2\x84\x0d\x7a\x53\x75\x36\x74\xc7\x8e\xa0\x0a\x5b\x9e\x26\x6f\xf2\x9b\x1a\x8f\xb1\x93\xe1\x32\xd2\x3f\x96\x0c\xd9\xc8\x24\x9b\x94\x3f\xcd\xb8\x65\x39\x5b\x2c\x03\xab\x67\x5b\xbb\x19\x93\x81\x3f\xb0\xa8\xd1\xe6\x83\x31\x29\x7c\x88\xdb\x1d\xca\x00\x31\x3b\x82\x11\x12\x1b\x60\x23\x47\x5c\xb6\x9d\x6a\xc6\x6c\x11\x16\xa5\x61\x71\x35\x0f\x68\x0c\xc7\x4c\x88\xfe\x99\x05\xed\x07\x87\x80\xe6\xd7\x1b\xcc\x73\x5f\xee\x75\xa9\x44\x4f\x69\x5d\x03\x6a\xa6\xb4\xb9\xe5\x9b\x66\x80\xb6\x31\x29\x67\xf8\xb2\x36\xff\x8b\xee\x60\x31\x6a\x70\xcb\xa0\x31\x2c\x99\x3b\x92\xe3\x0c\xa4\xcb\x11\x8c\x17\x45\xe7\xb5\x78\xc0\xad\x6c\x3a\x7d\x81\x87\x37\x25\x95\xdd\x16\x08\x93\x11\x5f\x11\xb0\x54\xfc\x17\x18\xc9\x67\xbd\xaf\xe9\xbf\x95\xad\x58\x3d\xb5\x93\x96\xd5\x94\x11\x4b\x65\x00\x99\x6e\xef\xf8\x2b\x70\x19\x1e\x52\xfa\x23\x30\xef\xdc\x66\xfa\x36\x3c\xb3\x79\xc9\xc6\x77\x40\x53\x5c\x99\x60\xca\x85\x7c\xfe\x4d\x0a\x88\xbb\xbb\xf2\xe7\xb2\x03\x4b\xb8\x43\x98\x0f\x6f\xa8\x6f\xf6\x02\x33\x5d\x1e\x25\xa6\x13\xc7\xd7\xa4\xef\x7a\x6b\x16\x1c\x25\x82\x23\x9a\xa5\x6f\x5c\x89\x94\xd0\x66\x46\xe0\xaa\x62\xc4\x8b\x54\xe0\x85\x22\x23\x77\x2e\xd4\x4e\x70\x59\x69\x7a\xec\x6b\xc2\x22\x5e\x0e\xda\xc5\x5f\xdb\xff\x1a\x16\xd4\xc6\xde\xf4\xc7\x7d\xdf\x38\xb2\x77\x39\x52\xc8\x11\xff\x14\x5a\xe3\x66\xe2\x16\xc4\x16\x00\x65\x9f\xf7\x8f\x64\xb1\x9e\x35\x4d\x74\xf9\x0a\x61\x90\x7c\x85\xc7\x02\x39\x4f\xe2\xcc\xa4\xf5\xfe\xb5\xb5\x35\x30\xb5\xf4\xc9\xe7\x2f\x5c\x09\x0c\xa4\x64\xa7\xa9\xc3\x95\x14\x37\x35\xfd\xd2\x42\x1d\x07\xe8\xef\xe4\x19\x8a\xd0\x6f\x9d\x23\x0a\x91\xd5\xfb\x50\xef\xc0\x2c\x2d\xb6\xed\x4a\xd7\x50\x31\x9e\x3e\x67\x2f\x52\x13\xdd\xae\x92\xc3\xfc\xec\x0e\xd5\xdf\xf5\x22\xd0\xca\xb8\x9b\xb8\x25\x32\x54\x25\x55\x29\xb3\x2c\xf5\x38\x5c\x90\x01\x42\x1b\x92\xcc\x67\x16\x3c\xc3\x95\x23\x5e\x40\x8a\x46\x3f\xa3\x1e\xef\xd0\x74\x2d\xe5\x13\x9b\xba\x2d\xc1\x41\xff\xf7\xbe\x17\x5f\x41\x8c\xf7\xcf\x89\xdd\x4f\x47\x4a\x2f\xc6\x1d\x0f\x38\x51\xf3\x4d\x52\xc4\x9b\xbd\x12\x26\xbd\x08\x96\x30\x71\xf5\xd4\x91\x8f\x7e\x12\xd0\x02\x8d\x32\x1b\x3d\x6b\xd4\x36\xe0\x2f\x6e\x55\xcc\x48\xc6\x13\xe3\x29\x91\x6c\xb8\x54\x52\x44\xbb\xa3\x77\x90\x8d\x6b\xcf\xeb\x7e\xd6\x62\x08\xe5\x07\xb4\xdf\xd8\xf2\xcb\xa5\xa3\xd4\x2f\x3a\x4e\x4d\xa8\x0e\xba\x19\x9c\xc8\xae\xc8\xa4\x0f\x25\x47\x10\xd8\x11\x83\x24\x96\x75\x0c\x4b\x34\xc3\x6b\x74\x6b\xf3\xcb\x60\xda\xe8\x1e\x73\xda\x95\x2e\xe4\x1c\x2a\x40\x23\x72\xe5\x23\x9f\xd2\xd4\x07\xd8\xe9\x1b\x9e\x57\xb4\x75\x8a\xac\xe5\x9d\xf7\xd8\x3d\x38\xad\x17\x71\x6c\xae\x50\x9d\xdb\x24\x27\xcb\xcf\x84\x7a\x7b\x10\x8e\xdb\x4b\x3a\x70\x81\x71\xe7\x31\xa9\x77\x02\xb6\x37\x7c\x79\x34\xec\x9b\x4c\x74\x46\xea\x03\x1e\x62\xbb\x39\xa6\xe2\xd3\x20\xea\xa8\xb5\x91\x0b\x14\xd8\x82\x6c\x20\x4f\x7a\x4a\xb2\x36\x24\x0b\x48\x60\x66\xb2\x7b\xe7\xf6\x9b\x84\x42\xff\xc8\x03\xc4\xed\x7f\xdd\x23\xef\x2f\xa0\x33\x7d\xb8\x42\x68\x1c\x0f\x8e\xf2\xba\xdc\xc0\x81\x13\xfe\x80\x61\xab\x31\xfa\xf9\x89\xba\x55\x51\x2a\x5f\x0e\x7b\x93\x6d\x63\xc0\xcc\xed\x58\xef\x82\xcf\x0c\x2d\x29\xfb\x23\x18\xe1\x2b\x56\xd4\x91\x2e\x9c\x4f\x96\xdb\x02\xca\x84\x49\x29\x4d\xa3\x3f\x8f\xce\x55\x07\xd3\xeb\x99\x23\x90\x72\xe2\xb2\xe1\x2e\x33\x55\x35\x3b\xf4\x90\x18\x2e\xeb\x7a\xa1\x03\xc9\x77\xc0\x67\x01\xca\xa0\xb7\x44\x55\x11\x66\x89\xb9\xdb\xe9\x0a\xd1\xd1\x85\x39\xd5\xe4\x1a\xda\x0f\x2f\x7f\x1e\x6c\x9a\xa6\x7a\xa2\xaa\x41\x6f\x84\x9f\x18\xc6\xfb\xd2\x2d\xcb\xe0\x3a\xf7\x8b\x15\xce\xdd\xda\x0d\x1b\xbb\xdd\x33\x62\x76\x9f\x50\xe9\x86\x80\xfc\xe5\x4b\x7e\x84\xa9\x4f\x32\x46\x66\xa6\x96\x7f\xc8\x0f\x2e\x5e\x9c\xa9\x4f\x61\x7f\x01\x16\x3a\x16\x01\xc6\x22\x19\xfc\xb5\x67\x82\x66\xe1\xc6\x18\xca\x89\x47\xe7\x4a\x2a\xde\x5e\x40\xda\xeb\x8d\xf5\x62\x0f\x36\x5f\x66\xae\xae\x88\xaf\xb4\x2d\x70\xce\x41\x45\xeb\xaf\xa7\x58\xac\xcc\x19\xe2\x78\xbc\x9f\x45\xda\x63\x85\x9c\x46\xeb\xdf\x7f\x0e\xe2\xe3\xfd\x9d\xd5\x41\x4d\xeb\x86\x07\xd7\xec\x55\x65\x68\x30\x1d\x26\x50\x78\x0b\xe7\xf7\x5f\xcd\xf9\x24\x41\xcb\x98\xf2\x36\x48\xb5\xed\x3f\x3a\x5e\x2c\x96\xda\xaa\xc1\xda\x0c\xe4\x6e\x1d\x85\xb5\xc2\xcf\xf4\xd9\xa9\x16\x7d\x58\x15\xfc\xc6\x6b\xbd\x94\x5f\x0b\x55\x87\x41\x95\xac\xbb\xbf\xec\xf8\x0f\x26\xb7\x0a\x4c\xf6\x62\xf9\x55\xea\x4e\x01\x35\x1f\xaa\x9f\x53\x00\xcf\x35\xc7\x2a\xe6\x09\x15\x06\x2c\xef\xf7\x89\x1e\x76\x77\x51\x91\x96\xbf\x81\x33\x33\x36\x1d\xbb\xee\xcf\xe8\xdc\x12\x7a\x94\xc2\x0b\x9f\xaf\x03\x6d\x71\xa8\x16\xb1\xab\x72\xe8\x20\x19\xd0\x69\x9b\x01\x2a\x12\x60\x22\xcc\x70\x31\x36\x63\x8d\xc8\x67\x49\x05\xb4\x10\x0e\x9b\x8d\x62\xab\xde\xb1\x3c\x84\xbe\x30\x0b\x49\xae\x44\xfc\xea\x4b\x89\x2f\xbf\x65\x64\xcd\xb0\x12\x69\x9e\x9f\xd1\xc9\x64\xf2\xa9\xd7\xf3\x12\x65\x6b\x47\xe6\x91\x66\x82\xb0\x04\x41\x57\xf4\xe2\xdf\xb9\xd5\xf5\x5d\x68\x49\x5d\x76\x3c\x80\x7d\x8e\xc6\x93\x2e\x56\x0c\x91\x3a\xb7\x6f\xc3\xff\x82\x02\x02\xae\x44\xfa\xcb\xda\x1a\xa1\x53\x10\x8f\x16\x8e\x42\x1b\xdb\x1a\x93\xc3\x82\xed\xf0\x8c\xc7\x9c\x5b\x71\x1a\xe1\x3c\x6e\xb8\xe5\x43\x93\xf4\x99\x8e\xc9\x9a\x95\xae\x7f\x85\x99\x9e\x78\x43\x9b\xa6\x03\x44\x55\x45\xf2\x1f\xfc\x85\x62\x07\xee\xa9\x45\x5f\xb1\x4c\x0a\xd9\x67\xf2\x2c\xf0\xf5\x72\xdb\xa5\xca\xc7\x45\x0e\x4e\x52\xce\x71\x3c\xe8\x71\xfc\x76\xd7\xad\xca\x01\x26\x0e\xa7\x08\xda\x43\x40\x01\x80\x5b\xcf\xd1\xf3\xcc\xd1\xc6\x08\x4d\x5e\xc2\xa2\x9f\x00\xe7\x7a\xa4\xf9\x1d\xee\x13\xee\xb5\xfc\xce\x8e\x82\xa1\x03\xb3\x7f\x6c\x4f\x25\x25\x95\x1e\xaa\xd4\x49\xa0\x8a\x75\xd2\xf3\x41\xf1\x7b\x2c\xbd\xf1\x73\x0d\x19\x2e\xf7\x58\xa6\xe8\xf8\x83\xd8\x8c\x07\xf2\xef\x41\xb4\x43\xda\xa7\x95\x00\x02\x44\x26\x3d\x2d\x30\xc7\x62\xf6\xfe\xcf\x3b\xb6\x7f\x8d\xda\x6c\xa7\xd9\xd4\x0a\x18\xe1\x86\x26\x85\x3c\x50\x94\xef\x66\xed\x64\x61\x7e\xe9\x38\x8c\x03\x7a\x74\xa9\x61\x69\x2d\x44\x70\x79\x6a\x68\x3f\x88\x0e\xb9\x04\x10\x60\xac\xee\x4e\x76\x18\xb7\x17\xa0\x57\x95\x1e\x1c\x66\x23\x62\xfd\x26\x70\x9b\xd8\x0a\xf3\x9f\xe5\xc1\x1f\x96\x54\xc2\x65\x5b\x21\xed\xcc\x32\x42\x84\x91\xdc\x5c\x10\x1e\x6a\x22\x2d\x2e\x51\xb9\xf2\x3d\x96\x0f\x12\x74\x8d\x9a\x5f\xc3\xe2\xf6\xc9\x53\x97\x23\x47\x65\x6a\x9f\x78\x7e\xe5\xbd\x19\x64\x45\xaa\x2e\xaf\x8f\x8f\xbd\xaf\xaa\x34\xed\x1b\x05\x5a\x09\xb3\x71\x8d\x8b\x3c\x8f\x1c\xfe\x5a\xc5\x3c\xf3\x7c\x9f\xa7\x6f\xe7\xac\x70\x87\x15\x7b\xdb\xa5\x23\xe2\xa9\xe7\x10\xb3\xf5\xb5\xa7\xff\x9b\x8b\x1f\x61\x2d\x9b\xbb\xb1\x10\x4f\x9d\x6d\xf9\x87\x87\xe9\x25\x23\xfe\x1d\x30\x10\x1e\xdf\x53\xd8\x9d\xf4\xa3\xc4\x2b\xd3\xbd\x27\x37\xf3\xaf\xe0\x15\x4e\xe1\xe8\xd9\x3d\x9a\x27\x75\xd8\x4c\x68\x6d\xac\x89\x84\x51\x2c\xf9\x55\x96\x23\xac\x6f\xe4\xef\x79\xf7\xb3\x4b\x21\x96\x9a\x8a\x8a\x72\x43\xf4\x1e\x11\xa5\x8d\xe3\xe4\xe1\x8f\x33\x85\xee\x70\x03\xc7\x9f\xa5\x27\xb9\x4e\x72\x33\x8f\x2a\x1c\x4c\x45\xff\x04\x5a\x61\x1f\xe1\xdb\x3c\xdd\xa0\xfe\xf1\x21\xf7\x8c\x52\x75\x34\xda\xb2\x66\xdd\x3f\xf6\xf7\x3d\x6b\x6b\xc0\x39\x98\x30\x98\x30\x51\x0a\x57\xeb\x0e\x2d\x74\xde\x38\x11\x27\x75\xb8\x77\x5d\x99\xc1\x5e\x38\xd0\xe7\x09\xf3\x97\x49\x2f\xc6\x46\x2f\x6e\x57\xa7\xff\x65\xd2\x5b\xe9\xeb\x75\x30\xa5\xef\x4f\xc8\x07\xff\x9e\x09\xb7\x01\xb5\x9d\x25\x0b\x54\x1a\x54\x6d\xb7\x5d\x11\x1f\x56\x0a\x47\x21\x7c\x12\x2c\x6b\x29\x28\xd5\xa0\xa0\x47\xa9\x88\xb3\xac\x51\x31\xdf\x00\x96\xc1\x5b\xbc\x39\x8d\x0e\x69\x65\x84\x1b\x17\xf4\x91\x63\x58\x85\xd8\x98\x7a\x04\xbb\xe2\x48\x21\x57\xb5\xca\x88\x3c\x76\x7e\xa1\x56\xb4\xe1\x78\x4b\xa1\xb7\xcf\xeb\x34\x3a\x71\xeb\x03\xeb\xce\x88\x79\x2a\xed\x8b\x18\xe7\xfd\x88\x0c\xd5\x93\x4c\xbe\x55\x52\x3c\x1b\x7c\x82\xb3\xed\x99\xb3\xde\x90\xa4\x79\xf2\x51\xe1\x90\x4a\xc8\x6f\x28\x02\x19\x57\xef\x35\x42\x1d\x3c\x8a\x2d\x39\xee\xe7\x31\x4e\x3f\x3f\x94\x5e\xa2\xfb\x5f\xf7\xf6\xc0\x9b\xa4\x72\xff\x3e\x56\x2c\x61\x68\xb0\xc1\xf8\x43\x65\x8b\xb1\x80\xeb\xfc\xf9\x54\xe5\x8e\x63\x3f\xb1\x61\x27\x51\xbf\x36\x0b\x15\xfe\x67\xca\x59\x4f\x5a\xae\x34\x23\x3a\x3b\x58\xee\xba\x56\x2f\xad\x63", 4096); syscall(SYS_serialize2, /*a=*/0x20001380ul); break; case 9: syscall(SYS_test, /*a0=*/0x20fff000ul, /*a1=*/0, /*a2=*/0x1000, /*a3=*/0x800, /*a4=*/0x400ul, 0); break; case 10: memcpy((void*)0x20000000, "\'/+,\000", 5); *(uint8_t*)0x20000040 = 0x1c; *(uint8_t*)0x20000044 = 1; STORE_BY_BITMASK(uint32_t, , 0x20000044, 3, 8, 4); syz_compare(/*want=*/0x20000000, /*want_len=*/5, /*got=*/0x20000040, /*got_len=*/8); break; case 11: syz_compare_int(/*n=*/2, /*v0=*/0xffff, /*v1=*/0x100, 0, 0); break; case 12: syz_errno(/*v=*/0xfffffff9); break; case 13: memcpy((void*)0x20000080, "\xfe\xaa\x0e\x27\x8d\x40\x3f\x03\xc2\xbf\x80\x48\x86\x76\x75\x4e\x43\x50\x32\xf8\x1e\xee\x19\xff\xa3\xf4\x8c\xa7\x58\xe8\x2b\x07\x72\x89\x83\x4e\xb7\x9b\xe6\x7b\x6c\xf4\x37\xe2\xd9\xb1\x01\xf3\x97\xd7", 50); syz_execute_func(/*text=*/0x20000080); break; case 14: syz_exit(/*status=*/0xffffffc0); break; case 15: syz_mmap(/*addr=*/0x20ffc000, /*len=*/0x1000); break; case 16: syz_sleep_ms(/*ms=*/1); break; case 17: syz_test_fuzzer1(/*a=*/0xd, /*b=*/0xc, /*c=*/0xb); 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; } :314:3: error: call to undeclared function 'syscall'; ISO C99 and later do not support implicit function declarations [-Werror,-Wimplicit-function-declaration] syscall(SYS_breaks_returns); ^ 1 error generated. compiler invocation: c++ [-o /tmp/syz-executor3764203995 -DGOOS_test=1 -DGOARCH_64=1 -DHOSTGOOS_openbsd=1 -x c - -m64 -lutil -O2 -pthread -Wall -Werror -Wparentheses -Wunused-const-variable -Wframe-larger-than=16384 -Wno-array-bounds -Wno-unused-but-set-variable -Wno-unused-command-line-argument -no-pie -fno-exceptions] --- FAIL: TestGenerate/test/64/5 (1.05s) csource_test.go:150: opts: {Threaded:true Repeat:true RepeatTimes:0 Procs:4 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: breaks_returns() (fail_nth: 1) breaks_returns() (async) test$end0(&(0x7f0000000000)={0x20, 0x8, 0x7, 0x7fffffff}) (rerun: 4) test$length9(&(0x7f0000000040)={&(0x7f0000ffe000/0x2000)=nil, 0x2000}) test$recur1(&(0x7f0000001280)={&(0x7f0000001240)={&(0x7f0000000600)={0x0, &(0x7f00000005c0)={&(0x7f0000000080), 0x0, &(0x7f0000000180)={&(0x7f00000000c0), &(0x7f0000000100), &(0x7f0000000140)}, &(0x7f00000002c0)={&(0x7f00000001c0), &(0x7f0000000200), &(0x7f0000000240), &(0x7f0000000280)}, 0x0, &(0x7f0000000580)={&(0x7f0000000300), 0x0, &(0x7f0000000400)={&(0x7f0000000340), &(0x7f0000000380), 0x0, &(0x7f00000003c0)}, &(0x7f0000000540)={&(0x7f0000000440), &(0x7f0000000480), &(0x7f00000004c0), &(0x7f0000000500)}}}}, &(0x7f0000001200)={&(0x7f0000000680)={&(0x7f0000000640)}, &(0x7f00000009c0)={0x0, &(0x7f0000000980)={&(0x7f0000000700)={&(0x7f00000006c0)}, 0x0, &(0x7f0000000840)={&(0x7f0000000740), &(0x7f0000000780), &(0x7f00000007c0), &(0x7f0000000800)}, &(0x7f0000000940)={&(0x7f0000000880), &(0x7f00000008c0), &(0x7f0000000900)}}}, &(0x7f0000000ac0)={&(0x7f0000000a00), 0x0, &(0x7f0000000a40), &(0x7f0000000a80)}, &(0x7f0000000bc0)={&(0x7f0000000b00), 0x0, &(0x7f0000000b40), &(0x7f0000000b80)}, &(0x7f0000000e80)={0x0, &(0x7f0000000c00), &(0x7f0000000d40)={&(0x7f0000000c40), &(0x7f0000000c80), &(0x7f0000000cc0), &(0x7f0000000d00)}, &(0x7f0000000e40)={&(0x7f0000000d80), &(0x7f0000000dc0), &(0x7f0000000e00)}}, &(0x7f00000011c0)={&(0x7f0000000f00)={&(0x7f0000000ec0)}, &(0x7f0000000f40), &(0x7f0000001040)={&(0x7f0000000f80), &(0x7f0000000fc0), 0x0, &(0x7f0000001000)}, &(0x7f0000001180)={&(0x7f0000001080), &(0x7f00000010c0), &(0x7f0000001100), &(0x7f0000001140)}}}}}) foo$anyres(&(0x7f00000012c0), &(0x7f0000001300), &(0x7f0000001340)) breaks_returns() test$length10(&(0x7f0000ffe000/0x1000)=nil, 0x1000, 0x1000, 0x800, 0x400) serialize2(&(0x7f0000001380)="b3eb980b12af03684832ff0d1367b05ded250f350bffb9c67243a4a26cac6a5664ba93ce0c5ffca81d81c8a8a18416566c33d00a999baf45ad351740795a1a3a7f59abe59ac218f6e204dc1329f158d36e4d0c86200e4d8b5dbda275d20e5315c52e12895663d7e5f4ad1f0d1a8ac3014eb4603f30445a975d0a77feec81e4e99bd71acad646cb04b60819e8ec24a8a2db3909688bb284162872bc715c3ef9863a13d60f4e3acd6954f1ff268eee5cbe35465b4e65c60dbf3da35689af39d3dc0d9d2226406147feccad22fd6d9255a8b92178c6afa7aa2decd0ae46ec45c9bbf6e53fead2d682d715175ba608f84ba14d9a28c5e47ebd829a76bca0c2821b0e29915a2889e001a201524fcf6245adcf4d326d69176d7fa27ed8d593e25eef7afaa1479e506348f0a6753697034b9c609f465146f9569ddd56aff7fc2fadefb89fa2d2d4b838e7d63200097b77ed52d9c31c98fd76f9467ff5116ca00f85846a91bef69419aac6ebc7ddfba2b268bfe262f6f55d52a647af8a0b45391ba9df09e25664019b4107a231ee761a81960c1198f5209e3c3707d768b8d099eee563055a88c3049f5addf8747a2dfd6f3b43c5c25df50c8a4b77872a8d8905dfa0885adddb8fd49e29735262b1c94ea59ce0cea5a061fbb042c7e301e29212f2f1476e7c25317cb5fa81774d78b20efea377d4fbfdb190cc1fd58f568e6ac19be05d99c8362428f59f47311abf178f6b083645ccf013624a418b8d9fecfa26f7dcba32b4395449c0d1ef6fa37f33fa5ea60192bb5ce92e458d90cedf0e85787811c64bd0436f4c5ca01facae7b793d696442982841f6e83f603d5806742a4ec7acb406c55b27aaad7a628eb2f41f8007c0e3728fa1f40194d271392f6c7f684e1dbe239cf6c501bd4f4f643153b4e7bd32ff4b3db361fe9c4a87b4d7492eef749bd18c6a44daba60542deadc45cbfa8a46b8d252670ee312ede53bb516f0000cc25009f4d4e74c6f61306c344a9ba48fa2a2d70f3e1ac018f9c0d15ddaafb5cf89867ca6bf6b37427c477eec1acb7f369b9422a8858ebc2f3a10a9e90aea0f4df82ab2e8d10dffcb99892a8155b4f8aff79e93df24848aef035e85d57048c7c93fe544e3ef1754c49240573ac1ea67b94d8574542dff03f06bfedc3f51c620402861f777fa47bc05c865a6e63ab48e70c4b314e6f80953cb1a22b9226a1b3cc084736b2a826a7fc841023eaa56448d94757b013833c53e182c1de066878701def73bdd13d7404565dcc317ae650383b3ea7d5e6aed3dbf575a2ca5132850e394adeb9fee108719378320b9b4e0c5a6ddc77594a8024151b3a6d322fb48e5db7f0fb04a9149fb278ed9d8ad19b1b8a268cba4b300e93139f2b611bb777983b74d6fac852d743fb5011f9bf2bfd3f4314cdc9b1e71c65ea76e4953af36bcb4b9649aa0eeaa6c892e170d3285241708594a91bdec0fdedd974b4220b4b70a5a939938527c6e6ef823b36256c1369fbeed64a90e8be545eac8968c764139ccd4dc5901bc019985aab5fe71e24c55f260c4c4b7fd5cf5288b13dcda57bb3450fb4f6ece5e7c4a0a21fff3124c3c783afa8744f6ca3f5c3de5b4c154cea12ba47c3c694ea8303a8d7c8510089cc1609a82e6a7e089f63afd0585d3f5aba22634dd7c9579364da1d93a995f7706da208d65b948d74613e0e4f8c77974db272edf2f8d5291cd3af0d0adeecc163585161bc8ec9b62823feb864a8ffa00120719981907c027ef41a9c5ebef88411b420e2c6041e94dbae9388f72db0089d4733cedc368cd1d6805634c80bffb9c3430f402b73fff1d6cf355b9509c1bfd48e79b1417141c9b9ab1c0f62a4cf97bae55fe53afea353c1061bb882e101d7434b39be6558e77ea26b44b507c2c44dd0a625c044b0a78ee2364862842d9ef0f1bcb563f01adbdee69e52d022856ad6504d811e849ab470d613da0ce951003529822adc102c4c62a3aad2f7392aa4601ab0863150c358aeec2fc5e3a906df00fe5db1226bac20f08d701f181b90a4d389b91dddbc24e40488e1c46ab2d05b4823029453cc9253ebc4370964a64c1087cb3857d736dc303ce93066db60fc61be9f79c0c9e1ca7e4d73f95172bcbaf6cbd18c06d1c1cccf23d85592ee6844349b5e72e6a5e10f5eed5eca8f9c0a8a95e214389530194a03043b21108a49e3466cebe3078dadd364faf67fe3c51e1df75f4aa619854b780e0c04e9a9bf2301c030a3626ce820afc59e1c13ed6fa3e3030b966f3878f17a16a1209987aa9f7eb76988d401f10bdb0a419ddced1105659e6219440e35e984c3e7ada78c30a9a7399ce1abce36c7ce3e39a89cfac98f249735914cfc16baf666ed4b51ff2193c2836bd43e5d537f2653646f05c8109ef8edfd35b3acd73eb7e790c64cc2a7c9596e4a5f3d0e2d92b301c9ec5d82768ab211801bea96340c30e1b09fc9fae7cff2615d61ede29f9b0d712abffcd93ea3b20ceb7aa57368e84c3876ecd7a931cb19ea517603ef44a98b246288b27336980e4bb509007bcd01858cd35e9cd8df288221d3a487268828fe732fd7da2e2b6926b4a9b54d54b41c77998d1ef538487e1dcdf87fcc3fab25c77a7cf01f86087e2b95e1e4d45522fc3f44a14cbfacd48d63eba042ca3e14af8e5bed3186de4fb69f387aac88242d64fbdcd110c338821ad72562f092f55fa73b5e7d92c9b6fee5794ef4823190f9257b11ff4fc4457dba90fbda80dafb517fa27519489016f6f458006401f9fea20426a545aab7784c4e3df9dfa9fb279cf21a86ce3f292cf52d343fce97e05b92c84723d7ddc65a7bc79ae73b1246b6b65048a3855b62b1340264627c1df82f3352f3ac6d5a75e0823572c2fb392bd7ef15193cc5f6fbefc4d27ffd741a93d1ab799d9fbd545d2d2606e3566eb79d54485f5561510a57f17f2b3909ed1bfc5e5d64692b6c503eb58f17cae554137607467e8ab51d867067f50374e99f74869e0177f4eb52c2930dfe5ca2b6e454db8a36225b2c936bdc5bb75f1355ffd8d7fa476eb282871e52111832fcfc246da415c200d9e6c350f49846a0022660191a2840d7a53753674c78ea00a5b9e266ff29b1a8fb193e132d23f960cd9c8249b943fcdb865395b2c03ab675bbb1993813fb0a8d1e68331297c88db1dca00313b8211121b6023475cb69d6ac66c1116a56171350f680cc74c88fe9905ed078780e6d71bcc735fee75a9444f695d036aa6b4b9e59b6680b6312967f8b236ff8bee60316a70cba0312c993b92e30ca4cb118c1745e7b578c0ad6c3a7d8187372595dd160893115f11b054fc1718c967bdafe9bf95ad583db59396d594114b6500996eeff82b70191e52fa2330efdc66fa363cb379c9c67740535c9960ca857cfe4d0a88bbbbf2e7b2034bb843980f6fa86ff602335d1e25a613c7d7a4ef7a6b161c2582239aa56f5c8994d06646e0aa62c48b54e0852223772ed44e7059697aec6bc2225e0edac55fdbff1a16d4c6def4c77ddf38b2773952c811ff145ae366e216c41600659ff78f64b19e354d74f90a61907c85c702394fe2cca4f5feb5b53530b5f4c9e72f5c090ca464a7a9c395143735fdd2421d07e8efe4198ad06f9d230a91d5fb50efc02c2db6ed4ad750319e3e672f5213ddae92c3fcec0ed5dff522d0cab89bb8253254255529b32cf5385c9001421b92cc67163cc395235e408a463fa31eefd0742de5139bba2dc141fff7be175f418cf7cf89dd4f474a2fc61d0f3851f34d52c49bbd1226bd08963071f5d4918f7e12d0028d321b3d6bd436e02f6e55cc48c613e329916cb8545244bba377908d6bcfeb7ed66208e507b4dfd8f2cba5a3d42f3a4e4da80eba199cc8aec8a40f254710d811832496750c4b34c36b746bf3cb60dae81e73da952ee41c2a402372e5239fd2d407d8e91b9e57b4758aace59df7d83d38ad17716cae509ddb2427cbcf847a7b108edb4b3a708171e731a97702b6377c7934ec9b4c7446ea031e62bb39a6e2d320eaa8b5910b14d8826c204f7a4ab236240b486066b27be7f69b8442ffc803c4ed7fdd23ef2fa0337db842681c0f8ef2badcc08113fe8061ab31faf989ba55512a5f0e7b936d63c0cced58ef82cf0c2d29fb2318e12b56d4912e9c4f96db02ca8449294da33f8fce5507d3eb99239072e2b2e12e3355353bf490182eeb7aa103c977c06701caa0b74455116689b9dbe90ad1d18539d5e41ada0f2f7f1e6c9aa67aa2aa416f849f18c6fbd22dcbe03af78b15ceddda0d1bbbdd3362769f50e98680fce54b7e84a94f324666a6967fc80f2e5e9ca94f617f01163a1601c62219fcb5678266e1c618ca8947e74a2ade5e40daeb8df5620f365f66aeae88afb42d70ce4145ebafa758accc19e278bc9f45da63859c46ebdf7f0ee2e3fd9dd5414deb8607d7ec556568301d2650780be7f75fcdf92441cb98f23648b5ed3f3a5e2c96daaac1da0ce46e1d85b5c2cff4d9a9167d5815fcc66bbd945f0b55874195acbbbfecf80f26b70a4cf662f955ea4e01351faa9f5300cf35c72ae60915062ceff7891e7677519196bf813333361dbbeecfe8dc127a94c20b9faf036d71a816b1ab72e82019d0699b012a126022cc703136638dc8674905b4100e9b8d62abdeb13c84be300b49ae44fcea4b892fbf6564cdb012699e9fd1c964f2a9d7f312656b47e6916682b0044157f4e2dfb9d5f55d68495d763c807d8ec6932e560c913ab76fc3ff820202ae44facbda1aa153108f168e421bdb1a93c382edf08cc79c5b711ae13c6eb8e54393f4998ec99a95ae7f85999e78439ba603445545f21ffc856207eea9455fb14c0ad967f22cf0f572dba5cac7450e4e52ce713ce871fc76d7adca01260ea708da434001805bcfd1f3ccd1c6084d5ec2a29f00e77aa4f91dee13eeb5fcce8e82a103b37f6c4f2525951eaad449a08a75d2f341f17b2cbdf1730d192ef758a6e8f883d88c07f2ef41b443daa795000244263d2d30c762f6fecf3bb67f8dda6ca7d9d40a18e18626853c5094ef66ed64617ee9388c037a74a961692d4470796a683f880eb9041060acee4e7618b717a057951e1c662362fd26709bd80af39fe5c11f9654c2655b21edcc32428491dc5c101e6a222d2e51b9f23d960f12748d9a5fc3e2f6c953972347656a9f787ee5bd196445aa2eaf8f8fbdafaa34ed1b055a09b3718d8b3c8f1cfe5ac53cf37c9fa76fe7ac7087157bdba523e2a9e710b3f5b5a7ff9b8b1f612d9bbbb1104f9d6df98787e92523fe1d30101edf53d89df4a3c42bd3bd2737f3afe0154ee1e8d93d9a2775d84c686dac8984512cf9559623ac6fe4ef79f7b34b21969a8a8a7243f41e11a58de3e4e18f3385ee7003c79fa527b94e72338f2a1c4c45ff045a611fe1db3cdda0fef121f78c527534dab266dd3ff6f73d6b6bc03998309830510a57eb0e2d74de38112775b8775d99c15e38d0e709f397492fc6462f6e57a7ff65d25be9eb7530a5ef4fc807ff9e09b701b59d250b541a546db75d111f560a47217c122c6b2928d5a0a047a988b3ac5131df0096c15bbc398d0e6965841b17f491635885d8987a04bbe2482157b5ca883c767ea156b4e1784ba1b7cfeb343a71eb03ebce88792aed8b18e7fd880cd5934cbe55523c1b7c82b3ed99b3de90a479f251e1904ac86f28021957ef35421d3c8a2d39eee7314e3f3f945ea2fb5ff7f6c09ba472ff3e562c6168b0c1f843658bb180ebfcf954e58e633fb1612751bf360b15fe67ca594f5aae34233a3b58eeba562fad63") test$length10(&(0x7f0000fff000/0x1000)=nil, 0x1000, 0x1000, 0x800, 0x400) syz_compare(&(0x7f0000000000)='\'/+,\x00', 0x5, &(0x7f0000000040)=@bf5={0x1c, {0x1, 0x3}}, 0x8) syz_compare_int$2(0x2, 0xffff, 0x100) syz_errno(0xfffffff9) syz_execute_func(&(0x7f0000000080)="feaa0e278d403f03c2bf80488676754e435032f81eee19ffa3f48ca758e82b077289834eb79be67b6cf437e2d9b101f397d7") syz_exit(0xffffffc0) syz_mmap(&(0x7f0000ffc000/0x1000)=nil, 0x1000) syz_sleep_ms(0x1) syz_test_fuzzer1(0xd, 0xc, 0xb) 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 #ifndef SYS_breaks_returns #define SYS_breaks_returns 0 #endif #ifndef SYS_foo #define SYS_foo 0 #endif #ifndef SYS_serialize2 #define SYS_serialize2 0 #endif #ifndef SYS_test #define SYS_test 0 #endif 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[] = "./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 { pthread_mutex_t mu; pthread_cond_t cv; int state; } event_t; static void event_init(event_t* ev) { if (pthread_mutex_init(&ev->mu, 0)) exit(1); if (pthread_cond_init(&ev->cv, 0)) exit(1); ev->state = 0; } static void event_reset(event_t* ev) { ev->state = 0; } static void event_set(event_t* ev) { pthread_mutex_lock(&ev->mu); if (ev->state) exit(1); ev->state = 1; pthread_mutex_unlock(&ev->mu); pthread_cond_broadcast(&ev->cv); } static void event_wait(event_t* ev) { pthread_mutex_lock(&ev->mu); while (!ev->state) pthread_cond_wait(&ev->cv, &ev->mu); pthread_mutex_unlock(&ev->mu); } static int event_isset(event_t* ev) { pthread_mutex_lock(&ev->mu); int res = ev->state; pthread_mutex_unlock(&ev->mu); return res; } static int event_timedwait(event_t* ev, uint64_t timeout) { uint64_t start = current_time_ms(); uint64_t now = start; pthread_mutex_lock(&ev->mu); for (;;) { if (ev->state) break; uint64_t remain = timeout - (now - start); struct timespec ts; ts.tv_sec = remain / 1000; ts.tv_nsec = (remain % 1000) * 1000 * 1000; pthread_cond_timedwait(&ev->cv, &ev->mu, &ts); now = current_time_ms(); if (now - start > timeout) break; } int res = ev->state; pthread_mutex_unlock(&ev->mu); return res; } #define BITMASK(bf_off,bf_len) (((1ull << (bf_len)) - 1) << (bf_off)) #define STORE_BY_BITMASK(type,htobe,addr,val,bf_off,bf_len) *(type*)(addr) = htobe((htobe(*(type*)(addr)) & ~BITMASK((bf_off), (bf_len))) | (((type)(val) << (bf_off)) & BITMASK((bf_off), (bf_len)))) static long syz_mmap(volatile long a0, volatile long a1) { return (long)mmap((void*)a0, a1, PROT_READ | PROT_WRITE, MAP_ANON | MAP_PRIVATE | MAP_FIXED, -1, 0); } static long syz_errno(volatile long v) { errno = v; return v == 0 ? 0 : -1; } static long syz_exit(volatile long status) { _exit(status); return 0; } static long syz_sleep_ms(volatile long ms) { sleep_ms(ms); return 0; } static long syz_compare(volatile long want, volatile long want_len, volatile long got, volatile long got_len) { if (want_len != got_len) { errno = EBADF; goto error; } if (memcmp((void*)want, (void*)got, want_len)) { errno = EINVAL; goto error; } return 0; error: return -1; } static long syz_compare_int(volatile long n, ...) { va_list args; va_start(args, n); long v0 = va_arg(args, long); long v1 = va_arg(args, long); long v2 = va_arg(args, long); long v3 = va_arg(args, long); va_end(args); if (n < 2 || n > 4) return errno = E2BIG, -1; if (n <= 2 && v2 != 0) return errno = EFAULT, -1; if (n <= 3 && v3 != 0) return errno = EFAULT, -1; if (v0 != v1) return errno = EINVAL, -1; if (n > 2 && v0 != v2) return errno = EINVAL, -1; if (n > 3 && v0 != v3) return errno = EINVAL, -1; return 0; } static void loop(); static int do_sandbox_none(void) { loop(); return 0; } static void fake_crash(const char* name) { exit(1); exit(1); } static long syz_test_fuzzer1(volatile long a, volatile long b, volatile long c) { if (a == 1 && b == 1 && c == 1) fake_crash("first bug"); if (a == 1 && b == 2 && c == 3) fake_crash("second bug"); return 0; } 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 < 18; 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(); } void execute_call(int call) { switch (call) { case 0: inject_fault(1); syscall(SYS_breaks_returns); break; case 1: syscall(SYS_breaks_returns); break; case 2: *(uint8_t*)0x20000000 = 0x20; *(uint16_t*)0x20000001 = htobe16(8); *(uint32_t*)0x20000003 = htobe32(7); *(uint64_t*)0x20000007 = htobe64(0x7fffffff); syscall(SYS_test, /*a0=*/0x20000000ul, 0, 0, 0, 0, 0); { int i; for(i = 0; i < 4; i++) { syscall(SYS_test, /*a0=*/0x20000000ul, 0, 0, 0, 0, 0); } } break; case 3: *(uint64_t*)0x20000040 = 0x20ffe000; *(uint64_t*)0x20000048 = 0x2000; syscall(SYS_test, /*a0=*/0x20000040ul, 0, 0, 0, 0, 0); break; case 4: *(uint64_t*)0x20001280 = 0x20001240; *(uint64_t*)0x20001240 = 0x20000600; *(uint64_t*)0x20000600 = 0; *(uint64_t*)0x20000608 = 0x200005c0; *(uint64_t*)0x200005c0 = 0x20000080; *(uint64_t*)0x20000080 = 0; *(uint64_t*)0x200005c8 = 0; *(uint64_t*)0x200005d0 = 0x20000180; *(uint64_t*)0x20000180 = 0x200000c0; *(uint64_t*)0x200000c0 = 0; *(uint64_t*)0x200000c8 = 0; *(uint64_t*)0x200000d0 = 0; *(uint64_t*)0x200000d8 = 0; *(uint64_t*)0x20000188 = 0x20000100; *(uint64_t*)0x20000100 = 0; *(uint64_t*)0x20000108 = 0; *(uint64_t*)0x20000110 = 0; *(uint64_t*)0x20000118 = 0; *(uint64_t*)0x20000190 = 0x20000140; *(uint64_t*)0x20000140 = 0; *(uint64_t*)0x20000148 = 0; *(uint64_t*)0x20000150 = 0; *(uint64_t*)0x20000158 = 0; *(uint64_t*)0x20000198 = 0; *(uint64_t*)0x200005d8 = 0x200002c0; *(uint64_t*)0x200002c0 = 0x200001c0; *(uint64_t*)0x200001c0 = 0; *(uint64_t*)0x200001c8 = 0; *(uint64_t*)0x200001d0 = 0; *(uint64_t*)0x200001d8 = 0; *(uint64_t*)0x200002c8 = 0x20000200; *(uint64_t*)0x20000200 = 0; *(uint64_t*)0x20000208 = 0; *(uint64_t*)0x20000210 = 0; *(uint64_t*)0x20000218 = 0; *(uint64_t*)0x200002d0 = 0x20000240; *(uint64_t*)0x20000240 = 0; *(uint64_t*)0x20000248 = 0; *(uint64_t*)0x20000250 = 0; *(uint64_t*)0x20000258 = 0; *(uint64_t*)0x200002d8 = 0x20000280; *(uint64_t*)0x20000280 = 0; *(uint64_t*)0x20000288 = 0; *(uint64_t*)0x20000290 = 0; *(uint64_t*)0x20000298 = 0; *(uint64_t*)0x200005e0 = 0; *(uint64_t*)0x200005e8 = 0x20000580; *(uint64_t*)0x20000580 = 0x20000300; *(uint64_t*)0x20000300 = 0; *(uint64_t*)0x20000588 = 0; *(uint64_t*)0x20000590 = 0x20000400; *(uint64_t*)0x20000400 = 0x20000340; *(uint64_t*)0x20000340 = 0; *(uint64_t*)0x20000348 = 0; *(uint64_t*)0x20000350 = 0; *(uint64_t*)0x20000358 = 0; *(uint64_t*)0x20000408 = 0x20000380; *(uint64_t*)0x20000380 = 0; *(uint64_t*)0x20000388 = 0; *(uint64_t*)0x20000390 = 0; *(uint64_t*)0x20000398 = 0; *(uint64_t*)0x20000410 = 0; *(uint64_t*)0x20000418 = 0x200003c0; *(uint64_t*)0x200003c0 = 0; *(uint64_t*)0x200003c8 = 0; *(uint64_t*)0x200003d0 = 0; *(uint64_t*)0x200003d8 = 0; *(uint64_t*)0x20000598 = 0x20000540; *(uint64_t*)0x20000540 = 0x20000440; *(uint64_t*)0x20000440 = 0; *(uint64_t*)0x20000448 = 0; *(uint64_t*)0x20000450 = 0; *(uint64_t*)0x20000458 = 0; *(uint64_t*)0x20000548 = 0x20000480; *(uint64_t*)0x20000480 = 0; *(uint64_t*)0x20000488 = 0; *(uint64_t*)0x20000490 = 0; *(uint64_t*)0x20000498 = 0; *(uint64_t*)0x20000550 = 0x200004c0; *(uint64_t*)0x200004c0 = 0; *(uint64_t*)0x200004c8 = 0; *(uint64_t*)0x200004d0 = 0; *(uint64_t*)0x200004d8 = 0; *(uint64_t*)0x20000558 = 0x20000500; *(uint64_t*)0x20000500 = 0; *(uint64_t*)0x20000508 = 0; *(uint64_t*)0x20000510 = 0; *(uint64_t*)0x20000518 = 0; *(uint64_t*)0x200005a0 = 0; *(uint64_t*)0x200005a8 = 0; *(uint64_t*)0x20001248 = 0x20001200; *(uint64_t*)0x20001200 = 0x20000680; *(uint64_t*)0x20000680 = 0x20000640; *(uint64_t*)0x20000640 = 0; *(uint64_t*)0x20001208 = 0x200009c0; *(uint64_t*)0x200009c0 = 0; *(uint64_t*)0x200009c8 = 0x20000980; *(uint64_t*)0x20000980 = 0x20000700; *(uint64_t*)0x20000700 = 0x200006c0; *(uint64_t*)0x200006c0 = 0; *(uint64_t*)0x20000988 = 0; *(uint64_t*)0x20000990 = 0x20000840; *(uint64_t*)0x20000840 = 0x20000740; *(uint64_t*)0x20000740 = 0; *(uint64_t*)0x20000748 = 0; *(uint64_t*)0x20000750 = 0; *(uint64_t*)0x20000758 = 0; *(uint64_t*)0x20000848 = 0x20000780; *(uint64_t*)0x20000780 = 0; *(uint64_t*)0x20000788 = 0; *(uint64_t*)0x20000790 = 0; *(uint64_t*)0x20000798 = 0; *(uint64_t*)0x20000850 = 0x200007c0; *(uint64_t*)0x200007c0 = 0; *(uint64_t*)0x200007c8 = 0; *(uint64_t*)0x200007d0 = 0; *(uint64_t*)0x200007d8 = 0; *(uint64_t*)0x20000858 = 0x20000800; *(uint64_t*)0x20000800 = 0; *(uint64_t*)0x20000808 = 0; *(uint64_t*)0x20000810 = 0; *(uint64_t*)0x20000818 = 0; *(uint64_t*)0x20000998 = 0x20000940; *(uint64_t*)0x20000940 = 0x20000880; *(uint64_t*)0x20000880 = 0; *(uint64_t*)0x20000888 = 0; *(uint64_t*)0x20000890 = 0; *(uint64_t*)0x20000898 = 0; *(uint64_t*)0x20000948 = 0x200008c0; *(uint64_t*)0x200008c0 = 0; *(uint64_t*)0x200008c8 = 0; *(uint64_t*)0x200008d0 = 0; *(uint64_t*)0x200008d8 = 0; *(uint64_t*)0x20000950 = 0x20000900; *(uint64_t*)0x20000900 = 0; *(uint64_t*)0x20000908 = 0; *(uint64_t*)0x20000910 = 0; *(uint64_t*)0x20000918 = 0; *(uint64_t*)0x20000958 = 0; *(uint64_t*)0x200009a0 = 0; *(uint64_t*)0x200009a8 = 0; *(uint64_t*)0x20001210 = 0x20000ac0; *(uint64_t*)0x20000ac0 = 0x20000a00; *(uint64_t*)0x20000a00 = 0; *(uint64_t*)0x20000a08 = 0; *(uint64_t*)0x20000a10 = 0; *(uint64_t*)0x20000a18 = 0; *(uint64_t*)0x20000ac8 = 0; *(uint64_t*)0x20000ad0 = 0x20000a40; *(uint64_t*)0x20000a40 = 0; *(uint64_t*)0x20000a48 = 0; *(uint64_t*)0x20000a50 = 0; *(uint64_t*)0x20000a58 = 0; *(uint64_t*)0x20000ad8 = 0x20000a80; *(uint64_t*)0x20000a80 = 0; *(uint64_t*)0x20000a88 = 0; *(uint64_t*)0x20000a90 = 0; *(uint64_t*)0x20000a98 = 0; *(uint64_t*)0x20001218 = 0x20000bc0; *(uint64_t*)0x20000bc0 = 0x20000b00; *(uint64_t*)0x20000b00 = 0; *(uint64_t*)0x20000b08 = 0; *(uint64_t*)0x20000b10 = 0; *(uint64_t*)0x20000b18 = 0; *(uint64_t*)0x20000bc8 = 0; *(uint64_t*)0x20000bd0 = 0x20000b40; *(uint64_t*)0x20000b40 = 0; *(uint64_t*)0x20000b48 = 0; *(uint64_t*)0x20000b50 = 0; *(uint64_t*)0x20000b58 = 0; *(uint64_t*)0x20000bd8 = 0x20000b80; *(uint64_t*)0x20000b80 = 0; *(uint64_t*)0x20000b88 = 0; *(uint64_t*)0x20000b90 = 0; *(uint64_t*)0x20000b98 = 0; *(uint64_t*)0x20001220 = 0x20000e80; *(uint64_t*)0x20000e80 = 0; *(uint64_t*)0x20000e88 = 0x20000c00; *(uint64_t*)0x20000c00 = 0; *(uint64_t*)0x20000c08 = 0; *(uint64_t*)0x20000e90 = 0x20000d40; *(uint64_t*)0x20000d40 = 0x20000c40; *(uint64_t*)0x20000c40 = 0; *(uint64_t*)0x20000c48 = 0; *(uint64_t*)0x20000c50 = 0; *(uint64_t*)0x20000c58 = 0; *(uint64_t*)0x20000d48 = 0x20000c80; *(uint64_t*)0x20000c80 = 0; *(uint64_t*)0x20000c88 = 0; *(uint64_t*)0x20000c90 = 0; *(uint64_t*)0x20000c98 = 0; *(uint64_t*)0x20000d50 = 0x20000cc0; *(uint64_t*)0x20000cc0 = 0; *(uint64_t*)0x20000cc8 = 0; *(uint64_t*)0x20000cd0 = 0; *(uint64_t*)0x20000cd8 = 0; *(uint64_t*)0x20000d58 = 0x20000d00; *(uint64_t*)0x20000d00 = 0; *(uint64_t*)0x20000d08 = 0; *(uint64_t*)0x20000d10 = 0; *(uint64_t*)0x20000d18 = 0; *(uint64_t*)0x20000e98 = 0x20000e40; *(uint64_t*)0x20000e40 = 0x20000d80; *(uint64_t*)0x20000d80 = 0; *(uint64_t*)0x20000d88 = 0; *(uint64_t*)0x20000d90 = 0; *(uint64_t*)0x20000d98 = 0; *(uint64_t*)0x20000e48 = 0x20000dc0; *(uint64_t*)0x20000dc0 = 0; *(uint64_t*)0x20000dc8 = 0; *(uint64_t*)0x20000dd0 = 0; *(uint64_t*)0x20000dd8 = 0; *(uint64_t*)0x20000e50 = 0x20000e00; *(uint64_t*)0x20000e00 = 0; *(uint64_t*)0x20000e08 = 0; *(uint64_t*)0x20000e10 = 0; *(uint64_t*)0x20000e18 = 0; *(uint64_t*)0x20000e58 = 0; *(uint64_t*)0x20000ea0 = 0; *(uint64_t*)0x20000ea8 = 0; *(uint64_t*)0x20001228 = 0x200011c0; *(uint64_t*)0x200011c0 = 0x20000f00; *(uint64_t*)0x20000f00 = 0x20000ec0; *(uint64_t*)0x20000ec0 = 0; *(uint64_t*)0x200011c8 = 0x20000f40; *(uint64_t*)0x20000f40 = 0; *(uint64_t*)0x20000f48 = 0; *(uint64_t*)0x200011d0 = 0x20001040; *(uint64_t*)0x20001040 = 0x20000f80; *(uint64_t*)0x20000f80 = 0; *(uint64_t*)0x20000f88 = 0; *(uint64_t*)0x20000f90 = 0; *(uint64_t*)0x20000f98 = 0; *(uint64_t*)0x20001048 = 0x20000fc0; *(uint64_t*)0x20000fc0 = 0; *(uint64_t*)0x20000fc8 = 0; *(uint64_t*)0x20000fd0 = 0; *(uint64_t*)0x20000fd8 = 0; *(uint64_t*)0x20001050 = 0; *(uint64_t*)0x20001058 = 0x20001000; *(uint64_t*)0x20001000 = 0; *(uint64_t*)0x20001008 = 0; *(uint64_t*)0x20001010 = 0; *(uint64_t*)0x20001018 = 0; *(uint64_t*)0x200011d8 = 0x20001180; *(uint64_t*)0x20001180 = 0x20001080; *(uint64_t*)0x20001080 = 0; *(uint64_t*)0x20001088 = 0; *(uint64_t*)0x20001090 = 0; *(uint64_t*)0x20001098 = 0; *(uint64_t*)0x20001188 = 0x200010c0; *(uint64_t*)0x200010c0 = 0; *(uint64_t*)0x200010c8 = 0; *(uint64_t*)0x200010d0 = 0; *(uint64_t*)0x200010d8 = 0; *(uint64_t*)0x20001190 = 0x20001100; *(uint64_t*)0x20001100 = 0; *(uint64_t*)0x20001108 = 0; *(uint64_t*)0x20001110 = 0; *(uint64_t*)0x20001118 = 0; *(uint64_t*)0x20001198 = 0x20001140; *(uint64_t*)0x20001140 = 0; *(uint64_t*)0x20001148 = 0; *(uint64_t*)0x20001150 = 0; *(uint64_t*)0x20001158 = 0; *(uint64_t*)0x200011e0 = 0; *(uint64_t*)0x200011e8 = 0; *(uint64_t*)0x20001288 = 0; syscall(SYS_test, /*a0=*/0x20001280ul, 0, 0, 0, 0, 0); break; case 5: syscall(SYS_foo, /*a0=*/0x200012c0ul, /*a1=*/0x20001300ul, /*a2=*/0x20001340ul); break; case 6: syscall(SYS_breaks_returns); break; case 7: syscall(SYS_test, /*a0=*/0x20ffe000ul, /*a1=*/0, /*a2=*/0x1000, /*a3=*/0x800, /*a4=*/0x400ul, 0); break; case 8: memcpy((void*)0x20001380, "\xb3\xeb\x98\x0b\x12\xaf\x03\x68\x48\x32\xff\x0d\x13\x67\xb0\x5d\xed\x25\x0f\x35\x0b\xff\xb9\xc6\x72\x43\xa4\xa2\x6c\xac\x6a\x56\x64\xba\x93\xce\x0c\x5f\xfc\xa8\x1d\x81\xc8\xa8\xa1\x84\x16\x56\x6c\x33\xd0\x0a\x99\x9b\xaf\x45\xad\x35\x17\x40\x79\x5a\x1a\x3a\x7f\x59\xab\xe5\x9a\xc2\x18\xf6\xe2\x04\xdc\x13\x29\xf1\x58\xd3\x6e\x4d\x0c\x86\x20\x0e\x4d\x8b\x5d\xbd\xa2\x75\xd2\x0e\x53\x15\xc5\x2e\x12\x89\x56\x63\xd7\xe5\xf4\xad\x1f\x0d\x1a\x8a\xc3\x01\x4e\xb4\x60\x3f\x30\x44\x5a\x97\x5d\x0a\x77\xfe\xec\x81\xe4\xe9\x9b\xd7\x1a\xca\xd6\x46\xcb\x04\xb6\x08\x19\xe8\xec\x24\xa8\xa2\xdb\x39\x09\x68\x8b\xb2\x84\x16\x28\x72\xbc\x71\x5c\x3e\xf9\x86\x3a\x13\xd6\x0f\x4e\x3a\xcd\x69\x54\xf1\xff\x26\x8e\xee\x5c\xbe\x35\x46\x5b\x4e\x65\xc6\x0d\xbf\x3d\xa3\x56\x89\xaf\x39\xd3\xdc\x0d\x9d\x22\x26\x40\x61\x47\xfe\xcc\xad\x22\xfd\x6d\x92\x55\xa8\xb9\x21\x78\xc6\xaf\xa7\xaa\x2d\xec\xd0\xae\x46\xec\x45\xc9\xbb\xf6\xe5\x3f\xea\xd2\xd6\x82\xd7\x15\x17\x5b\xa6\x08\xf8\x4b\xa1\x4d\x9a\x28\xc5\xe4\x7e\xbd\x82\x9a\x76\xbc\xa0\xc2\x82\x1b\x0e\x29\x91\x5a\x28\x89\xe0\x01\xa2\x01\x52\x4f\xcf\x62\x45\xad\xcf\x4d\x32\x6d\x69\x17\x6d\x7f\xa2\x7e\xd8\xd5\x93\xe2\x5e\xef\x7a\xfa\xa1\x47\x9e\x50\x63\x48\xf0\xa6\x75\x36\x97\x03\x4b\x9c\x60\x9f\x46\x51\x46\xf9\x56\x9d\xdd\x56\xaf\xf7\xfc\x2f\xad\xef\xb8\x9f\xa2\xd2\xd4\xb8\x38\xe7\xd6\x32\x00\x09\x7b\x77\xed\x52\xd9\xc3\x1c\x98\xfd\x76\xf9\x46\x7f\xf5\x11\x6c\xa0\x0f\x85\x84\x6a\x91\xbe\xf6\x94\x19\xaa\xc6\xeb\xc7\xdd\xfb\xa2\xb2\x68\xbf\xe2\x62\xf6\xf5\x5d\x52\xa6\x47\xaf\x8a\x0b\x45\x39\x1b\xa9\xdf\x09\xe2\x56\x64\x01\x9b\x41\x07\xa2\x31\xee\x76\x1a\x81\x96\x0c\x11\x98\xf5\x20\x9e\x3c\x37\x07\xd7\x68\xb8\xd0\x99\xee\xe5\x63\x05\x5a\x88\xc3\x04\x9f\x5a\xdd\xf8\x74\x7a\x2d\xfd\x6f\x3b\x43\xc5\xc2\x5d\xf5\x0c\x8a\x4b\x77\x87\x2a\x8d\x89\x05\xdf\xa0\x88\x5a\xdd\xdb\x8f\xd4\x9e\x29\x73\x52\x62\xb1\xc9\x4e\xa5\x9c\xe0\xce\xa5\xa0\x61\xfb\xb0\x42\xc7\xe3\x01\xe2\x92\x12\xf2\xf1\x47\x6e\x7c\x25\x31\x7c\xb5\xfa\x81\x77\x4d\x78\xb2\x0e\xfe\xa3\x77\xd4\xfb\xfd\xb1\x90\xcc\x1f\xd5\x8f\x56\x8e\x6a\xc1\x9b\xe0\x5d\x99\xc8\x36\x24\x28\xf5\x9f\x47\x31\x1a\xbf\x17\x8f\x6b\x08\x36\x45\xcc\xf0\x13\x62\x4a\x41\x8b\x8d\x9f\xec\xfa\x26\xf7\xdc\xba\x32\xb4\x39\x54\x49\xc0\xd1\xef\x6f\xa3\x7f\x33\xfa\x5e\xa6\x01\x92\xbb\x5c\xe9\x2e\x45\x8d\x90\xce\xdf\x0e\x85\x78\x78\x11\xc6\x4b\xd0\x43\x6f\x4c\x5c\xa0\x1f\xac\xae\x7b\x79\x3d\x69\x64\x42\x98\x28\x41\xf6\xe8\x3f\x60\x3d\x58\x06\x74\x2a\x4e\xc7\xac\xb4\x06\xc5\x5b\x27\xaa\xad\x7a\x62\x8e\xb2\xf4\x1f\x80\x07\xc0\xe3\x72\x8f\xa1\xf4\x01\x94\xd2\x71\x39\x2f\x6c\x7f\x68\x4e\x1d\xbe\x23\x9c\xf6\xc5\x01\xbd\x4f\x4f\x64\x31\x53\xb4\xe7\xbd\x32\xff\x4b\x3d\xb3\x61\xfe\x9c\x4a\x87\xb4\xd7\x49\x2e\xef\x74\x9b\xd1\x8c\x6a\x44\xda\xba\x60\x54\x2d\xea\xdc\x45\xcb\xfa\x8a\x46\xb8\xd2\x52\x67\x0e\xe3\x12\xed\xe5\x3b\xb5\x16\xf0\x00\x0c\xc2\x50\x09\xf4\xd4\xe7\x4c\x6f\x61\x30\x6c\x34\x4a\x9b\xa4\x8f\xa2\xa2\xd7\x0f\x3e\x1a\xc0\x18\xf9\xc0\xd1\x5d\xda\xaf\xb5\xcf\x89\x86\x7c\xa6\xbf\x6b\x37\x42\x7c\x47\x7e\xec\x1a\xcb\x7f\x36\x9b\x94\x22\xa8\x85\x8e\xbc\x2f\x3a\x10\xa9\xe9\x0a\xea\x0f\x4d\xf8\x2a\xb2\xe8\xd1\x0d\xff\xcb\x99\x89\x2a\x81\x55\xb4\xf8\xaf\xf7\x9e\x93\xdf\x24\x84\x8a\xef\x03\x5e\x85\xd5\x70\x48\xc7\xc9\x3f\xe5\x44\xe3\xef\x17\x54\xc4\x92\x40\x57\x3a\xc1\xea\x67\xb9\x4d\x85\x74\x54\x2d\xff\x03\xf0\x6b\xfe\xdc\x3f\x51\xc6\x20\x40\x28\x61\xf7\x77\xfa\x47\xbc\x05\xc8\x65\xa6\xe6\x3a\xb4\x8e\x70\xc4\xb3\x14\xe6\xf8\x09\x53\xcb\x1a\x22\xb9\x22\x6a\x1b\x3c\xc0\x84\x73\x6b\x2a\x82\x6a\x7f\xc8\x41\x02\x3e\xaa\x56\x44\x8d\x94\x75\x7b\x01\x38\x33\xc5\x3e\x18\x2c\x1d\xe0\x66\x87\x87\x01\xde\xf7\x3b\xdd\x13\xd7\x40\x45\x65\xdc\xc3\x17\xae\x65\x03\x83\xb3\xea\x7d\x5e\x6a\xed\x3d\xbf\x57\x5a\x2c\xa5\x13\x28\x50\xe3\x94\xad\xeb\x9f\xee\x10\x87\x19\x37\x83\x20\xb9\xb4\xe0\xc5\xa6\xdd\xc7\x75\x94\xa8\x02\x41\x51\xb3\xa6\xd3\x22\xfb\x48\xe5\xdb\x7f\x0f\xb0\x4a\x91\x49\xfb\x27\x8e\xd9\xd8\xad\x19\xb1\xb8\xa2\x68\xcb\xa4\xb3\x00\xe9\x31\x39\xf2\xb6\x11\xbb\x77\x79\x83\xb7\x4d\x6f\xac\x85\x2d\x74\x3f\xb5\x01\x1f\x9b\xf2\xbf\xd3\xf4\x31\x4c\xdc\x9b\x1e\x71\xc6\x5e\xa7\x6e\x49\x53\xaf\x36\xbc\xb4\xb9\x64\x9a\xa0\xee\xaa\x6c\x89\x2e\x17\x0d\x32\x85\x24\x17\x08\x59\x4a\x91\xbd\xec\x0f\xde\xdd\x97\x4b\x42\x20\xb4\xb7\x0a\x5a\x93\x99\x38\x52\x7c\x6e\x6e\xf8\x23\xb3\x62\x56\xc1\x36\x9f\xbe\xed\x64\xa9\x0e\x8b\xe5\x45\xea\xc8\x96\x8c\x76\x41\x39\xcc\xd4\xdc\x59\x01\xbc\x01\x99\x85\xaa\xb5\xfe\x71\xe2\x4c\x55\xf2\x60\xc4\xc4\xb7\xfd\x5c\xf5\x28\x8b\x13\xdc\xda\x57\xbb\x34\x50\xfb\x4f\x6e\xce\x5e\x7c\x4a\x0a\x21\xff\xf3\x12\x4c\x3c\x78\x3a\xfa\x87\x44\xf6\xca\x3f\x5c\x3d\xe5\xb4\xc1\x54\xce\xa1\x2b\xa4\x7c\x3c\x69\x4e\xa8\x30\x3a\x8d\x7c\x85\x10\x08\x9c\xc1\x60\x9a\x82\xe6\xa7\xe0\x89\xf6\x3a\xfd\x05\x85\xd3\xf5\xab\xa2\x26\x34\xdd\x7c\x95\x79\x36\x4d\xa1\xd9\x3a\x99\x5f\x77\x06\xda\x20\x8d\x65\xb9\x48\xd7\x46\x13\xe0\xe4\xf8\xc7\x79\x74\xdb\x27\x2e\xdf\x2f\x8d\x52\x91\xcd\x3a\xf0\xd0\xad\xee\xcc\x16\x35\x85\x16\x1b\xc8\xec\x9b\x62\x82\x3f\xeb\x86\x4a\x8f\xfa\x00\x12\x07\x19\x98\x19\x07\xc0\x27\xef\x41\xa9\xc5\xeb\xef\x88\x41\x1b\x42\x0e\x2c\x60\x41\xe9\x4d\xba\xe9\x38\x8f\x72\xdb\x00\x89\xd4\x73\x3c\xed\xc3\x68\xcd\x1d\x68\x05\x63\x4c\x80\xbf\xfb\x9c\x34\x30\xf4\x02\xb7\x3f\xff\x1d\x6c\xf3\x55\xb9\x50\x9c\x1b\xfd\x48\xe7\x9b\x14\x17\x14\x1c\x9b\x9a\xb1\xc0\xf6\x2a\x4c\xf9\x7b\xae\x55\xfe\x53\xaf\xea\x35\x3c\x10\x61\xbb\x88\x2e\x10\x1d\x74\x34\xb3\x9b\xe6\x55\x8e\x77\xea\x26\xb4\x4b\x50\x7c\x2c\x44\xdd\x0a\x62\x5c\x04\x4b\x0a\x78\xee\x23\x64\x86\x28\x42\xd9\xef\x0f\x1b\xcb\x56\x3f\x01\xad\xbd\xee\x69\xe5\x2d\x02\x28\x56\xad\x65\x04\xd8\x11\xe8\x49\xab\x47\x0d\x61\x3d\xa0\xce\x95\x10\x03\x52\x98\x22\xad\xc1\x02\xc4\xc6\x2a\x3a\xad\x2f\x73\x92\xaa\x46\x01\xab\x08\x63\x15\x0c\x35\x8a\xee\xc2\xfc\x5e\x3a\x90\x6d\xf0\x0f\xe5\xdb\x12\x26\xba\xc2\x0f\x08\xd7\x01\xf1\x81\xb9\x0a\x4d\x38\x9b\x91\xdd\xdb\xc2\x4e\x40\x48\x8e\x1c\x46\xab\x2d\x05\xb4\x82\x30\x29\x45\x3c\xc9\x25\x3e\xbc\x43\x70\x96\x4a\x64\xc1\x08\x7c\xb3\x85\x7d\x73\x6d\xc3\x03\xce\x93\x06\x6d\xb6\x0f\xc6\x1b\xe9\xf7\x9c\x0c\x9e\x1c\xa7\xe4\xd7\x3f\x95\x17\x2b\xcb\xaf\x6c\xbd\x18\xc0\x6d\x1c\x1c\xcc\xf2\x3d\x85\x59\x2e\xe6\x84\x43\x49\xb5\xe7\x2e\x6a\x5e\x10\xf5\xee\xd5\xec\xa8\xf9\xc0\xa8\xa9\x5e\x21\x43\x89\x53\x01\x94\xa0\x30\x43\xb2\x11\x08\xa4\x9e\x34\x66\xce\xbe\x30\x78\xda\xdd\x36\x4f\xaf\x67\xfe\x3c\x51\xe1\xdf\x75\xf4\xaa\x61\x98\x54\xb7\x80\xe0\xc0\x4e\x9a\x9b\xf2\x30\x1c\x03\x0a\x36\x26\xce\x82\x0a\xfc\x59\xe1\xc1\x3e\xd6\xfa\x3e\x30\x30\xb9\x66\xf3\x87\x8f\x17\xa1\x6a\x12\x09\x98\x7a\xa9\xf7\xeb\x76\x98\x8d\x40\x1f\x10\xbd\xb0\xa4\x19\xdd\xce\xd1\x10\x56\x59\xe6\x21\x94\x40\xe3\x5e\x98\x4c\x3e\x7a\xda\x78\xc3\x0a\x9a\x73\x99\xce\x1a\xbc\xe3\x6c\x7c\xe3\xe3\x9a\x89\xcf\xac\x98\xf2\x49\x73\x59\x14\xcf\xc1\x6b\xaf\x66\x6e\xd4\xb5\x1f\xf2\x19\x3c\x28\x36\xbd\x43\xe5\xd5\x37\xf2\x65\x36\x46\xf0\x5c\x81\x09\xef\x8e\xdf\xd3\x5b\x3a\xcd\x73\xeb\x7e\x79\x0c\x64\xcc\x2a\x7c\x95\x96\xe4\xa5\xf3\xd0\xe2\xd9\x2b\x30\x1c\x9e\xc5\xd8\x27\x68\xab\x21\x18\x01\xbe\xa9\x63\x40\xc3\x0e\x1b\x09\xfc\x9f\xae\x7c\xff\x26\x15\xd6\x1e\xde\x29\xf9\xb0\xd7\x12\xab\xff\xcd\x93\xea\x3b\x20\xce\xb7\xaa\x57\x36\x8e\x84\xc3\x87\x6e\xcd\x7a\x93\x1c\xb1\x9e\xa5\x17\x60\x3e\xf4\x4a\x98\xb2\x46\x28\x8b\x27\x33\x69\x80\xe4\xbb\x50\x90\x07\xbc\xd0\x18\x58\xcd\x35\xe9\xcd\x8d\xf2\x88\x22\x1d\x3a\x48\x72\x68\x82\x8f\xe7\x32\xfd\x7d\xa2\xe2\xb6\x92\x6b\x4a\x9b\x54\xd5\x4b\x41\xc7\x79\x98\xd1\xef\x53\x84\x87\xe1\xdc\xdf\x87\xfc\xc3\xfa\xb2\x5c\x77\xa7\xcf\x01\xf8\x60\x87\xe2\xb9\x5e\x1e\x4d\x45\x52\x2f\xc3\xf4\x4a\x14\xcb\xfa\xcd\x48\xd6\x3e\xba\x04\x2c\xa3\xe1\x4a\xf8\xe5\xbe\xd3\x18\x6d\xe4\xfb\x69\xf3\x87\xaa\xc8\x82\x42\xd6\x4f\xbd\xcd\x11\x0c\x33\x88\x21\xad\x72\x56\x2f\x09\x2f\x55\xfa\x73\xb5\xe7\xd9\x2c\x9b\x6f\xee\x57\x94\xef\x48\x23\x19\x0f\x92\x57\xb1\x1f\xf4\xfc\x44\x57\xdb\xa9\x0f\xbd\xa8\x0d\xaf\xb5\x17\xfa\x27\x51\x94\x89\x01\x6f\x6f\x45\x80\x06\x40\x1f\x9f\xea\x20\x42\x6a\x54\x5a\xab\x77\x84\xc4\xe3\xdf\x9d\xfa\x9f\xb2\x79\xcf\x21\xa8\x6c\xe3\xf2\x92\xcf\x52\xd3\x43\xfc\xe9\x7e\x05\xb9\x2c\x84\x72\x3d\x7d\xdc\x65\xa7\xbc\x79\xae\x73\xb1\x24\x6b\x6b\x65\x04\x8a\x38\x55\xb6\x2b\x13\x40\x26\x46\x27\xc1\xdf\x82\xf3\x35\x2f\x3a\xc6\xd5\xa7\x5e\x08\x23\x57\x2c\x2f\xb3\x92\xbd\x7e\xf1\x51\x93\xcc\x5f\x6f\xbe\xfc\x4d\x27\xff\xd7\x41\xa9\x3d\x1a\xb7\x99\xd9\xfb\xd5\x45\xd2\xd2\x60\x6e\x35\x66\xeb\x79\xd5\x44\x85\xf5\x56\x15\x10\xa5\x7f\x17\xf2\xb3\x90\x9e\xd1\xbf\xc5\xe5\xd6\x46\x92\xb6\xc5\x03\xeb\x58\xf1\x7c\xae\x55\x41\x37\x60\x74\x67\xe8\xab\x51\xd8\x67\x06\x7f\x50\x37\x4e\x99\xf7\x48\x69\xe0\x17\x7f\x4e\xb5\x2c\x29\x30\xdf\xe5\xca\x2b\x6e\x45\x4d\xb8\xa3\x62\x25\xb2\xc9\x36\xbd\xc5\xbb\x75\xf1\x35\x5f\xfd\x8d\x7f\xa4\x76\xeb\x28\x28\x71\xe5\x21\x11\x83\x2f\xcf\xc2\x46\xda\x41\x5c\x20\x0d\x9e\x6c\x35\x0f\x49\x84\x6a\x00\x22\x66\x01\x91\xa2\x84\x0d\x7a\x53\x75\x36\x74\xc7\x8e\xa0\x0a\x5b\x9e\x26\x6f\xf2\x9b\x1a\x8f\xb1\x93\xe1\x32\xd2\x3f\x96\x0c\xd9\xc8\x24\x9b\x94\x3f\xcd\xb8\x65\x39\x5b\x2c\x03\xab\x67\x5b\xbb\x19\x93\x81\x3f\xb0\xa8\xd1\xe6\x83\x31\x29\x7c\x88\xdb\x1d\xca\x00\x31\x3b\x82\x11\x12\x1b\x60\x23\x47\x5c\xb6\x9d\x6a\xc6\x6c\x11\x16\xa5\x61\x71\x35\x0f\x68\x0c\xc7\x4c\x88\xfe\x99\x05\xed\x07\x87\x80\xe6\xd7\x1b\xcc\x73\x5f\xee\x75\xa9\x44\x4f\x69\x5d\x03\x6a\xa6\xb4\xb9\xe5\x9b\x66\x80\xb6\x31\x29\x67\xf8\xb2\x36\xff\x8b\xee\x60\x31\x6a\x70\xcb\xa0\x31\x2c\x99\x3b\x92\xe3\x0c\xa4\xcb\x11\x8c\x17\x45\xe7\xb5\x78\xc0\xad\x6c\x3a\x7d\x81\x87\x37\x25\x95\xdd\x16\x08\x93\x11\x5f\x11\xb0\x54\xfc\x17\x18\xc9\x67\xbd\xaf\xe9\xbf\x95\xad\x58\x3d\xb5\x93\x96\xd5\x94\x11\x4b\x65\x00\x99\x6e\xef\xf8\x2b\x70\x19\x1e\x52\xfa\x23\x30\xef\xdc\x66\xfa\x36\x3c\xb3\x79\xc9\xc6\x77\x40\x53\x5c\x99\x60\xca\x85\x7c\xfe\x4d\x0a\x88\xbb\xbb\xf2\xe7\xb2\x03\x4b\xb8\x43\x98\x0f\x6f\xa8\x6f\xf6\x02\x33\x5d\x1e\x25\xa6\x13\xc7\xd7\xa4\xef\x7a\x6b\x16\x1c\x25\x82\x23\x9a\xa5\x6f\x5c\x89\x94\xd0\x66\x46\xe0\xaa\x62\xc4\x8b\x54\xe0\x85\x22\x23\x77\x2e\xd4\x4e\x70\x59\x69\x7a\xec\x6b\xc2\x22\x5e\x0e\xda\xc5\x5f\xdb\xff\x1a\x16\xd4\xc6\xde\xf4\xc7\x7d\xdf\x38\xb2\x77\x39\x52\xc8\x11\xff\x14\x5a\xe3\x66\xe2\x16\xc4\x16\x00\x65\x9f\xf7\x8f\x64\xb1\x9e\x35\x4d\x74\xf9\x0a\x61\x90\x7c\x85\xc7\x02\x39\x4f\xe2\xcc\xa4\xf5\xfe\xb5\xb5\x35\x30\xb5\xf4\xc9\xe7\x2f\x5c\x09\x0c\xa4\x64\xa7\xa9\xc3\x95\x14\x37\x35\xfd\xd2\x42\x1d\x07\xe8\xef\xe4\x19\x8a\xd0\x6f\x9d\x23\x0a\x91\xd5\xfb\x50\xef\xc0\x2c\x2d\xb6\xed\x4a\xd7\x50\x31\x9e\x3e\x67\x2f\x52\x13\xdd\xae\x92\xc3\xfc\xec\x0e\xd5\xdf\xf5\x22\xd0\xca\xb8\x9b\xb8\x25\x32\x54\x25\x55\x29\xb3\x2c\xf5\x38\x5c\x90\x01\x42\x1b\x92\xcc\x67\x16\x3c\xc3\x95\x23\x5e\x40\x8a\x46\x3f\xa3\x1e\xef\xd0\x74\x2d\xe5\x13\x9b\xba\x2d\xc1\x41\xff\xf7\xbe\x17\x5f\x41\x8c\xf7\xcf\x89\xdd\x4f\x47\x4a\x2f\xc6\x1d\x0f\x38\x51\xf3\x4d\x52\xc4\x9b\xbd\x12\x26\xbd\x08\x96\x30\x71\xf5\xd4\x91\x8f\x7e\x12\xd0\x02\x8d\x32\x1b\x3d\x6b\xd4\x36\xe0\x2f\x6e\x55\xcc\x48\xc6\x13\xe3\x29\x91\x6c\xb8\x54\x52\x44\xbb\xa3\x77\x90\x8d\x6b\xcf\xeb\x7e\xd6\x62\x08\xe5\x07\xb4\xdf\xd8\xf2\xcb\xa5\xa3\xd4\x2f\x3a\x4e\x4d\xa8\x0e\xba\x19\x9c\xc8\xae\xc8\xa4\x0f\x25\x47\x10\xd8\x11\x83\x24\x96\x75\x0c\x4b\x34\xc3\x6b\x74\x6b\xf3\xcb\x60\xda\xe8\x1e\x73\xda\x95\x2e\xe4\x1c\x2a\x40\x23\x72\xe5\x23\x9f\xd2\xd4\x07\xd8\xe9\x1b\x9e\x57\xb4\x75\x8a\xac\xe5\x9d\xf7\xd8\x3d\x38\xad\x17\x71\x6c\xae\x50\x9d\xdb\x24\x27\xcb\xcf\x84\x7a\x7b\x10\x8e\xdb\x4b\x3a\x70\x81\x71\xe7\x31\xa9\x77\x02\xb6\x37\x7c\x79\x34\xec\x9b\x4c\x74\x46\xea\x03\x1e\x62\xbb\x39\xa6\xe2\xd3\x20\xea\xa8\xb5\x91\x0b\x14\xd8\x82\x6c\x20\x4f\x7a\x4a\xb2\x36\x24\x0b\x48\x60\x66\xb2\x7b\xe7\xf6\x9b\x84\x42\xff\xc8\x03\xc4\xed\x7f\xdd\x23\xef\x2f\xa0\x33\x7d\xb8\x42\x68\x1c\x0f\x8e\xf2\xba\xdc\xc0\x81\x13\xfe\x80\x61\xab\x31\xfa\xf9\x89\xba\x55\x51\x2a\x5f\x0e\x7b\x93\x6d\x63\xc0\xcc\xed\x58\xef\x82\xcf\x0c\x2d\x29\xfb\x23\x18\xe1\x2b\x56\xd4\x91\x2e\x9c\x4f\x96\xdb\x02\xca\x84\x49\x29\x4d\xa3\x3f\x8f\xce\x55\x07\xd3\xeb\x99\x23\x90\x72\xe2\xb2\xe1\x2e\x33\x55\x35\x3b\xf4\x90\x18\x2e\xeb\x7a\xa1\x03\xc9\x77\xc0\x67\x01\xca\xa0\xb7\x44\x55\x11\x66\x89\xb9\xdb\xe9\x0a\xd1\xd1\x85\x39\xd5\xe4\x1a\xda\x0f\x2f\x7f\x1e\x6c\x9a\xa6\x7a\xa2\xaa\x41\x6f\x84\x9f\x18\xc6\xfb\xd2\x2d\xcb\xe0\x3a\xf7\x8b\x15\xce\xdd\xda\x0d\x1b\xbb\xdd\x33\x62\x76\x9f\x50\xe9\x86\x80\xfc\xe5\x4b\x7e\x84\xa9\x4f\x32\x46\x66\xa6\x96\x7f\xc8\x0f\x2e\x5e\x9c\xa9\x4f\x61\x7f\x01\x16\x3a\x16\x01\xc6\x22\x19\xfc\xb5\x67\x82\x66\xe1\xc6\x18\xca\x89\x47\xe7\x4a\x2a\xde\x5e\x40\xda\xeb\x8d\xf5\x62\x0f\x36\x5f\x66\xae\xae\x88\xaf\xb4\x2d\x70\xce\x41\x45\xeb\xaf\xa7\x58\xac\xcc\x19\xe2\x78\xbc\x9f\x45\xda\x63\x85\x9c\x46\xeb\xdf\x7f\x0e\xe2\xe3\xfd\x9d\xd5\x41\x4d\xeb\x86\x07\xd7\xec\x55\x65\x68\x30\x1d\x26\x50\x78\x0b\xe7\xf7\x5f\xcd\xf9\x24\x41\xcb\x98\xf2\x36\x48\xb5\xed\x3f\x3a\x5e\x2c\x96\xda\xaa\xc1\xda\x0c\xe4\x6e\x1d\x85\xb5\xc2\xcf\xf4\xd9\xa9\x16\x7d\x58\x15\xfc\xc6\x6b\xbd\x94\x5f\x0b\x55\x87\x41\x95\xac\xbb\xbf\xec\xf8\x0f\x26\xb7\x0a\x4c\xf6\x62\xf9\x55\xea\x4e\x01\x35\x1f\xaa\x9f\x53\x00\xcf\x35\xc7\x2a\xe6\x09\x15\x06\x2c\xef\xf7\x89\x1e\x76\x77\x51\x91\x96\xbf\x81\x33\x33\x36\x1d\xbb\xee\xcf\xe8\xdc\x12\x7a\x94\xc2\x0b\x9f\xaf\x03\x6d\x71\xa8\x16\xb1\xab\x72\xe8\x20\x19\xd0\x69\x9b\x01\x2a\x12\x60\x22\xcc\x70\x31\x36\x63\x8d\xc8\x67\x49\x05\xb4\x10\x0e\x9b\x8d\x62\xab\xde\xb1\x3c\x84\xbe\x30\x0b\x49\xae\x44\xfc\xea\x4b\x89\x2f\xbf\x65\x64\xcd\xb0\x12\x69\x9e\x9f\xd1\xc9\x64\xf2\xa9\xd7\xf3\x12\x65\x6b\x47\xe6\x91\x66\x82\xb0\x04\x41\x57\xf4\xe2\xdf\xb9\xd5\xf5\x5d\x68\x49\x5d\x76\x3c\x80\x7d\x8e\xc6\x93\x2e\x56\x0c\x91\x3a\xb7\x6f\xc3\xff\x82\x02\x02\xae\x44\xfa\xcb\xda\x1a\xa1\x53\x10\x8f\x16\x8e\x42\x1b\xdb\x1a\x93\xc3\x82\xed\xf0\x8c\xc7\x9c\x5b\x71\x1a\xe1\x3c\x6e\xb8\xe5\x43\x93\xf4\x99\x8e\xc9\x9a\x95\xae\x7f\x85\x99\x9e\x78\x43\x9b\xa6\x03\x44\x55\x45\xf2\x1f\xfc\x85\x62\x07\xee\xa9\x45\x5f\xb1\x4c\x0a\xd9\x67\xf2\x2c\xf0\xf5\x72\xdb\xa5\xca\xc7\x45\x0e\x4e\x52\xce\x71\x3c\xe8\x71\xfc\x76\xd7\xad\xca\x01\x26\x0e\xa7\x08\xda\x43\x40\x01\x80\x5b\xcf\xd1\xf3\xcc\xd1\xc6\x08\x4d\x5e\xc2\xa2\x9f\x00\xe7\x7a\xa4\xf9\x1d\xee\x13\xee\xb5\xfc\xce\x8e\x82\xa1\x03\xb3\x7f\x6c\x4f\x25\x25\x95\x1e\xaa\xd4\x49\xa0\x8a\x75\xd2\xf3\x41\xf1\x7b\x2c\xbd\xf1\x73\x0d\x19\x2e\xf7\x58\xa6\xe8\xf8\x83\xd8\x8c\x07\xf2\xef\x41\xb4\x43\xda\xa7\x95\x00\x02\x44\x26\x3d\x2d\x30\xc7\x62\xf6\xfe\xcf\x3b\xb6\x7f\x8d\xda\x6c\xa7\xd9\xd4\x0a\x18\xe1\x86\x26\x85\x3c\x50\x94\xef\x66\xed\x64\x61\x7e\xe9\x38\x8c\x03\x7a\x74\xa9\x61\x69\x2d\x44\x70\x79\x6a\x68\x3f\x88\x0e\xb9\x04\x10\x60\xac\xee\x4e\x76\x18\xb7\x17\xa0\x57\x95\x1e\x1c\x66\x23\x62\xfd\x26\x70\x9b\xd8\x0a\xf3\x9f\xe5\xc1\x1f\x96\x54\xc2\x65\x5b\x21\xed\xcc\x32\x42\x84\x91\xdc\x5c\x10\x1e\x6a\x22\x2d\x2e\x51\xb9\xf2\x3d\x96\x0f\x12\x74\x8d\x9a\x5f\xc3\xe2\xf6\xc9\x53\x97\x23\x47\x65\x6a\x9f\x78\x7e\xe5\xbd\x19\x64\x45\xaa\x2e\xaf\x8f\x8f\xbd\xaf\xaa\x34\xed\x1b\x05\x5a\x09\xb3\x71\x8d\x8b\x3c\x8f\x1c\xfe\x5a\xc5\x3c\xf3\x7c\x9f\xa7\x6f\xe7\xac\x70\x87\x15\x7b\xdb\xa5\x23\xe2\xa9\xe7\x10\xb3\xf5\xb5\xa7\xff\x9b\x8b\x1f\x61\x2d\x9b\xbb\xb1\x10\x4f\x9d\x6d\xf9\x87\x87\xe9\x25\x23\xfe\x1d\x30\x10\x1e\xdf\x53\xd8\x9d\xf4\xa3\xc4\x2b\xd3\xbd\x27\x37\xf3\xaf\xe0\x15\x4e\xe1\xe8\xd9\x3d\x9a\x27\x75\xd8\x4c\x68\x6d\xac\x89\x84\x51\x2c\xf9\x55\x96\x23\xac\x6f\xe4\xef\x79\xf7\xb3\x4b\x21\x96\x9a\x8a\x8a\x72\x43\xf4\x1e\x11\xa5\x8d\xe3\xe4\xe1\x8f\x33\x85\xee\x70\x03\xc7\x9f\xa5\x27\xb9\x4e\x72\x33\x8f\x2a\x1c\x4c\x45\xff\x04\x5a\x61\x1f\xe1\xdb\x3c\xdd\xa0\xfe\xf1\x21\xf7\x8c\x52\x75\x34\xda\xb2\x66\xdd\x3f\xf6\xf7\x3d\x6b\x6b\xc0\x39\x98\x30\x98\x30\x51\x0a\x57\xeb\x0e\x2d\x74\xde\x38\x11\x27\x75\xb8\x77\x5d\x99\xc1\x5e\x38\xd0\xe7\x09\xf3\x97\x49\x2f\xc6\x46\x2f\x6e\x57\xa7\xff\x65\xd2\x5b\xe9\xeb\x75\x30\xa5\xef\x4f\xc8\x07\xff\x9e\x09\xb7\x01\xb5\x9d\x25\x0b\x54\x1a\x54\x6d\xb7\x5d\x11\x1f\x56\x0a\x47\x21\x7c\x12\x2c\x6b\x29\x28\xd5\xa0\xa0\x47\xa9\x88\xb3\xac\x51\x31\xdf\x00\x96\xc1\x5b\xbc\x39\x8d\x0e\x69\x65\x84\x1b\x17\xf4\x91\x63\x58\x85\xd8\x98\x7a\x04\xbb\xe2\x48\x21\x57\xb5\xca\x88\x3c\x76\x7e\xa1\x56\xb4\xe1\x78\x4b\xa1\xb7\xcf\xeb\x34\x3a\x71\xeb\x03\xeb\xce\x88\x79\x2a\xed\x8b\x18\xe7\xfd\x88\x0c\xd5\x93\x4c\xbe\x55\x52\x3c\x1b\x7c\x82\xb3\xed\x99\xb3\xde\x90\xa4\x79\xf2\x51\xe1\x90\x4a\xc8\x6f\x28\x02\x19\x57\xef\x35\x42\x1d\x3c\x8a\x2d\x39\xee\xe7\x31\x4e\x3f\x3f\x94\x5e\xa2\xfb\x5f\xf7\xf6\xc0\x9b\xa4\x72\xff\x3e\x56\x2c\x61\x68\xb0\xc1\xf8\x43\x65\x8b\xb1\x80\xeb\xfc\xf9\x54\xe5\x8e\x63\x3f\xb1\x61\x27\x51\xbf\x36\x0b\x15\xfe\x67\xca\x59\x4f\x5a\xae\x34\x23\x3a\x3b\x58\xee\xba\x56\x2f\xad\x63", 4096); syscall(SYS_serialize2, /*a=*/0x20001380ul); break; case 9: syscall(SYS_test, /*a0=*/0x20fff000ul, /*a1=*/0, /*a2=*/0x1000, /*a3=*/0x800, /*a4=*/0x400ul, 0); break; case 10: memcpy((void*)0x20000000, "\'/+,\000", 5); *(uint8_t*)0x20000040 = 0x1c; *(uint8_t*)0x20000044 = 1; STORE_BY_BITMASK(uint32_t, , 0x20000044, 3, 8, 4); syz_compare(/*want=*/0x20000000, /*want_len=*/5, /*got=*/0x20000040, /*got_len=*/8); break; case 11: syz_compare_int(/*n=*/2, /*v0=*/0xffff, /*v1=*/0x100, 0, 0); break; case 12: syz_errno(/*v=*/0xfffffff9); break; case 13: memcpy((void*)0x20000080, "\xfe\xaa\x0e\x27\x8d\x40\x3f\x03\xc2\xbf\x80\x48\x86\x76\x75\x4e\x43\x50\x32\xf8\x1e\xee\x19\xff\xa3\xf4\x8c\xa7\x58\xe8\x2b\x07\x72\x89\x83\x4e\xb7\x9b\xe6\x7b\x6c\xf4\x37\xe2\xd9\xb1\x01\xf3\x97\xd7", 50); syz_execute_func(/*text=*/0x20000080); break; case 14: syz_exit(/*status=*/0xffffffc0); break; case 15: syz_mmap(/*addr=*/0x20ffc000, /*len=*/0x1000); break; case 16: syz_sleep_ms(/*ms=*/1); break; case 17: syz_test_fuzzer1(/*a=*/0xd, /*b=*/0xc, /*c=*/0xb); break; } } int main(void) { syz_mmap(/*addr=*/0x20000000, /*len=*/0x1000000); setup_fault(); for (procid = 0; procid < 4; procid++) { if (fork() == 0) { use_temporary_dir(); do_sandbox_none(); } } sleep(1000000); return 0; } :312:3: error: call to undeclared function 'syscall'; ISO C99 and later do not support implicit function declarations [-Werror,-Wimplicit-function-declaration] syscall(SYS_breaks_returns); ^ 1 error generated. compiler invocation: c++ [-o /tmp/syz-executor3414853300 -DGOOS_test=1 -DGOARCH_64=1 -DHOSTGOOS_openbsd=1 -x c - -m64 -lutil -O2 -pthread -Wall -Werror -Wparentheses -Wunused-const-variable -Wframe-larger-than=16384 -Wno-array-bounds -Wno-unused-but-set-variable -Wno-unused-command-line-argument -no-pie -fno-exceptions] --- FAIL: TestGenerate/test/64/4 (1.24s) csource_test.go:150: opts: {Threaded:true Repeat:true RepeatTimes:0 Procs:1 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: breaks_returns() (fail_nth: 1) breaks_returns() (async) test$end0(&(0x7f0000000000)={0x20, 0x8, 0x7, 0x7fffffff}) (rerun: 4) test$length9(&(0x7f0000000040)={&(0x7f0000ffe000/0x2000)=nil, 0x2000}) test$recur1(&(0x7f0000001280)={&(0x7f0000001240)={&(0x7f0000000600)={0x0, &(0x7f00000005c0)={&(0x7f0000000080), 0x0, &(0x7f0000000180)={&(0x7f00000000c0), &(0x7f0000000100), &(0x7f0000000140)}, &(0x7f00000002c0)={&(0x7f00000001c0), &(0x7f0000000200), &(0x7f0000000240), &(0x7f0000000280)}, 0x0, &(0x7f0000000580)={&(0x7f0000000300), 0x0, &(0x7f0000000400)={&(0x7f0000000340), &(0x7f0000000380), 0x0, &(0x7f00000003c0)}, &(0x7f0000000540)={&(0x7f0000000440), &(0x7f0000000480), &(0x7f00000004c0), &(0x7f0000000500)}}}}, &(0x7f0000001200)={&(0x7f0000000680)={&(0x7f0000000640)}, &(0x7f00000009c0)={0x0, &(0x7f0000000980)={&(0x7f0000000700)={&(0x7f00000006c0)}, 0x0, &(0x7f0000000840)={&(0x7f0000000740), &(0x7f0000000780), &(0x7f00000007c0), &(0x7f0000000800)}, &(0x7f0000000940)={&(0x7f0000000880), &(0x7f00000008c0), &(0x7f0000000900)}}}, &(0x7f0000000ac0)={&(0x7f0000000a00), 0x0, &(0x7f0000000a40), &(0x7f0000000a80)}, &(0x7f0000000bc0)={&(0x7f0000000b00), 0x0, &(0x7f0000000b40), &(0x7f0000000b80)}, &(0x7f0000000e80)={0x0, &(0x7f0000000c00), &(0x7f0000000d40)={&(0x7f0000000c40), &(0x7f0000000c80), &(0x7f0000000cc0), &(0x7f0000000d00)}, &(0x7f0000000e40)={&(0x7f0000000d80), &(0x7f0000000dc0), &(0x7f0000000e00)}}, &(0x7f00000011c0)={&(0x7f0000000f00)={&(0x7f0000000ec0)}, &(0x7f0000000f40), &(0x7f0000001040)={&(0x7f0000000f80), &(0x7f0000000fc0), 0x0, &(0x7f0000001000)}, &(0x7f0000001180)={&(0x7f0000001080), &(0x7f00000010c0), &(0x7f0000001100), &(0x7f0000001140)}}}}}) foo$anyres(&(0x7f00000012c0), &(0x7f0000001300), &(0x7f0000001340)) breaks_returns() test$length10(&(0x7f0000ffe000/0x1000)=nil, 0x1000, 0x1000, 0x800, 0x400) serialize2(&(0x7f0000001380)="b3eb980b12af03684832ff0d1367b05ded250f350bffb9c67243a4a26cac6a5664ba93ce0c5ffca81d81c8a8a18416566c33d00a999baf45ad351740795a1a3a7f59abe59ac218f6e204dc1329f158d36e4d0c86200e4d8b5dbda275d20e5315c52e12895663d7e5f4ad1f0d1a8ac3014eb4603f30445a975d0a77feec81e4e99bd71acad646cb04b60819e8ec24a8a2db3909688bb284162872bc715c3ef9863a13d60f4e3acd6954f1ff268eee5cbe35465b4e65c60dbf3da35689af39d3dc0d9d2226406147feccad22fd6d9255a8b92178c6afa7aa2decd0ae46ec45c9bbf6e53fead2d682d715175ba608f84ba14d9a28c5e47ebd829a76bca0c2821b0e29915a2889e001a201524fcf6245adcf4d326d69176d7fa27ed8d593e25eef7afaa1479e506348f0a6753697034b9c609f465146f9569ddd56aff7fc2fadefb89fa2d2d4b838e7d63200097b77ed52d9c31c98fd76f9467ff5116ca00f85846a91bef69419aac6ebc7ddfba2b268bfe262f6f55d52a647af8a0b45391ba9df09e25664019b4107a231ee761a81960c1198f5209e3c3707d768b8d099eee563055a88c3049f5addf8747a2dfd6f3b43c5c25df50c8a4b77872a8d8905dfa0885adddb8fd49e29735262b1c94ea59ce0cea5a061fbb042c7e301e29212f2f1476e7c25317cb5fa81774d78b20efea377d4fbfdb190cc1fd58f568e6ac19be05d99c8362428f59f47311abf178f6b083645ccf013624a418b8d9fecfa26f7dcba32b4395449c0d1ef6fa37f33fa5ea60192bb5ce92e458d90cedf0e85787811c64bd0436f4c5ca01facae7b793d696442982841f6e83f603d5806742a4ec7acb406c55b27aaad7a628eb2f41f8007c0e3728fa1f40194d271392f6c7f684e1dbe239cf6c501bd4f4f643153b4e7bd32ff4b3db361fe9c4a87b4d7492eef749bd18c6a44daba60542deadc45cbfa8a46b8d252670ee312ede53bb516f0000cc25009f4d4e74c6f61306c344a9ba48fa2a2d70f3e1ac018f9c0d15ddaafb5cf89867ca6bf6b37427c477eec1acb7f369b9422a8858ebc2f3a10a9e90aea0f4df82ab2e8d10dffcb99892a8155b4f8aff79e93df24848aef035e85d57048c7c93fe544e3ef1754c49240573ac1ea67b94d8574542dff03f06bfedc3f51c620402861f777fa47bc05c865a6e63ab48e70c4b314e6f80953cb1a22b9226a1b3cc084736b2a826a7fc841023eaa56448d94757b013833c53e182c1de066878701def73bdd13d7404565dcc317ae650383b3ea7d5e6aed3dbf575a2ca5132850e394adeb9fee108719378320b9b4e0c5a6ddc77594a8024151b3a6d322fb48e5db7f0fb04a9149fb278ed9d8ad19b1b8a268cba4b300e93139f2b611bb777983b74d6fac852d743fb5011f9bf2bfd3f4314cdc9b1e71c65ea76e4953af36bcb4b9649aa0eeaa6c892e170d3285241708594a91bdec0fdedd974b4220b4b70a5a939938527c6e6ef823b36256c1369fbeed64a90e8be545eac8968c764139ccd4dc5901bc019985aab5fe71e24c55f260c4c4b7fd5cf5288b13dcda57bb3450fb4f6ece5e7c4a0a21fff3124c3c783afa8744f6ca3f5c3de5b4c154cea12ba47c3c694ea8303a8d7c8510089cc1609a82e6a7e089f63afd0585d3f5aba22634dd7c9579364da1d93a995f7706da208d65b948d74613e0e4f8c77974db272edf2f8d5291cd3af0d0adeecc163585161bc8ec9b62823feb864a8ffa00120719981907c027ef41a9c5ebef88411b420e2c6041e94dbae9388f72db0089d4733cedc368cd1d6805634c80bffb9c3430f402b73fff1d6cf355b9509c1bfd48e79b1417141c9b9ab1c0f62a4cf97bae55fe53afea353c1061bb882e101d7434b39be6558e77ea26b44b507c2c44dd0a625c044b0a78ee2364862842d9ef0f1bcb563f01adbdee69e52d022856ad6504d811e849ab470d613da0ce951003529822adc102c4c62a3aad2f7392aa4601ab0863150c358aeec2fc5e3a906df00fe5db1226bac20f08d701f181b90a4d389b91dddbc24e40488e1c46ab2d05b4823029453cc9253ebc4370964a64c1087cb3857d736dc303ce93066db60fc61be9f79c0c9e1ca7e4d73f95172bcbaf6cbd18c06d1c1cccf23d85592ee6844349b5e72e6a5e10f5eed5eca8f9c0a8a95e214389530194a03043b21108a49e3466cebe3078dadd364faf67fe3c51e1df75f4aa619854b780e0c04e9a9bf2301c030a3626ce820afc59e1c13ed6fa3e3030b966f3878f17a16a1209987aa9f7eb76988d401f10bdb0a419ddced1105659e6219440e35e984c3e7ada78c30a9a7399ce1abce36c7ce3e39a89cfac98f249735914cfc16baf666ed4b51ff2193c2836bd43e5d537f2653646f05c8109ef8edfd35b3acd73eb7e790c64cc2a7c9596e4a5f3d0e2d92b301c9ec5d82768ab211801bea96340c30e1b09fc9fae7cff2615d61ede29f9b0d712abffcd93ea3b20ceb7aa57368e84c3876ecd7a931cb19ea517603ef44a98b246288b27336980e4bb509007bcd01858cd35e9cd8df288221d3a487268828fe732fd7da2e2b6926b4a9b54d54b41c77998d1ef538487e1dcdf87fcc3fab25c77a7cf01f86087e2b95e1e4d45522fc3f44a14cbfacd48d63eba042ca3e14af8e5bed3186de4fb69f387aac88242d64fbdcd110c338821ad72562f092f55fa73b5e7d92c9b6fee5794ef4823190f9257b11ff4fc4457dba90fbda80dafb517fa27519489016f6f458006401f9fea20426a545aab7784c4e3df9dfa9fb279cf21a86ce3f292cf52d343fce97e05b92c84723d7ddc65a7bc79ae73b1246b6b65048a3855b62b1340264627c1df82f3352f3ac6d5a75e0823572c2fb392bd7ef15193cc5f6fbefc4d27ffd741a93d1ab799d9fbd545d2d2606e3566eb79d54485f5561510a57f17f2b3909ed1bfc5e5d64692b6c503eb58f17cae554137607467e8ab51d867067f50374e99f74869e0177f4eb52c2930dfe5ca2b6e454db8a36225b2c936bdc5bb75f1355ffd8d7fa476eb282871e52111832fcfc246da415c200d9e6c350f49846a0022660191a2840d7a53753674c78ea00a5b9e266ff29b1a8fb193e132d23f960cd9c8249b943fcdb865395b2c03ab675bbb1993813fb0a8d1e68331297c88db1dca00313b8211121b6023475cb69d6ac66c1116a56171350f680cc74c88fe9905ed078780e6d71bcc735fee75a9444f695d036aa6b4b9e59b6680b6312967f8b236ff8bee60316a70cba0312c993b92e30ca4cb118c1745e7b578c0ad6c3a7d8187372595dd160893115f11b054fc1718c967bdafe9bf95ad583db59396d594114b6500996eeff82b70191e52fa2330efdc66fa363cb379c9c67740535c9960ca857cfe4d0a88bbbbf2e7b2034bb843980f6fa86ff602335d1e25a613c7d7a4ef7a6b161c2582239aa56f5c8994d06646e0aa62c48b54e0852223772ed44e7059697aec6bc2225e0edac55fdbff1a16d4c6def4c77ddf38b2773952c811ff145ae366e216c41600659ff78f64b19e354d74f90a61907c85c702394fe2cca4f5feb5b53530b5f4c9e72f5c090ca464a7a9c395143735fdd2421d07e8efe4198ad06f9d230a91d5fb50efc02c2db6ed4ad750319e3e672f5213ddae92c3fcec0ed5dff522d0cab89bb8253254255529b32cf5385c9001421b92cc67163cc395235e408a463fa31eefd0742de5139bba2dc141fff7be175f418cf7cf89dd4f474a2fc61d0f3851f34d52c49bbd1226bd08963071f5d4918f7e12d0028d321b3d6bd436e02f6e55cc48c613e329916cb8545244bba377908d6bcfeb7ed66208e507b4dfd8f2cba5a3d42f3a4e4da80eba199cc8aec8a40f254710d811832496750c4b34c36b746bf3cb60dae81e73da952ee41c2a402372e5239fd2d407d8e91b9e57b4758aace59df7d83d38ad17716cae509ddb2427cbcf847a7b108edb4b3a708171e731a97702b6377c7934ec9b4c7446ea031e62bb39a6e2d320eaa8b5910b14d8826c204f7a4ab236240b486066b27be7f69b8442ffc803c4ed7fdd23ef2fa0337db842681c0f8ef2badcc08113fe8061ab31faf989ba55512a5f0e7b936d63c0cced58ef82cf0c2d29fb2318e12b56d4912e9c4f96db02ca8449294da33f8fce5507d3eb99239072e2b2e12e3355353bf490182eeb7aa103c977c06701caa0b74455116689b9dbe90ad1d18539d5e41ada0f2f7f1e6c9aa67aa2aa416f849f18c6fbd22dcbe03af78b15ceddda0d1bbbdd3362769f50e98680fce54b7e84a94f324666a6967fc80f2e5e9ca94f617f01163a1601c62219fcb5678266e1c618ca8947e74a2ade5e40daeb8df5620f365f66aeae88afb42d70ce4145ebafa758accc19e278bc9f45da63859c46ebdf7f0ee2e3fd9dd5414deb8607d7ec556568301d2650780be7f75fcdf92441cb98f23648b5ed3f3a5e2c96daaac1da0ce46e1d85b5c2cff4d9a9167d5815fcc66bbd945f0b55874195acbbbfecf80f26b70a4cf662f955ea4e01351faa9f5300cf35c72ae60915062ceff7891e7677519196bf813333361dbbeecfe8dc127a94c20b9faf036d71a816b1ab72e82019d0699b012a126022cc703136638dc8674905b4100e9b8d62abdeb13c84be300b49ae44fcea4b892fbf6564cdb012699e9fd1c964f2a9d7f312656b47e6916682b0044157f4e2dfb9d5f55d68495d763c807d8ec6932e560c913ab76fc3ff820202ae44facbda1aa153108f168e421bdb1a93c382edf08cc79c5b711ae13c6eb8e54393f4998ec99a95ae7f85999e78439ba603445545f21ffc856207eea9455fb14c0ad967f22cf0f572dba5cac7450e4e52ce713ce871fc76d7adca01260ea708da434001805bcfd1f3ccd1c6084d5ec2a29f00e77aa4f91dee13eeb5fcce8e82a103b37f6c4f2525951eaad449a08a75d2f341f17b2cbdf1730d192ef758a6e8f883d88c07f2ef41b443daa795000244263d2d30c762f6fecf3bb67f8dda6ca7d9d40a18e18626853c5094ef66ed64617ee9388c037a74a961692d4470796a683f880eb9041060acee4e7618b717a057951e1c662362fd26709bd80af39fe5c11f9654c2655b21edcc32428491dc5c101e6a222d2e51b9f23d960f12748d9a5fc3e2f6c953972347656a9f787ee5bd196445aa2eaf8f8fbdafaa34ed1b055a09b3718d8b3c8f1cfe5ac53cf37c9fa76fe7ac7087157bdba523e2a9e710b3f5b5a7ff9b8b1f612d9bbbb1104f9d6df98787e92523fe1d30101edf53d89df4a3c42bd3bd2737f3afe0154ee1e8d93d9a2775d84c686dac8984512cf9559623ac6fe4ef79f7b34b21969a8a8a7243f41e11a58de3e4e18f3385ee7003c79fa527b94e72338f2a1c4c45ff045a611fe1db3cdda0fef121f78c527534dab266dd3ff6f73d6b6bc03998309830510a57eb0e2d74de38112775b8775d99c15e38d0e709f397492fc6462f6e57a7ff65d25be9eb7530a5ef4fc807ff9e09b701b59d250b541a546db75d111f560a47217c122c6b2928d5a0a047a988b3ac5131df0096c15bbc398d0e6965841b17f491635885d8987a04bbe2482157b5ca883c767ea156b4e1784ba1b7cfeb343a71eb03ebce88792aed8b18e7fd880cd5934cbe55523c1b7c82b3ed99b3de90a479f251e1904ac86f28021957ef35421d3c8a2d39eee7314e3f3f945ea2fb5ff7f6c09ba472ff3e562c6168b0c1f843658bb180ebfcf954e58e633fb1612751bf360b15fe67ca594f5aae34233a3b58eeba562fad63") test$length10(&(0x7f0000fff000/0x1000)=nil, 0x1000, 0x1000, 0x800, 0x400) syz_compare(&(0x7f0000000000)='\'/+,\x00', 0x5, &(0x7f0000000040)=@bf5={0x1c, {0x1, 0x3}}, 0x8) syz_compare_int$2(0x2, 0xffff, 0x100) syz_errno(0xfffffff9) syz_execute_func(&(0x7f0000000080)="feaa0e278d403f03c2bf80488676754e435032f81eee19ffa3f48ca758e82b077289834eb79be67b6cf437e2d9b101f397d7") syz_exit(0xffffffc0) syz_mmap(&(0x7f0000ffc000/0x1000)=nil, 0x1000) syz_sleep_ms(0x1) syz_test_fuzzer1(0xd, 0xc, 0xb) 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 #ifndef SYS_breaks_returns #define SYS_breaks_returns 0 #endif #ifndef SYS_foo #define SYS_foo 0 #endif #ifndef SYS_serialize2 #define SYS_serialize2 0 #endif #ifndef SYS_test #define SYS_test 0 #endif 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[] = "./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 { pthread_mutex_t mu; pthread_cond_t cv; int state; } event_t; static void event_init(event_t* ev) { if (pthread_mutex_init(&ev->mu, 0)) exit(1); if (pthread_cond_init(&ev->cv, 0)) exit(1); ev->state = 0; } static void event_reset(event_t* ev) { ev->state = 0; } static void event_set(event_t* ev) { pthread_mutex_lock(&ev->mu); if (ev->state) exit(1); ev->state = 1; pthread_mutex_unlock(&ev->mu); pthread_cond_broadcast(&ev->cv); } static void event_wait(event_t* ev) { pthread_mutex_lock(&ev->mu); while (!ev->state) pthread_cond_wait(&ev->cv, &ev->mu); pthread_mutex_unlock(&ev->mu); } static int event_isset(event_t* ev) { pthread_mutex_lock(&ev->mu); int res = ev->state; pthread_mutex_unlock(&ev->mu); return res; } static int event_timedwait(event_t* ev, uint64_t timeout) { uint64_t start = current_time_ms(); uint64_t now = start; pthread_mutex_lock(&ev->mu); for (;;) { if (ev->state) break; uint64_t remain = timeout - (now - start); struct timespec ts; ts.tv_sec = remain / 1000; ts.tv_nsec = (remain % 1000) * 1000 * 1000; pthread_cond_timedwait(&ev->cv, &ev->mu, &ts); now = current_time_ms(); if (now - start > timeout) break; } int res = ev->state; pthread_mutex_unlock(&ev->mu); return res; } #define BITMASK(bf_off,bf_len) (((1ull << (bf_len)) - 1) << (bf_off)) #define STORE_BY_BITMASK(type,htobe,addr,val,bf_off,bf_len) *(type*)(addr) = htobe((htobe(*(type*)(addr)) & ~BITMASK((bf_off), (bf_len))) | (((type)(val) << (bf_off)) & BITMASK((bf_off), (bf_len)))) static long syz_mmap(volatile long a0, volatile long a1) { return (long)mmap((void*)a0, a1, PROT_READ | PROT_WRITE, MAP_ANON | MAP_PRIVATE | MAP_FIXED, -1, 0); } static long syz_errno(volatile long v) { errno = v; return v == 0 ? 0 : -1; } static long syz_exit(volatile long status) { _exit(status); return 0; } static long syz_sleep_ms(volatile long ms) { sleep_ms(ms); return 0; } static long syz_compare(volatile long want, volatile long want_len, volatile long got, volatile long got_len) { if (want_len != got_len) { errno = EBADF; goto error; } if (memcmp((void*)want, (void*)got, want_len)) { errno = EINVAL; goto error; } return 0; error: return -1; } static long syz_compare_int(volatile long n, ...) { va_list args; va_start(args, n); long v0 = va_arg(args, long); long v1 = va_arg(args, long); long v2 = va_arg(args, long); long v3 = va_arg(args, long); va_end(args); if (n < 2 || n > 4) return errno = E2BIG, -1; if (n <= 2 && v2 != 0) return errno = EFAULT, -1; if (n <= 3 && v3 != 0) return errno = EFAULT, -1; if (v0 != v1) return errno = EINVAL, -1; if (n > 2 && v0 != v2) return errno = EINVAL, -1; if (n > 3 && v0 != v3) return errno = EINVAL, -1; return 0; } static void loop(); static int do_sandbox_none(void) { loop(); return 0; } static void fake_crash(const char* name) { exit(1); exit(1); } static long syz_test_fuzzer1(volatile long a, volatile long b, volatile long c) { if (a == 1 && b == 1 && c == 1) fake_crash("first bug"); if (a == 1 && b == 2 && c == 3) fake_crash("second bug"); return 0; } 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 < 18; 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(); } void execute_call(int call) { switch (call) { case 0: inject_fault(1); syscall(SYS_breaks_returns); break; case 1: syscall(SYS_breaks_returns); break; case 2: *(uint8_t*)0x20000000 = 0x20; *(uint16_t*)0x20000001 = htobe16(8); *(uint32_t*)0x20000003 = htobe32(7); *(uint64_t*)0x20000007 = htobe64(0x7fffffff); syscall(SYS_test, /*a0=*/0x20000000ul, 0, 0, 0, 0, 0); { int i; for(i = 0; i < 4; i++) { syscall(SYS_test, /*a0=*/0x20000000ul, 0, 0, 0, 0, 0); } } break; case 3: *(uint64_t*)0x20000040 = 0x20ffe000; *(uint64_t*)0x20000048 = 0x2000; syscall(SYS_test, /*a0=*/0x20000040ul, 0, 0, 0, 0, 0); break; case 4: *(uint64_t*)0x20001280 = 0x20001240; *(uint64_t*)0x20001240 = 0x20000600; *(uint64_t*)0x20000600 = 0; *(uint64_t*)0x20000608 = 0x200005c0; *(uint64_t*)0x200005c0 = 0x20000080; *(uint64_t*)0x20000080 = 0; *(uint64_t*)0x200005c8 = 0; *(uint64_t*)0x200005d0 = 0x20000180; *(uint64_t*)0x20000180 = 0x200000c0; *(uint64_t*)0x200000c0 = 0; *(uint64_t*)0x200000c8 = 0; *(uint64_t*)0x200000d0 = 0; *(uint64_t*)0x200000d8 = 0; *(uint64_t*)0x20000188 = 0x20000100; *(uint64_t*)0x20000100 = 0; *(uint64_t*)0x20000108 = 0; *(uint64_t*)0x20000110 = 0; *(uint64_t*)0x20000118 = 0; *(uint64_t*)0x20000190 = 0x20000140; *(uint64_t*)0x20000140 = 0; *(uint64_t*)0x20000148 = 0; *(uint64_t*)0x20000150 = 0; *(uint64_t*)0x20000158 = 0; *(uint64_t*)0x20000198 = 0; *(uint64_t*)0x200005d8 = 0x200002c0; *(uint64_t*)0x200002c0 = 0x200001c0; *(uint64_t*)0x200001c0 = 0; *(uint64_t*)0x200001c8 = 0; *(uint64_t*)0x200001d0 = 0; *(uint64_t*)0x200001d8 = 0; *(uint64_t*)0x200002c8 = 0x20000200; *(uint64_t*)0x20000200 = 0; *(uint64_t*)0x20000208 = 0; *(uint64_t*)0x20000210 = 0; *(uint64_t*)0x20000218 = 0; *(uint64_t*)0x200002d0 = 0x20000240; *(uint64_t*)0x20000240 = 0; *(uint64_t*)0x20000248 = 0; *(uint64_t*)0x20000250 = 0; *(uint64_t*)0x20000258 = 0; *(uint64_t*)0x200002d8 = 0x20000280; *(uint64_t*)0x20000280 = 0; *(uint64_t*)0x20000288 = 0; *(uint64_t*)0x20000290 = 0; *(uint64_t*)0x20000298 = 0; *(uint64_t*)0x200005e0 = 0; *(uint64_t*)0x200005e8 = 0x20000580; *(uint64_t*)0x20000580 = 0x20000300; *(uint64_t*)0x20000300 = 0; *(uint64_t*)0x20000588 = 0; *(uint64_t*)0x20000590 = 0x20000400; *(uint64_t*)0x20000400 = 0x20000340; *(uint64_t*)0x20000340 = 0; *(uint64_t*)0x20000348 = 0; *(uint64_t*)0x20000350 = 0; *(uint64_t*)0x20000358 = 0; *(uint64_t*)0x20000408 = 0x20000380; *(uint64_t*)0x20000380 = 0; *(uint64_t*)0x20000388 = 0; *(uint64_t*)0x20000390 = 0; *(uint64_t*)0x20000398 = 0; *(uint64_t*)0x20000410 = 0; *(uint64_t*)0x20000418 = 0x200003c0; *(uint64_t*)0x200003c0 = 0; *(uint64_t*)0x200003c8 = 0; *(uint64_t*)0x200003d0 = 0; *(uint64_t*)0x200003d8 = 0; *(uint64_t*)0x20000598 = 0x20000540; *(uint64_t*)0x20000540 = 0x20000440; *(uint64_t*)0x20000440 = 0; *(uint64_t*)0x20000448 = 0; *(uint64_t*)0x20000450 = 0; *(uint64_t*)0x20000458 = 0; *(uint64_t*)0x20000548 = 0x20000480; *(uint64_t*)0x20000480 = 0; *(uint64_t*)0x20000488 = 0; *(uint64_t*)0x20000490 = 0; *(uint64_t*)0x20000498 = 0; *(uint64_t*)0x20000550 = 0x200004c0; *(uint64_t*)0x200004c0 = 0; *(uint64_t*)0x200004c8 = 0; *(uint64_t*)0x200004d0 = 0; *(uint64_t*)0x200004d8 = 0; *(uint64_t*)0x20000558 = 0x20000500; *(uint64_t*)0x20000500 = 0; *(uint64_t*)0x20000508 = 0; *(uint64_t*)0x20000510 = 0; *(uint64_t*)0x20000518 = 0; *(uint64_t*)0x200005a0 = 0; *(uint64_t*)0x200005a8 = 0; *(uint64_t*)0x20001248 = 0x20001200; *(uint64_t*)0x20001200 = 0x20000680; *(uint64_t*)0x20000680 = 0x20000640; *(uint64_t*)0x20000640 = 0; *(uint64_t*)0x20001208 = 0x200009c0; *(uint64_t*)0x200009c0 = 0; *(uint64_t*)0x200009c8 = 0x20000980; *(uint64_t*)0x20000980 = 0x20000700; *(uint64_t*)0x20000700 = 0x200006c0; *(uint64_t*)0x200006c0 = 0; *(uint64_t*)0x20000988 = 0; *(uint64_t*)0x20000990 = 0x20000840; *(uint64_t*)0x20000840 = 0x20000740; *(uint64_t*)0x20000740 = 0; *(uint64_t*)0x20000748 = 0; *(uint64_t*)0x20000750 = 0; *(uint64_t*)0x20000758 = 0; *(uint64_t*)0x20000848 = 0x20000780; *(uint64_t*)0x20000780 = 0; *(uint64_t*)0x20000788 = 0; *(uint64_t*)0x20000790 = 0; *(uint64_t*)0x20000798 = 0; *(uint64_t*)0x20000850 = 0x200007c0; *(uint64_t*)0x200007c0 = 0; *(uint64_t*)0x200007c8 = 0; *(uint64_t*)0x200007d0 = 0; *(uint64_t*)0x200007d8 = 0; *(uint64_t*)0x20000858 = 0x20000800; *(uint64_t*)0x20000800 = 0; *(uint64_t*)0x20000808 = 0; *(uint64_t*)0x20000810 = 0; *(uint64_t*)0x20000818 = 0; *(uint64_t*)0x20000998 = 0x20000940; *(uint64_t*)0x20000940 = 0x20000880; *(uint64_t*)0x20000880 = 0; *(uint64_t*)0x20000888 = 0; *(uint64_t*)0x20000890 = 0; *(uint64_t*)0x20000898 = 0; *(uint64_t*)0x20000948 = 0x200008c0; *(uint64_t*)0x200008c0 = 0; *(uint64_t*)0x200008c8 = 0; *(uint64_t*)0x200008d0 = 0; *(uint64_t*)0x200008d8 = 0; *(uint64_t*)0x20000950 = 0x20000900; *(uint64_t*)0x20000900 = 0; *(uint64_t*)0x20000908 = 0; *(uint64_t*)0x20000910 = 0; *(uint64_t*)0x20000918 = 0; *(uint64_t*)0x20000958 = 0; *(uint64_t*)0x200009a0 = 0; *(uint64_t*)0x200009a8 = 0; *(uint64_t*)0x20001210 = 0x20000ac0; *(uint64_t*)0x20000ac0 = 0x20000a00; *(uint64_t*)0x20000a00 = 0; *(uint64_t*)0x20000a08 = 0; *(uint64_t*)0x20000a10 = 0; *(uint64_t*)0x20000a18 = 0; *(uint64_t*)0x20000ac8 = 0; *(uint64_t*)0x20000ad0 = 0x20000a40; *(uint64_t*)0x20000a40 = 0; *(uint64_t*)0x20000a48 = 0; *(uint64_t*)0x20000a50 = 0; *(uint64_t*)0x20000a58 = 0; *(uint64_t*)0x20000ad8 = 0x20000a80; *(uint64_t*)0x20000a80 = 0; *(uint64_t*)0x20000a88 = 0; *(uint64_t*)0x20000a90 = 0; *(uint64_t*)0x20000a98 = 0; *(uint64_t*)0x20001218 = 0x20000bc0; *(uint64_t*)0x20000bc0 = 0x20000b00; *(uint64_t*)0x20000b00 = 0; *(uint64_t*)0x20000b08 = 0; *(uint64_t*)0x20000b10 = 0; *(uint64_t*)0x20000b18 = 0; *(uint64_t*)0x20000bc8 = 0; *(uint64_t*)0x20000bd0 = 0x20000b40; *(uint64_t*)0x20000b40 = 0; *(uint64_t*)0x20000b48 = 0; *(uint64_t*)0x20000b50 = 0; *(uint64_t*)0x20000b58 = 0; *(uint64_t*)0x20000bd8 = 0x20000b80; *(uint64_t*)0x20000b80 = 0; *(uint64_t*)0x20000b88 = 0; *(uint64_t*)0x20000b90 = 0; *(uint64_t*)0x20000b98 = 0; *(uint64_t*)0x20001220 = 0x20000e80; *(uint64_t*)0x20000e80 = 0; *(uint64_t*)0x20000e88 = 0x20000c00; *(uint64_t*)0x20000c00 = 0; *(uint64_t*)0x20000c08 = 0; *(uint64_t*)0x20000e90 = 0x20000d40; *(uint64_t*)0x20000d40 = 0x20000c40; *(uint64_t*)0x20000c40 = 0; *(uint64_t*)0x20000c48 = 0; *(uint64_t*)0x20000c50 = 0; *(uint64_t*)0x20000c58 = 0; *(uint64_t*)0x20000d48 = 0x20000c80; *(uint64_t*)0x20000c80 = 0; *(uint64_t*)0x20000c88 = 0; *(uint64_t*)0x20000c90 = 0; *(uint64_t*)0x20000c98 = 0; *(uint64_t*)0x20000d50 = 0x20000cc0; *(uint64_t*)0x20000cc0 = 0; *(uint64_t*)0x20000cc8 = 0; *(uint64_t*)0x20000cd0 = 0; *(uint64_t*)0x20000cd8 = 0; *(uint64_t*)0x20000d58 = 0x20000d00; *(uint64_t*)0x20000d00 = 0; *(uint64_t*)0x20000d08 = 0; *(uint64_t*)0x20000d10 = 0; *(uint64_t*)0x20000d18 = 0; *(uint64_t*)0x20000e98 = 0x20000e40; *(uint64_t*)0x20000e40 = 0x20000d80; *(uint64_t*)0x20000d80 = 0; *(uint64_t*)0x20000d88 = 0; *(uint64_t*)0x20000d90 = 0; *(uint64_t*)0x20000d98 = 0; *(uint64_t*)0x20000e48 = 0x20000dc0; *(uint64_t*)0x20000dc0 = 0; *(uint64_t*)0x20000dc8 = 0; *(uint64_t*)0x20000dd0 = 0; *(uint64_t*)0x20000dd8 = 0; *(uint64_t*)0x20000e50 = 0x20000e00; *(uint64_t*)0x20000e00 = 0; *(uint64_t*)0x20000e08 = 0; *(uint64_t*)0x20000e10 = 0; *(uint64_t*)0x20000e18 = 0; *(uint64_t*)0x20000e58 = 0; *(uint64_t*)0x20000ea0 = 0; *(uint64_t*)0x20000ea8 = 0; *(uint64_t*)0x20001228 = 0x200011c0; *(uint64_t*)0x200011c0 = 0x20000f00; *(uint64_t*)0x20000f00 = 0x20000ec0; *(uint64_t*)0x20000ec0 = 0; *(uint64_t*)0x200011c8 = 0x20000f40; *(uint64_t*)0x20000f40 = 0; *(uint64_t*)0x20000f48 = 0; *(uint64_t*)0x200011d0 = 0x20001040; *(uint64_t*)0x20001040 = 0x20000f80; *(uint64_t*)0x20000f80 = 0; *(uint64_t*)0x20000f88 = 0; *(uint64_t*)0x20000f90 = 0; *(uint64_t*)0x20000f98 = 0; *(uint64_t*)0x20001048 = 0x20000fc0; *(uint64_t*)0x20000fc0 = 0; *(uint64_t*)0x20000fc8 = 0; *(uint64_t*)0x20000fd0 = 0; *(uint64_t*)0x20000fd8 = 0; *(uint64_t*)0x20001050 = 0; *(uint64_t*)0x20001058 = 0x20001000; *(uint64_t*)0x20001000 = 0; *(uint64_t*)0x20001008 = 0; *(uint64_t*)0x20001010 = 0; *(uint64_t*)0x20001018 = 0; *(uint64_t*)0x200011d8 = 0x20001180; *(uint64_t*)0x20001180 = 0x20001080; *(uint64_t*)0x20001080 = 0; *(uint64_t*)0x20001088 = 0; *(uint64_t*)0x20001090 = 0; *(uint64_t*)0x20001098 = 0; *(uint64_t*)0x20001188 = 0x200010c0; *(uint64_t*)0x200010c0 = 0; *(uint64_t*)0x200010c8 = 0; *(uint64_t*)0x200010d0 = 0; *(uint64_t*)0x200010d8 = 0; *(uint64_t*)0x20001190 = 0x20001100; *(uint64_t*)0x20001100 = 0; *(uint64_t*)0x20001108 = 0; *(uint64_t*)0x20001110 = 0; *(uint64_t*)0x20001118 = 0; *(uint64_t*)0x20001198 = 0x20001140; *(uint64_t*)0x20001140 = 0; *(uint64_t*)0x20001148 = 0; *(uint64_t*)0x20001150 = 0; *(uint64_t*)0x20001158 = 0; *(uint64_t*)0x200011e0 = 0; *(uint64_t*)0x200011e8 = 0; *(uint64_t*)0x20001288 = 0; syscall(SYS_test, /*a0=*/0x20001280ul, 0, 0, 0, 0, 0); break; case 5: syscall(SYS_foo, /*a0=*/0x200012c0ul, /*a1=*/0x20001300ul, /*a2=*/0x20001340ul); break; case 6: syscall(SYS_breaks_returns); break; case 7: syscall(SYS_test, /*a0=*/0x20ffe000ul, /*a1=*/0, /*a2=*/0x1000, /*a3=*/0x800, /*a4=*/0x400ul, 0); break; case 8: memcpy((void*)0x20001380, "\xb3\xeb\x98\x0b\x12\xaf\x03\x68\x48\x32\xff\x0d\x13\x67\xb0\x5d\xed\x25\x0f\x35\x0b\xff\xb9\xc6\x72\x43\xa4\xa2\x6c\xac\x6a\x56\x64\xba\x93\xce\x0c\x5f\xfc\xa8\x1d\x81\xc8\xa8\xa1\x84\x16\x56\x6c\x33\xd0\x0a\x99\x9b\xaf\x45\xad\x35\x17\x40\x79\x5a\x1a\x3a\x7f\x59\xab\xe5\x9a\xc2\x18\xf6\xe2\x04\xdc\x13\x29\xf1\x58\xd3\x6e\x4d\x0c\x86\x20\x0e\x4d\x8b\x5d\xbd\xa2\x75\xd2\x0e\x53\x15\xc5\x2e\x12\x89\x56\x63\xd7\xe5\xf4\xad\x1f\x0d\x1a\x8a\xc3\x01\x4e\xb4\x60\x3f\x30\x44\x5a\x97\x5d\x0a\x77\xfe\xec\x81\xe4\xe9\x9b\xd7\x1a\xca\xd6\x46\xcb\x04\xb6\x08\x19\xe8\xec\x24\xa8\xa2\xdb\x39\x09\x68\x8b\xb2\x84\x16\x28\x72\xbc\x71\x5c\x3e\xf9\x86\x3a\x13\xd6\x0f\x4e\x3a\xcd\x69\x54\xf1\xff\x26\x8e\xee\x5c\xbe\x35\x46\x5b\x4e\x65\xc6\x0d\xbf\x3d\xa3\x56\x89\xaf\x39\xd3\xdc\x0d\x9d\x22\x26\x40\x61\x47\xfe\xcc\xad\x22\xfd\x6d\x92\x55\xa8\xb9\x21\x78\xc6\xaf\xa7\xaa\x2d\xec\xd0\xae\x46\xec\x45\xc9\xbb\xf6\xe5\x3f\xea\xd2\xd6\x82\xd7\x15\x17\x5b\xa6\x08\xf8\x4b\xa1\x4d\x9a\x28\xc5\xe4\x7e\xbd\x82\x9a\x76\xbc\xa0\xc2\x82\x1b\x0e\x29\x91\x5a\x28\x89\xe0\x01\xa2\x01\x52\x4f\xcf\x62\x45\xad\xcf\x4d\x32\x6d\x69\x17\x6d\x7f\xa2\x7e\xd8\xd5\x93\xe2\x5e\xef\x7a\xfa\xa1\x47\x9e\x50\x63\x48\xf0\xa6\x75\x36\x97\x03\x4b\x9c\x60\x9f\x46\x51\x46\xf9\x56\x9d\xdd\x56\xaf\xf7\xfc\x2f\xad\xef\xb8\x9f\xa2\xd2\xd4\xb8\x38\xe7\xd6\x32\x00\x09\x7b\x77\xed\x52\xd9\xc3\x1c\x98\xfd\x76\xf9\x46\x7f\xf5\x11\x6c\xa0\x0f\x85\x84\x6a\x91\xbe\xf6\x94\x19\xaa\xc6\xeb\xc7\xdd\xfb\xa2\xb2\x68\xbf\xe2\x62\xf6\xf5\x5d\x52\xa6\x47\xaf\x8a\x0b\x45\x39\x1b\xa9\xdf\x09\xe2\x56\x64\x01\x9b\x41\x07\xa2\x31\xee\x76\x1a\x81\x96\x0c\x11\x98\xf5\x20\x9e\x3c\x37\x07\xd7\x68\xb8\xd0\x99\xee\xe5\x63\x05\x5a\x88\xc3\x04\x9f\x5a\xdd\xf8\x74\x7a\x2d\xfd\x6f\x3b\x43\xc5\xc2\x5d\xf5\x0c\x8a\x4b\x77\x87\x2a\x8d\x89\x05\xdf\xa0\x88\x5a\xdd\xdb\x8f\xd4\x9e\x29\x73\x52\x62\xb1\xc9\x4e\xa5\x9c\xe0\xce\xa5\xa0\x61\xfb\xb0\x42\xc7\xe3\x01\xe2\x92\x12\xf2\xf1\x47\x6e\x7c\x25\x31\x7c\xb5\xfa\x81\x77\x4d\x78\xb2\x0e\xfe\xa3\x77\xd4\xfb\xfd\xb1\x90\xcc\x1f\xd5\x8f\x56\x8e\x6a\xc1\x9b\xe0\x5d\x99\xc8\x36\x24\x28\xf5\x9f\x47\x31\x1a\xbf\x17\x8f\x6b\x08\x36\x45\xcc\xf0\x13\x62\x4a\x41\x8b\x8d\x9f\xec\xfa\x26\xf7\xdc\xba\x32\xb4\x39\x54\x49\xc0\xd1\xef\x6f\xa3\x7f\x33\xfa\x5e\xa6\x01\x92\xbb\x5c\xe9\x2e\x45\x8d\x90\xce\xdf\x0e\x85\x78\x78\x11\xc6\x4b\xd0\x43\x6f\x4c\x5c\xa0\x1f\xac\xae\x7b\x79\x3d\x69\x64\x42\x98\x28\x41\xf6\xe8\x3f\x60\x3d\x58\x06\x74\x2a\x4e\xc7\xac\xb4\x06\xc5\x5b\x27\xaa\xad\x7a\x62\x8e\xb2\xf4\x1f\x80\x07\xc0\xe3\x72\x8f\xa1\xf4\x01\x94\xd2\x71\x39\x2f\x6c\x7f\x68\x4e\x1d\xbe\x23\x9c\xf6\xc5\x01\xbd\x4f\x4f\x64\x31\x53\xb4\xe7\xbd\x32\xff\x4b\x3d\xb3\x61\xfe\x9c\x4a\x87\xb4\xd7\x49\x2e\xef\x74\x9b\xd1\x8c\x6a\x44\xda\xba\x60\x54\x2d\xea\xdc\x45\xcb\xfa\x8a\x46\xb8\xd2\x52\x67\x0e\xe3\x12\xed\xe5\x3b\xb5\x16\xf0\x00\x0c\xc2\x50\x09\xf4\xd4\xe7\x4c\x6f\x61\x30\x6c\x34\x4a\x9b\xa4\x8f\xa2\xa2\xd7\x0f\x3e\x1a\xc0\x18\xf9\xc0\xd1\x5d\xda\xaf\xb5\xcf\x89\x86\x7c\xa6\xbf\x6b\x37\x42\x7c\x47\x7e\xec\x1a\xcb\x7f\x36\x9b\x94\x22\xa8\x85\x8e\xbc\x2f\x3a\x10\xa9\xe9\x0a\xea\x0f\x4d\xf8\x2a\xb2\xe8\xd1\x0d\xff\xcb\x99\x89\x2a\x81\x55\xb4\xf8\xaf\xf7\x9e\x93\xdf\x24\x84\x8a\xef\x03\x5e\x85\xd5\x70\x48\xc7\xc9\x3f\xe5\x44\xe3\xef\x17\x54\xc4\x92\x40\x57\x3a\xc1\xea\x67\xb9\x4d\x85\x74\x54\x2d\xff\x03\xf0\x6b\xfe\xdc\x3f\x51\xc6\x20\x40\x28\x61\xf7\x77\xfa\x47\xbc\x05\xc8\x65\xa6\xe6\x3a\xb4\x8e\x70\xc4\xb3\x14\xe6\xf8\x09\x53\xcb\x1a\x22\xb9\x22\x6a\x1b\x3c\xc0\x84\x73\x6b\x2a\x82\x6a\x7f\xc8\x41\x02\x3e\xaa\x56\x44\x8d\x94\x75\x7b\x01\x38\x33\xc5\x3e\x18\x2c\x1d\xe0\x66\x87\x87\x01\xde\xf7\x3b\xdd\x13\xd7\x40\x45\x65\xdc\xc3\x17\xae\x65\x03\x83\xb3\xea\x7d\x5e\x6a\xed\x3d\xbf\x57\x5a\x2c\xa5\x13\x28\x50\xe3\x94\xad\xeb\x9f\xee\x10\x87\x19\x37\x83\x20\xb9\xb4\xe0\xc5\xa6\xdd\xc7\x75\x94\xa8\x02\x41\x51\xb3\xa6\xd3\x22\xfb\x48\xe5\xdb\x7f\x0f\xb0\x4a\x91\x49\xfb\x27\x8e\xd9\xd8\xad\x19\xb1\xb8\xa2\x68\xcb\xa4\xb3\x00\xe9\x31\x39\xf2\xb6\x11\xbb\x77\x79\x83\xb7\x4d\x6f\xac\x85\x2d\x74\x3f\xb5\x01\x1f\x9b\xf2\xbf\xd3\xf4\x31\x4c\xdc\x9b\x1e\x71\xc6\x5e\xa7\x6e\x49\x53\xaf\x36\xbc\xb4\xb9\x64\x9a\xa0\xee\xaa\x6c\x89\x2e\x17\x0d\x32\x85\x24\x17\x08\x59\x4a\x91\xbd\xec\x0f\xde\xdd\x97\x4b\x42\x20\xb4\xb7\x0a\x5a\x93\x99\x38\x52\x7c\x6e\x6e\xf8\x23\xb3\x62\x56\xc1\x36\x9f\xbe\xed\x64\xa9\x0e\x8b\xe5\x45\xea\xc8\x96\x8c\x76\x41\x39\xcc\xd4\xdc\x59\x01\xbc\x01\x99\x85\xaa\xb5\xfe\x71\xe2\x4c\x55\xf2\x60\xc4\xc4\xb7\xfd\x5c\xf5\x28\x8b\x13\xdc\xda\x57\xbb\x34\x50\xfb\x4f\x6e\xce\x5e\x7c\x4a\x0a\x21\xff\xf3\x12\x4c\x3c\x78\x3a\xfa\x87\x44\xf6\xca\x3f\x5c\x3d\xe5\xb4\xc1\x54\xce\xa1\x2b\xa4\x7c\x3c\x69\x4e\xa8\x30\x3a\x8d\x7c\x85\x10\x08\x9c\xc1\x60\x9a\x82\xe6\xa7\xe0\x89\xf6\x3a\xfd\x05\x85\xd3\xf5\xab\xa2\x26\x34\xdd\x7c\x95\x79\x36\x4d\xa1\xd9\x3a\x99\x5f\x77\x06\xda\x20\x8d\x65\xb9\x48\xd7\x46\x13\xe0\xe4\xf8\xc7\x79\x74\xdb\x27\x2e\xdf\x2f\x8d\x52\x91\xcd\x3a\xf0\xd0\xad\xee\xcc\x16\x35\x85\x16\x1b\xc8\xec\x9b\x62\x82\x3f\xeb\x86\x4a\x8f\xfa\x00\x12\x07\x19\x98\x19\x07\xc0\x27\xef\x41\xa9\xc5\xeb\xef\x88\x41\x1b\x42\x0e\x2c\x60\x41\xe9\x4d\xba\xe9\x38\x8f\x72\xdb\x00\x89\xd4\x73\x3c\xed\xc3\x68\xcd\x1d\x68\x05\x63\x4c\x80\xbf\xfb\x9c\x34\x30\xf4\x02\xb7\x3f\xff\x1d\x6c\xf3\x55\xb9\x50\x9c\x1b\xfd\x48\xe7\x9b\x14\x17\x14\x1c\x9b\x9a\xb1\xc0\xf6\x2a\x4c\xf9\x7b\xae\x55\xfe\x53\xaf\xea\x35\x3c\x10\x61\xbb\x88\x2e\x10\x1d\x74\x34\xb3\x9b\xe6\x55\x8e\x77\xea\x26\xb4\x4b\x50\x7c\x2c\x44\xdd\x0a\x62\x5c\x04\x4b\x0a\x78\xee\x23\x64\x86\x28\x42\xd9\xef\x0f\x1b\xcb\x56\x3f\x01\xad\xbd\xee\x69\xe5\x2d\x02\x28\x56\xad\x65\x04\xd8\x11\xe8\x49\xab\x47\x0d\x61\x3d\xa0\xce\x95\x10\x03\x52\x98\x22\xad\xc1\x02\xc4\xc6\x2a\x3a\xad\x2f\x73\x92\xaa\x46\x01\xab\x08\x63\x15\x0c\x35\x8a\xee\xc2\xfc\x5e\x3a\x90\x6d\xf0\x0f\xe5\xdb\x12\x26\xba\xc2\x0f\x08\xd7\x01\xf1\x81\xb9\x0a\x4d\x38\x9b\x91\xdd\xdb\xc2\x4e\x40\x48\x8e\x1c\x46\xab\x2d\x05\xb4\x82\x30\x29\x45\x3c\xc9\x25\x3e\xbc\x43\x70\x96\x4a\x64\xc1\x08\x7c\xb3\x85\x7d\x73\x6d\xc3\x03\xce\x93\x06\x6d\xb6\x0f\xc6\x1b\xe9\xf7\x9c\x0c\x9e\x1c\xa7\xe4\xd7\x3f\x95\x17\x2b\xcb\xaf\x6c\xbd\x18\xc0\x6d\x1c\x1c\xcc\xf2\x3d\x85\x59\x2e\xe6\x84\x43\x49\xb5\xe7\x2e\x6a\x5e\x10\xf5\xee\xd5\xec\xa8\xf9\xc0\xa8\xa9\x5e\x21\x43\x89\x53\x01\x94\xa0\x30\x43\xb2\x11\x08\xa4\x9e\x34\x66\xce\xbe\x30\x78\xda\xdd\x36\x4f\xaf\x67\xfe\x3c\x51\xe1\xdf\x75\xf4\xaa\x61\x98\x54\xb7\x80\xe0\xc0\x4e\x9a\x9b\xf2\x30\x1c\x03\x0a\x36\x26\xce\x82\x0a\xfc\x59\xe1\xc1\x3e\xd6\xfa\x3e\x30\x30\xb9\x66\xf3\x87\x8f\x17\xa1\x6a\x12\x09\x98\x7a\xa9\xf7\xeb\x76\x98\x8d\x40\x1f\x10\xbd\xb0\xa4\x19\xdd\xce\xd1\x10\x56\x59\xe6\x21\x94\x40\xe3\x5e\x98\x4c\x3e\x7a\xda\x78\xc3\x0a\x9a\x73\x99\xce\x1a\xbc\xe3\x6c\x7c\xe3\xe3\x9a\x89\xcf\xac\x98\xf2\x49\x73\x59\x14\xcf\xc1\x6b\xaf\x66\x6e\xd4\xb5\x1f\xf2\x19\x3c\x28\x36\xbd\x43\xe5\xd5\x37\xf2\x65\x36\x46\xf0\x5c\x81\x09\xef\x8e\xdf\xd3\x5b\x3a\xcd\x73\xeb\x7e\x79\x0c\x64\xcc\x2a\x7c\x95\x96\xe4\xa5\xf3\xd0\xe2\xd9\x2b\x30\x1c\x9e\xc5\xd8\x27\x68\xab\x21\x18\x01\xbe\xa9\x63\x40\xc3\x0e\x1b\x09\xfc\x9f\xae\x7c\xff\x26\x15\xd6\x1e\xde\x29\xf9\xb0\xd7\x12\xab\xff\xcd\x93\xea\x3b\x20\xce\xb7\xaa\x57\x36\x8e\x84\xc3\x87\x6e\xcd\x7a\x93\x1c\xb1\x9e\xa5\x17\x60\x3e\xf4\x4a\x98\xb2\x46\x28\x8b\x27\x33\x69\x80\xe4\xbb\x50\x90\x07\xbc\xd0\x18\x58\xcd\x35\xe9\xcd\x8d\xf2\x88\x22\x1d\x3a\x48\x72\x68\x82\x8f\xe7\x32\xfd\x7d\xa2\xe2\xb6\x92\x6b\x4a\x9b\x54\xd5\x4b\x41\xc7\x79\x98\xd1\xef\x53\x84\x87\xe1\xdc\xdf\x87\xfc\xc3\xfa\xb2\x5c\x77\xa7\xcf\x01\xf8\x60\x87\xe2\xb9\x5e\x1e\x4d\x45\x52\x2f\xc3\xf4\x4a\x14\xcb\xfa\xcd\x48\xd6\x3e\xba\x04\x2c\xa3\xe1\x4a\xf8\xe5\xbe\xd3\x18\x6d\xe4\xfb\x69\xf3\x87\xaa\xc8\x82\x42\xd6\x4f\xbd\xcd\x11\x0c\x33\x88\x21\xad\x72\x56\x2f\x09\x2f\x55\xfa\x73\xb5\xe7\xd9\x2c\x9b\x6f\xee\x57\x94\xef\x48\x23\x19\x0f\x92\x57\xb1\x1f\xf4\xfc\x44\x57\xdb\xa9\x0f\xbd\xa8\x0d\xaf\xb5\x17\xfa\x27\x51\x94\x89\x01\x6f\x6f\x45\x80\x06\x40\x1f\x9f\xea\x20\x42\x6a\x54\x5a\xab\x77\x84\xc4\xe3\xdf\x9d\xfa\x9f\xb2\x79\xcf\x21\xa8\x6c\xe3\xf2\x92\xcf\x52\xd3\x43\xfc\xe9\x7e\x05\xb9\x2c\x84\x72\x3d\x7d\xdc\x65\xa7\xbc\x79\xae\x73\xb1\x24\x6b\x6b\x65\x04\x8a\x38\x55\xb6\x2b\x13\x40\x26\x46\x27\xc1\xdf\x82\xf3\x35\x2f\x3a\xc6\xd5\xa7\x5e\x08\x23\x57\x2c\x2f\xb3\x92\xbd\x7e\xf1\x51\x93\xcc\x5f\x6f\xbe\xfc\x4d\x27\xff\xd7\x41\xa9\x3d\x1a\xb7\x99\xd9\xfb\xd5\x45\xd2\xd2\x60\x6e\x35\x66\xeb\x79\xd5\x44\x85\xf5\x56\x15\x10\xa5\x7f\x17\xf2\xb3\x90\x9e\xd1\xbf\xc5\xe5\xd6\x46\x92\xb6\xc5\x03\xeb\x58\xf1\x7c\xae\x55\x41\x37\x60\x74\x67\xe8\xab\x51\xd8\x67\x06\x7f\x50\x37\x4e\x99\xf7\x48\x69\xe0\x17\x7f\x4e\xb5\x2c\x29\x30\xdf\xe5\xca\x2b\x6e\x45\x4d\xb8\xa3\x62\x25\xb2\xc9\x36\xbd\xc5\xbb\x75\xf1\x35\x5f\xfd\x8d\x7f\xa4\x76\xeb\x28\x28\x71\xe5\x21\x11\x83\x2f\xcf\xc2\x46\xda\x41\x5c\x20\x0d\x9e\x6c\x35\x0f\x49\x84\x6a\x00\x22\x66\x01\x91\xa2\x84\x0d\x7a\x53\x75\x36\x74\xc7\x8e\xa0\x0a\x5b\x9e\x26\x6f\xf2\x9b\x1a\x8f\xb1\x93\xe1\x32\xd2\x3f\x96\x0c\xd9\xc8\x24\x9b\x94\x3f\xcd\xb8\x65\x39\x5b\x2c\x03\xab\x67\x5b\xbb\x19\x93\x81\x3f\xb0\xa8\xd1\xe6\x83\x31\x29\x7c\x88\xdb\x1d\xca\x00\x31\x3b\x82\x11\x12\x1b\x60\x23\x47\x5c\xb6\x9d\x6a\xc6\x6c\x11\x16\xa5\x61\x71\x35\x0f\x68\x0c\xc7\x4c\x88\xfe\x99\x05\xed\x07\x87\x80\xe6\xd7\x1b\xcc\x73\x5f\xee\x75\xa9\x44\x4f\x69\x5d\x03\x6a\xa6\xb4\xb9\xe5\x9b\x66\x80\xb6\x31\x29\x67\xf8\xb2\x36\xff\x8b\xee\x60\x31\x6a\x70\xcb\xa0\x31\x2c\x99\x3b\x92\xe3\x0c\xa4\xcb\x11\x8c\x17\x45\xe7\xb5\x78\xc0\xad\x6c\x3a\x7d\x81\x87\x37\x25\x95\xdd\x16\x08\x93\x11\x5f\x11\xb0\x54\xfc\x17\x18\xc9\x67\xbd\xaf\xe9\xbf\x95\xad\x58\x3d\xb5\x93\x96\xd5\x94\x11\x4b\x65\x00\x99\x6e\xef\xf8\x2b\x70\x19\x1e\x52\xfa\x23\x30\xef\xdc\x66\xfa\x36\x3c\xb3\x79\xc9\xc6\x77\x40\x53\x5c\x99\x60\xca\x85\x7c\xfe\x4d\x0a\x88\xbb\xbb\xf2\xe7\xb2\x03\x4b\xb8\x43\x98\x0f\x6f\xa8\x6f\xf6\x02\x33\x5d\x1e\x25\xa6\x13\xc7\xd7\xa4\xef\x7a\x6b\x16\x1c\x25\x82\x23\x9a\xa5\x6f\x5c\x89\x94\xd0\x66\x46\xe0\xaa\x62\xc4\x8b\x54\xe0\x85\x22\x23\x77\x2e\xd4\x4e\x70\x59\x69\x7a\xec\x6b\xc2\x22\x5e\x0e\xda\xc5\x5f\xdb\xff\x1a\x16\xd4\xc6\xde\xf4\xc7\x7d\xdf\x38\xb2\x77\x39\x52\xc8\x11\xff\x14\x5a\xe3\x66\xe2\x16\xc4\x16\x00\x65\x9f\xf7\x8f\x64\xb1\x9e\x35\x4d\x74\xf9\x0a\x61\x90\x7c\x85\xc7\x02\x39\x4f\xe2\xcc\xa4\xf5\xfe\xb5\xb5\x35\x30\xb5\xf4\xc9\xe7\x2f\x5c\x09\x0c\xa4\x64\xa7\xa9\xc3\x95\x14\x37\x35\xfd\xd2\x42\x1d\x07\xe8\xef\xe4\x19\x8a\xd0\x6f\x9d\x23\x0a\x91\xd5\xfb\x50\xef\xc0\x2c\x2d\xb6\xed\x4a\xd7\x50\x31\x9e\x3e\x67\x2f\x52\x13\xdd\xae\x92\xc3\xfc\xec\x0e\xd5\xdf\xf5\x22\xd0\xca\xb8\x9b\xb8\x25\x32\x54\x25\x55\x29\xb3\x2c\xf5\x38\x5c\x90\x01\x42\x1b\x92\xcc\x67\x16\x3c\xc3\x95\x23\x5e\x40\x8a\x46\x3f\xa3\x1e\xef\xd0\x74\x2d\xe5\x13\x9b\xba\x2d\xc1\x41\xff\xf7\xbe\x17\x5f\x41\x8c\xf7\xcf\x89\xdd\x4f\x47\x4a\x2f\xc6\x1d\x0f\x38\x51\xf3\x4d\x52\xc4\x9b\xbd\x12\x26\xbd\x08\x96\x30\x71\xf5\xd4\x91\x8f\x7e\x12\xd0\x02\x8d\x32\x1b\x3d\x6b\xd4\x36\xe0\x2f\x6e\x55\xcc\x48\xc6\x13\xe3\x29\x91\x6c\xb8\x54\x52\x44\xbb\xa3\x77\x90\x8d\x6b\xcf\xeb\x7e\xd6\x62\x08\xe5\x07\xb4\xdf\xd8\xf2\xcb\xa5\xa3\xd4\x2f\x3a\x4e\x4d\xa8\x0e\xba\x19\x9c\xc8\xae\xc8\xa4\x0f\x25\x47\x10\xd8\x11\x83\x24\x96\x75\x0c\x4b\x34\xc3\x6b\x74\x6b\xf3\xcb\x60\xda\xe8\x1e\x73\xda\x95\x2e\xe4\x1c\x2a\x40\x23\x72\xe5\x23\x9f\xd2\xd4\x07\xd8\xe9\x1b\x9e\x57\xb4\x75\x8a\xac\xe5\x9d\xf7\xd8\x3d\x38\xad\x17\x71\x6c\xae\x50\x9d\xdb\x24\x27\xcb\xcf\x84\x7a\x7b\x10\x8e\xdb\x4b\x3a\x70\x81\x71\xe7\x31\xa9\x77\x02\xb6\x37\x7c\x79\x34\xec\x9b\x4c\x74\x46\xea\x03\x1e\x62\xbb\x39\xa6\xe2\xd3\x20\xea\xa8\xb5\x91\x0b\x14\xd8\x82\x6c\x20\x4f\x7a\x4a\xb2\x36\x24\x0b\x48\x60\x66\xb2\x7b\xe7\xf6\x9b\x84\x42\xff\xc8\x03\xc4\xed\x7f\xdd\x23\xef\x2f\xa0\x33\x7d\xb8\x42\x68\x1c\x0f\x8e\xf2\xba\xdc\xc0\x81\x13\xfe\x80\x61\xab\x31\xfa\xf9\x89\xba\x55\x51\x2a\x5f\x0e\x7b\x93\x6d\x63\xc0\xcc\xed\x58\xef\x82\xcf\x0c\x2d\x29\xfb\x23\x18\xe1\x2b\x56\xd4\x91\x2e\x9c\x4f\x96\xdb\x02\xca\x84\x49\x29\x4d\xa3\x3f\x8f\xce\x55\x07\xd3\xeb\x99\x23\x90\x72\xe2\xb2\xe1\x2e\x33\x55\x35\x3b\xf4\x90\x18\x2e\xeb\x7a\xa1\x03\xc9\x77\xc0\x67\x01\xca\xa0\xb7\x44\x55\x11\x66\x89\xb9\xdb\xe9\x0a\xd1\xd1\x85\x39\xd5\xe4\x1a\xda\x0f\x2f\x7f\x1e\x6c\x9a\xa6\x7a\xa2\xaa\x41\x6f\x84\x9f\x18\xc6\xfb\xd2\x2d\xcb\xe0\x3a\xf7\x8b\x15\xce\xdd\xda\x0d\x1b\xbb\xdd\x33\x62\x76\x9f\x50\xe9\x86\x80\xfc\xe5\x4b\x7e\x84\xa9\x4f\x32\x46\x66\xa6\x96\x7f\xc8\x0f\x2e\x5e\x9c\xa9\x4f\x61\x7f\x01\x16\x3a\x16\x01\xc6\x22\x19\xfc\xb5\x67\x82\x66\xe1\xc6\x18\xca\x89\x47\xe7\x4a\x2a\xde\x5e\x40\xda\xeb\x8d\xf5\x62\x0f\x36\x5f\x66\xae\xae\x88\xaf\xb4\x2d\x70\xce\x41\x45\xeb\xaf\xa7\x58\xac\xcc\x19\xe2\x78\xbc\x9f\x45\xda\x63\x85\x9c\x46\xeb\xdf\x7f\x0e\xe2\xe3\xfd\x9d\xd5\x41\x4d\xeb\x86\x07\xd7\xec\x55\x65\x68\x30\x1d\x26\x50\x78\x0b\xe7\xf7\x5f\xcd\xf9\x24\x41\xcb\x98\xf2\x36\x48\xb5\xed\x3f\x3a\x5e\x2c\x96\xda\xaa\xc1\xda\x0c\xe4\x6e\x1d\x85\xb5\xc2\xcf\xf4\xd9\xa9\x16\x7d\x58\x15\xfc\xc6\x6b\xbd\x94\x5f\x0b\x55\x87\x41\x95\xac\xbb\xbf\xec\xf8\x0f\x26\xb7\x0a\x4c\xf6\x62\xf9\x55\xea\x4e\x01\x35\x1f\xaa\x9f\x53\x00\xcf\x35\xc7\x2a\xe6\x09\x15\x06\x2c\xef\xf7\x89\x1e\x76\x77\x51\x91\x96\xbf\x81\x33\x33\x36\x1d\xbb\xee\xcf\xe8\xdc\x12\x7a\x94\xc2\x0b\x9f\xaf\x03\x6d\x71\xa8\x16\xb1\xab\x72\xe8\x20\x19\xd0\x69\x9b\x01\x2a\x12\x60\x22\xcc\x70\x31\x36\x63\x8d\xc8\x67\x49\x05\xb4\x10\x0e\x9b\x8d\x62\xab\xde\xb1\x3c\x84\xbe\x30\x0b\x49\xae\x44\xfc\xea\x4b\x89\x2f\xbf\x65\x64\xcd\xb0\x12\x69\x9e\x9f\xd1\xc9\x64\xf2\xa9\xd7\xf3\x12\x65\x6b\x47\xe6\x91\x66\x82\xb0\x04\x41\x57\xf4\xe2\xdf\xb9\xd5\xf5\x5d\x68\x49\x5d\x76\x3c\x80\x7d\x8e\xc6\x93\x2e\x56\x0c\x91\x3a\xb7\x6f\xc3\xff\x82\x02\x02\xae\x44\xfa\xcb\xda\x1a\xa1\x53\x10\x8f\x16\x8e\x42\x1b\xdb\x1a\x93\xc3\x82\xed\xf0\x8c\xc7\x9c\x5b\x71\x1a\xe1\x3c\x6e\xb8\xe5\x43\x93\xf4\x99\x8e\xc9\x9a\x95\xae\x7f\x85\x99\x9e\x78\x43\x9b\xa6\x03\x44\x55\x45\xf2\x1f\xfc\x85\x62\x07\xee\xa9\x45\x5f\xb1\x4c\x0a\xd9\x67\xf2\x2c\xf0\xf5\x72\xdb\xa5\xca\xc7\x45\x0e\x4e\x52\xce\x71\x3c\xe8\x71\xfc\x76\xd7\xad\xca\x01\x26\x0e\xa7\x08\xda\x43\x40\x01\x80\x5b\xcf\xd1\xf3\xcc\xd1\xc6\x08\x4d\x5e\xc2\xa2\x9f\x00\xe7\x7a\xa4\xf9\x1d\xee\x13\xee\xb5\xfc\xce\x8e\x82\xa1\x03\xb3\x7f\x6c\x4f\x25\x25\x95\x1e\xaa\xd4\x49\xa0\x8a\x75\xd2\xf3\x41\xf1\x7b\x2c\xbd\xf1\x73\x0d\x19\x2e\xf7\x58\xa6\xe8\xf8\x83\xd8\x8c\x07\xf2\xef\x41\xb4\x43\xda\xa7\x95\x00\x02\x44\x26\x3d\x2d\x30\xc7\x62\xf6\xfe\xcf\x3b\xb6\x7f\x8d\xda\x6c\xa7\xd9\xd4\x0a\x18\xe1\x86\x26\x85\x3c\x50\x94\xef\x66\xed\x64\x61\x7e\xe9\x38\x8c\x03\x7a\x74\xa9\x61\x69\x2d\x44\x70\x79\x6a\x68\x3f\x88\x0e\xb9\x04\x10\x60\xac\xee\x4e\x76\x18\xb7\x17\xa0\x57\x95\x1e\x1c\x66\x23\x62\xfd\x26\x70\x9b\xd8\x0a\xf3\x9f\xe5\xc1\x1f\x96\x54\xc2\x65\x5b\x21\xed\xcc\x32\x42\x84\x91\xdc\x5c\x10\x1e\x6a\x22\x2d\x2e\x51\xb9\xf2\x3d\x96\x0f\x12\x74\x8d\x9a\x5f\xc3\xe2\xf6\xc9\x53\x97\x23\x47\x65\x6a\x9f\x78\x7e\xe5\xbd\x19\x64\x45\xaa\x2e\xaf\x8f\x8f\xbd\xaf\xaa\x34\xed\x1b\x05\x5a\x09\xb3\x71\x8d\x8b\x3c\x8f\x1c\xfe\x5a\xc5\x3c\xf3\x7c\x9f\xa7\x6f\xe7\xac\x70\x87\x15\x7b\xdb\xa5\x23\xe2\xa9\xe7\x10\xb3\xf5\xb5\xa7\xff\x9b\x8b\x1f\x61\x2d\x9b\xbb\xb1\x10\x4f\x9d\x6d\xf9\x87\x87\xe9\x25\x23\xfe\x1d\x30\x10\x1e\xdf\x53\xd8\x9d\xf4\xa3\xc4\x2b\xd3\xbd\x27\x37\xf3\xaf\xe0\x15\x4e\xe1\xe8\xd9\x3d\x9a\x27\x75\xd8\x4c\x68\x6d\xac\x89\x84\x51\x2c\xf9\x55\x96\x23\xac\x6f\xe4\xef\x79\xf7\xb3\x4b\x21\x96\x9a\x8a\x8a\x72\x43\xf4\x1e\x11\xa5\x8d\xe3\xe4\xe1\x8f\x33\x85\xee\x70\x03\xc7\x9f\xa5\x27\xb9\x4e\x72\x33\x8f\x2a\x1c\x4c\x45\xff\x04\x5a\x61\x1f\xe1\xdb\x3c\xdd\xa0\xfe\xf1\x21\xf7\x8c\x52\x75\x34\xda\xb2\x66\xdd\x3f\xf6\xf7\x3d\x6b\x6b\xc0\x39\x98\x30\x98\x30\x51\x0a\x57\xeb\x0e\x2d\x74\xde\x38\x11\x27\x75\xb8\x77\x5d\x99\xc1\x5e\x38\xd0\xe7\x09\xf3\x97\x49\x2f\xc6\x46\x2f\x6e\x57\xa7\xff\x65\xd2\x5b\xe9\xeb\x75\x30\xa5\xef\x4f\xc8\x07\xff\x9e\x09\xb7\x01\xb5\x9d\x25\x0b\x54\x1a\x54\x6d\xb7\x5d\x11\x1f\x56\x0a\x47\x21\x7c\x12\x2c\x6b\x29\x28\xd5\xa0\xa0\x47\xa9\x88\xb3\xac\x51\x31\xdf\x00\x96\xc1\x5b\xbc\x39\x8d\x0e\x69\x65\x84\x1b\x17\xf4\x91\x63\x58\x85\xd8\x98\x7a\x04\xbb\xe2\x48\x21\x57\xb5\xca\x88\x3c\x76\x7e\xa1\x56\xb4\xe1\x78\x4b\xa1\xb7\xcf\xeb\x34\x3a\x71\xeb\x03\xeb\xce\x88\x79\x2a\xed\x8b\x18\xe7\xfd\x88\x0c\xd5\x93\x4c\xbe\x55\x52\x3c\x1b\x7c\x82\xb3\xed\x99\xb3\xde\x90\xa4\x79\xf2\x51\xe1\x90\x4a\xc8\x6f\x28\x02\x19\x57\xef\x35\x42\x1d\x3c\x8a\x2d\x39\xee\xe7\x31\x4e\x3f\x3f\x94\x5e\xa2\xfb\x5f\xf7\xf6\xc0\x9b\xa4\x72\xff\x3e\x56\x2c\x61\x68\xb0\xc1\xf8\x43\x65\x8b\xb1\x80\xeb\xfc\xf9\x54\xe5\x8e\x63\x3f\xb1\x61\x27\x51\xbf\x36\x0b\x15\xfe\x67\xca\x59\x4f\x5a\xae\x34\x23\x3a\x3b\x58\xee\xba\x56\x2f\xad\x63", 4096); syscall(SYS_serialize2, /*a=*/0x20001380ul); break; case 9: syscall(SYS_test, /*a0=*/0x20fff000ul, /*a1=*/0, /*a2=*/0x1000, /*a3=*/0x800, /*a4=*/0x400ul, 0); break; case 10: memcpy((void*)0x20000000, "\'/+,\000", 5); *(uint8_t*)0x20000040 = 0x1c; *(uint8_t*)0x20000044 = 1; STORE_BY_BITMASK(uint32_t, , 0x20000044, 3, 8, 4); syz_compare(/*want=*/0x20000000, /*want_len=*/5, /*got=*/0x20000040, /*got_len=*/8); break; case 11: syz_compare_int(/*n=*/2, /*v0=*/0xffff, /*v1=*/0x100, 0, 0); break; case 12: syz_errno(/*v=*/0xfffffff9); break; case 13: memcpy((void*)0x20000080, "\xfe\xaa\x0e\x27\x8d\x40\x3f\x03\xc2\xbf\x80\x48\x86\x76\x75\x4e\x43\x50\x32\xf8\x1e\xee\x19\xff\xa3\xf4\x8c\xa7\x58\xe8\x2b\x07\x72\x89\x83\x4e\xb7\x9b\xe6\x7b\x6c\xf4\x37\xe2\xd9\xb1\x01\xf3\x97\xd7", 50); syz_execute_func(/*text=*/0x20000080); break; case 14: syz_exit(/*status=*/0xffffffc0); break; case 15: syz_mmap(/*addr=*/0x20ffc000, /*len=*/0x1000); break; case 16: syz_sleep_ms(/*ms=*/1); break; case 17: syz_test_fuzzer1(/*a=*/0xd, /*b=*/0xc, /*c=*/0xb); break; } } int main(void) { syz_mmap(/*addr=*/0x20000000, /*len=*/0x1000000); setup_fault(); use_temporary_dir(); do_sandbox_none(); return 0; } :310:3: error: call to undeclared function 'syscall'; ISO C99 and later do not support implicit function declarations [-Werror,-Wimplicit-function-declaration] syscall(SYS_breaks_returns); ^ 1 error generated. compiler invocation: c++ [-o /tmp/syz-executor3845004336 -DGOOS_test=1 -DGOARCH_64=1 -DHOSTGOOS_openbsd=1 -x c - -m64 -lutil -O2 -pthread -Wall -Werror -Wparentheses -Wunused-const-variable -Wframe-larger-than=16384 -Wno-array-bounds -Wno-unused-but-set-variable -Wno-unused-command-line-argument -no-pie -fno-exceptions] --- FAIL: TestGenerate/test/64/3 (1.56s) csource_test.go:150: opts: {Threaded:true Repeat:true RepeatTimes:10 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: breaks_returns() (fail_nth: 1) breaks_returns() (async) test$end0(&(0x7f0000000000)={0x20, 0x8, 0x7, 0x7fffffff}) (rerun: 4) test$length9(&(0x7f0000000040)={&(0x7f0000ffe000/0x2000)=nil, 0x2000}) test$recur1(&(0x7f0000001280)={&(0x7f0000001240)={&(0x7f0000000600)={0x0, &(0x7f00000005c0)={&(0x7f0000000080), 0x0, &(0x7f0000000180)={&(0x7f00000000c0), &(0x7f0000000100), &(0x7f0000000140)}, &(0x7f00000002c0)={&(0x7f00000001c0), &(0x7f0000000200), &(0x7f0000000240), &(0x7f0000000280)}, 0x0, &(0x7f0000000580)={&(0x7f0000000300), 0x0, &(0x7f0000000400)={&(0x7f0000000340), &(0x7f0000000380), 0x0, &(0x7f00000003c0)}, &(0x7f0000000540)={&(0x7f0000000440), &(0x7f0000000480), &(0x7f00000004c0), &(0x7f0000000500)}}}}, &(0x7f0000001200)={&(0x7f0000000680)={&(0x7f0000000640)}, &(0x7f00000009c0)={0x0, &(0x7f0000000980)={&(0x7f0000000700)={&(0x7f00000006c0)}, 0x0, &(0x7f0000000840)={&(0x7f0000000740), &(0x7f0000000780), &(0x7f00000007c0), &(0x7f0000000800)}, &(0x7f0000000940)={&(0x7f0000000880), &(0x7f00000008c0), &(0x7f0000000900)}}}, &(0x7f0000000ac0)={&(0x7f0000000a00), 0x0, &(0x7f0000000a40), &(0x7f0000000a80)}, &(0x7f0000000bc0)={&(0x7f0000000b00), 0x0, &(0x7f0000000b40), &(0x7f0000000b80)}, &(0x7f0000000e80)={0x0, &(0x7f0000000c00), &(0x7f0000000d40)={&(0x7f0000000c40), &(0x7f0000000c80), &(0x7f0000000cc0), &(0x7f0000000d00)}, &(0x7f0000000e40)={&(0x7f0000000d80), &(0x7f0000000dc0), &(0x7f0000000e00)}}, &(0x7f00000011c0)={&(0x7f0000000f00)={&(0x7f0000000ec0)}, &(0x7f0000000f40), &(0x7f0000001040)={&(0x7f0000000f80), &(0x7f0000000fc0), 0x0, &(0x7f0000001000)}, &(0x7f0000001180)={&(0x7f0000001080), &(0x7f00000010c0), &(0x7f0000001100), &(0x7f0000001140)}}}}}) foo$anyres(&(0x7f00000012c0), &(0x7f0000001300), &(0x7f0000001340)) breaks_returns() test$length10(&(0x7f0000ffe000/0x1000)=nil, 0x1000, 0x1000, 0x800, 0x400) serialize2(&(0x7f0000001380)="b3eb980b12af03684832ff0d1367b05ded250f350bffb9c67243a4a26cac6a5664ba93ce0c5ffca81d81c8a8a18416566c33d00a999baf45ad351740795a1a3a7f59abe59ac218f6e204dc1329f158d36e4d0c86200e4d8b5dbda275d20e5315c52e12895663d7e5f4ad1f0d1a8ac3014eb4603f30445a975d0a77feec81e4e99bd71acad646cb04b60819e8ec24a8a2db3909688bb284162872bc715c3ef9863a13d60f4e3acd6954f1ff268eee5cbe35465b4e65c60dbf3da35689af39d3dc0d9d2226406147feccad22fd6d9255a8b92178c6afa7aa2decd0ae46ec45c9bbf6e53fead2d682d715175ba608f84ba14d9a28c5e47ebd829a76bca0c2821b0e29915a2889e001a201524fcf6245adcf4d326d69176d7fa27ed8d593e25eef7afaa1479e506348f0a6753697034b9c609f465146f9569ddd56aff7fc2fadefb89fa2d2d4b838e7d63200097b77ed52d9c31c98fd76f9467ff5116ca00f85846a91bef69419aac6ebc7ddfba2b268bfe262f6f55d52a647af8a0b45391ba9df09e25664019b4107a231ee761a81960c1198f5209e3c3707d768b8d099eee563055a88c3049f5addf8747a2dfd6f3b43c5c25df50c8a4b77872a8d8905dfa0885adddb8fd49e29735262b1c94ea59ce0cea5a061fbb042c7e301e29212f2f1476e7c25317cb5fa81774d78b20efea377d4fbfdb190cc1fd58f568e6ac19be05d99c8362428f59f47311abf178f6b083645ccf013624a418b8d9fecfa26f7dcba32b4395449c0d1ef6fa37f33fa5ea60192bb5ce92e458d90cedf0e85787811c64bd0436f4c5ca01facae7b793d696442982841f6e83f603d5806742a4ec7acb406c55b27aaad7a628eb2f41f8007c0e3728fa1f40194d271392f6c7f684e1dbe239cf6c501bd4f4f643153b4e7bd32ff4b3db361fe9c4a87b4d7492eef749bd18c6a44daba60542deadc45cbfa8a46b8d252670ee312ede53bb516f0000cc25009f4d4e74c6f61306c344a9ba48fa2a2d70f3e1ac018f9c0d15ddaafb5cf89867ca6bf6b37427c477eec1acb7f369b9422a8858ebc2f3a10a9e90aea0f4df82ab2e8d10dffcb99892a8155b4f8aff79e93df24848aef035e85d57048c7c93fe544e3ef1754c49240573ac1ea67b94d8574542dff03f06bfedc3f51c620402861f777fa47bc05c865a6e63ab48e70c4b314e6f80953cb1a22b9226a1b3cc084736b2a826a7fc841023eaa56448d94757b013833c53e182c1de066878701def73bdd13d7404565dcc317ae650383b3ea7d5e6aed3dbf575a2ca5132850e394adeb9fee108719378320b9b4e0c5a6ddc77594a8024151b3a6d322fb48e5db7f0fb04a9149fb278ed9d8ad19b1b8a268cba4b300e93139f2b611bb777983b74d6fac852d743fb5011f9bf2bfd3f4314cdc9b1e71c65ea76e4953af36bcb4b9649aa0eeaa6c892e170d3285241708594a91bdec0fdedd974b4220b4b70a5a939938527c6e6ef823b36256c1369fbeed64a90e8be545eac8968c764139ccd4dc5901bc019985aab5fe71e24c55f260c4c4b7fd5cf5288b13dcda57bb3450fb4f6ece5e7c4a0a21fff3124c3c783afa8744f6ca3f5c3de5b4c154cea12ba47c3c694ea8303a8d7c8510089cc1609a82e6a7e089f63afd0585d3f5aba22634dd7c9579364da1d93a995f7706da208d65b948d74613e0e4f8c77974db272edf2f8d5291cd3af0d0adeecc163585161bc8ec9b62823feb864a8ffa00120719981907c027ef41a9c5ebef88411b420e2c6041e94dbae9388f72db0089d4733cedc368cd1d6805634c80bffb9c3430f402b73fff1d6cf355b9509c1bfd48e79b1417141c9b9ab1c0f62a4cf97bae55fe53afea353c1061bb882e101d7434b39be6558e77ea26b44b507c2c44dd0a625c044b0a78ee2364862842d9ef0f1bcb563f01adbdee69e52d022856ad6504d811e849ab470d613da0ce951003529822adc102c4c62a3aad2f7392aa4601ab0863150c358aeec2fc5e3a906df00fe5db1226bac20f08d701f181b90a4d389b91dddbc24e40488e1c46ab2d05b4823029453cc9253ebc4370964a64c1087cb3857d736dc303ce93066db60fc61be9f79c0c9e1ca7e4d73f95172bcbaf6cbd18c06d1c1cccf23d85592ee6844349b5e72e6a5e10f5eed5eca8f9c0a8a95e214389530194a03043b21108a49e3466cebe3078dadd364faf67fe3c51e1df75f4aa619854b780e0c04e9a9bf2301c030a3626ce820afc59e1c13ed6fa3e3030b966f3878f17a16a1209987aa9f7eb76988d401f10bdb0a419ddced1105659e6219440e35e984c3e7ada78c30a9a7399ce1abce36c7ce3e39a89cfac98f249735914cfc16baf666ed4b51ff2193c2836bd43e5d537f2653646f05c8109ef8edfd35b3acd73eb7e790c64cc2a7c9596e4a5f3d0e2d92b301c9ec5d82768ab211801bea96340c30e1b09fc9fae7cff2615d61ede29f9b0d712abffcd93ea3b20ceb7aa57368e84c3876ecd7a931cb19ea517603ef44a98b246288b27336980e4bb509007bcd01858cd35e9cd8df288221d3a487268828fe732fd7da2e2b6926b4a9b54d54b41c77998d1ef538487e1dcdf87fcc3fab25c77a7cf01f86087e2b95e1e4d45522fc3f44a14cbfacd48d63eba042ca3e14af8e5bed3186de4fb69f387aac88242d64fbdcd110c338821ad72562f092f55fa73b5e7d92c9b6fee5794ef4823190f9257b11ff4fc4457dba90fbda80dafb517fa27519489016f6f458006401f9fea20426a545aab7784c4e3df9dfa9fb279cf21a86ce3f292cf52d343fce97e05b92c84723d7ddc65a7bc79ae73b1246b6b65048a3855b62b1340264627c1df82f3352f3ac6d5a75e0823572c2fb392bd7ef15193cc5f6fbefc4d27ffd741a93d1ab799d9fbd545d2d2606e3566eb79d54485f5561510a57f17f2b3909ed1bfc5e5d64692b6c503eb58f17cae554137607467e8ab51d867067f50374e99f74869e0177f4eb52c2930dfe5ca2b6e454db8a36225b2c936bdc5bb75f1355ffd8d7fa476eb282871e52111832fcfc246da415c200d9e6c350f49846a0022660191a2840d7a53753674c78ea00a5b9e266ff29b1a8fb193e132d23f960cd9c8249b943fcdb865395b2c03ab675bbb1993813fb0a8d1e68331297c88db1dca00313b8211121b6023475cb69d6ac66c1116a56171350f680cc74c88fe9905ed078780e6d71bcc735fee75a9444f695d036aa6b4b9e59b6680b6312967f8b236ff8bee60316a70cba0312c993b92e30ca4cb118c1745e7b578c0ad6c3a7d8187372595dd160893115f11b054fc1718c967bdafe9bf95ad583db59396d594114b6500996eeff82b70191e52fa2330efdc66fa363cb379c9c67740535c9960ca857cfe4d0a88bbbbf2e7b2034bb843980f6fa86ff602335d1e25a613c7d7a4ef7a6b161c2582239aa56f5c8994d06646e0aa62c48b54e0852223772ed44e7059697aec6bc2225e0edac55fdbff1a16d4c6def4c77ddf38b2773952c811ff145ae366e216c41600659ff78f64b19e354d74f90a61907c85c702394fe2cca4f5feb5b53530b5f4c9e72f5c090ca464a7a9c395143735fdd2421d07e8efe4198ad06f9d230a91d5fb50efc02c2db6ed4ad750319e3e672f5213ddae92c3fcec0ed5dff522d0cab89bb8253254255529b32cf5385c9001421b92cc67163cc395235e408a463fa31eefd0742de5139bba2dc141fff7be175f418cf7cf89dd4f474a2fc61d0f3851f34d52c49bbd1226bd08963071f5d4918f7e12d0028d321b3d6bd436e02f6e55cc48c613e329916cb8545244bba377908d6bcfeb7ed66208e507b4dfd8f2cba5a3d42f3a4e4da80eba199cc8aec8a40f254710d811832496750c4b34c36b746bf3cb60dae81e73da952ee41c2a402372e5239fd2d407d8e91b9e57b4758aace59df7d83d38ad17716cae509ddb2427cbcf847a7b108edb4b3a708171e731a97702b6377c7934ec9b4c7446ea031e62bb39a6e2d320eaa8b5910b14d8826c204f7a4ab236240b486066b27be7f69b8442ffc803c4ed7fdd23ef2fa0337db842681c0f8ef2badcc08113fe8061ab31faf989ba55512a5f0e7b936d63c0cced58ef82cf0c2d29fb2318e12b56d4912e9c4f96db02ca8449294da33f8fce5507d3eb99239072e2b2e12e3355353bf490182eeb7aa103c977c06701caa0b74455116689b9dbe90ad1d18539d5e41ada0f2f7f1e6c9aa67aa2aa416f849f18c6fbd22dcbe03af78b15ceddda0d1bbbdd3362769f50e98680fce54b7e84a94f324666a6967fc80f2e5e9ca94f617f01163a1601c62219fcb5678266e1c618ca8947e74a2ade5e40daeb8df5620f365f66aeae88afb42d70ce4145ebafa758accc19e278bc9f45da63859c46ebdf7f0ee2e3fd9dd5414deb8607d7ec556568301d2650780be7f75fcdf92441cb98f23648b5ed3f3a5e2c96daaac1da0ce46e1d85b5c2cff4d9a9167d5815fcc66bbd945f0b55874195acbbbfecf80f26b70a4cf662f955ea4e01351faa9f5300cf35c72ae60915062ceff7891e7677519196bf813333361dbbeecfe8dc127a94c20b9faf036d71a816b1ab72e82019d0699b012a126022cc703136638dc8674905b4100e9b8d62abdeb13c84be300b49ae44fcea4b892fbf6564cdb012699e9fd1c964f2a9d7f312656b47e6916682b0044157f4e2dfb9d5f55d68495d763c807d8ec6932e560c913ab76fc3ff820202ae44facbda1aa153108f168e421bdb1a93c382edf08cc79c5b711ae13c6eb8e54393f4998ec99a95ae7f85999e78439ba603445545f21ffc856207eea9455fb14c0ad967f22cf0f572dba5cac7450e4e52ce713ce871fc76d7adca01260ea708da434001805bcfd1f3ccd1c6084d5ec2a29f00e77aa4f91dee13eeb5fcce8e82a103b37f6c4f2525951eaad449a08a75d2f341f17b2cbdf1730d192ef758a6e8f883d88c07f2ef41b443daa795000244263d2d30c762f6fecf3bb67f8dda6ca7d9d40a18e18626853c5094ef66ed64617ee9388c037a74a961692d4470796a683f880eb9041060acee4e7618b717a057951e1c662362fd26709bd80af39fe5c11f9654c2655b21edcc32428491dc5c101e6a222d2e51b9f23d960f12748d9a5fc3e2f6c953972347656a9f787ee5bd196445aa2eaf8f8fbdafaa34ed1b055a09b3718d8b3c8f1cfe5ac53cf37c9fa76fe7ac7087157bdba523e2a9e710b3f5b5a7ff9b8b1f612d9bbbb1104f9d6df98787e92523fe1d30101edf53d89df4a3c42bd3bd2737f3afe0154ee1e8d93d9a2775d84c686dac8984512cf9559623ac6fe4ef79f7b34b21969a8a8a7243f41e11a58de3e4e18f3385ee7003c79fa527b94e72338f2a1c4c45ff045a611fe1db3cdda0fef121f78c527534dab266dd3ff6f73d6b6bc03998309830510a57eb0e2d74de38112775b8775d99c15e38d0e709f397492fc6462f6e57a7ff65d25be9eb7530a5ef4fc807ff9e09b701b59d250b541a546db75d111f560a47217c122c6b2928d5a0a047a988b3ac5131df0096c15bbc398d0e6965841b17f491635885d8987a04bbe2482157b5ca883c767ea156b4e1784ba1b7cfeb343a71eb03ebce88792aed8b18e7fd880cd5934cbe55523c1b7c82b3ed99b3de90a479f251e1904ac86f28021957ef35421d3c8a2d39eee7314e3f3f945ea2fb5ff7f6c09ba472ff3e562c6168b0c1f843658bb180ebfcf954e58e633fb1612751bf360b15fe67ca594f5aae34233a3b58eeba562fad63") test$length10(&(0x7f0000fff000/0x1000)=nil, 0x1000, 0x1000, 0x800, 0x400) syz_compare(&(0x7f0000000000)='\'/+,\x00', 0x5, &(0x7f0000000040)=@bf5={0x1c, {0x1, 0x3}}, 0x8) syz_compare_int$2(0x2, 0xffff, 0x100) syz_errno(0xfffffff9) syz_execute_func(&(0x7f0000000080)="feaa0e278d403f03c2bf80488676754e435032f81eee19ffa3f48ca758e82b077289834eb79be67b6cf437e2d9b101f397d7") syz_exit(0xffffffc0) syz_mmap(&(0x7f0000ffc000/0x1000)=nil, 0x1000) syz_sleep_ms(0x1) syz_test_fuzzer1(0xd, 0xc, 0xb) 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 #ifndef SYS_breaks_returns #define SYS_breaks_returns 0 #endif #ifndef SYS_foo #define SYS_foo 0 #endif #ifndef SYS_serialize2 #define SYS_serialize2 0 #endif #ifndef SYS_test #define SYS_test 0 #endif 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[] = "./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 { pthread_mutex_t mu; pthread_cond_t cv; int state; } event_t; static void event_init(event_t* ev) { if (pthread_mutex_init(&ev->mu, 0)) exit(1); if (pthread_cond_init(&ev->cv, 0)) exit(1); ev->state = 0; } static void event_reset(event_t* ev) { ev->state = 0; } static void event_set(event_t* ev) { pthread_mutex_lock(&ev->mu); if (ev->state) exit(1); ev->state = 1; pthread_mutex_unlock(&ev->mu); pthread_cond_broadcast(&ev->cv); } static void event_wait(event_t* ev) { pthread_mutex_lock(&ev->mu); while (!ev->state) pthread_cond_wait(&ev->cv, &ev->mu); pthread_mutex_unlock(&ev->mu); } static int event_isset(event_t* ev) { pthread_mutex_lock(&ev->mu); int res = ev->state; pthread_mutex_unlock(&ev->mu); return res; } static int event_timedwait(event_t* ev, uint64_t timeout) { uint64_t start = current_time_ms(); uint64_t now = start; pthread_mutex_lock(&ev->mu); for (;;) { if (ev->state) break; uint64_t remain = timeout - (now - start); struct timespec ts; ts.tv_sec = remain / 1000; ts.tv_nsec = (remain % 1000) * 1000 * 1000; pthread_cond_timedwait(&ev->cv, &ev->mu, &ts); now = current_time_ms(); if (now - start > timeout) break; } int res = ev->state; pthread_mutex_unlock(&ev->mu); return res; } #define BITMASK(bf_off,bf_len) (((1ull << (bf_len)) - 1) << (bf_off)) #define STORE_BY_BITMASK(type,htobe,addr,val,bf_off,bf_len) *(type*)(addr) = htobe((htobe(*(type*)(addr)) & ~BITMASK((bf_off), (bf_len))) | (((type)(val) << (bf_off)) & BITMASK((bf_off), (bf_len)))) static long syz_mmap(volatile long a0, volatile long a1) { return (long)mmap((void*)a0, a1, PROT_READ | PROT_WRITE, MAP_ANON | MAP_PRIVATE | MAP_FIXED, -1, 0); } static long syz_errno(volatile long v) { errno = v; return v == 0 ? 0 : -1; } static long syz_exit(volatile long status) { _exit(status); return 0; } static long syz_sleep_ms(volatile long ms) { sleep_ms(ms); return 0; } static long syz_compare(volatile long want, volatile long want_len, volatile long got, volatile long got_len) { if (want_len != got_len) { errno = EBADF; goto error; } if (memcmp((void*)want, (void*)got, want_len)) { errno = EINVAL; goto error; } return 0; error: return -1; } static long syz_compare_int(volatile long n, ...) { va_list args; va_start(args, n); long v0 = va_arg(args, long); long v1 = va_arg(args, long); long v2 = va_arg(args, long); long v3 = va_arg(args, long); va_end(args); if (n < 2 || n > 4) return errno = E2BIG, -1; if (n <= 2 && v2 != 0) return errno = EFAULT, -1; if (n <= 3 && v3 != 0) return errno = EFAULT, -1; if (v0 != v1) return errno = EINVAL, -1; if (n > 2 && v0 != v2) return errno = EINVAL, -1; if (n > 3 && v0 != v3) return errno = EINVAL, -1; return 0; } static void loop(); static int do_sandbox_none(void) { loop(); return 0; } static void fake_crash(const char* name) { exit(1); exit(1); } static long syz_test_fuzzer1(volatile long a, volatile long b, volatile long c) { if (a == 1 && b == 1 && c == 1) fake_crash("first bug"); if (a == 1 && b == 2 && c == 3) fake_crash("second bug"); return 0; } 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 < 18; 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(); } void execute_call(int call) { switch (call) { case 0: inject_fault(1); syscall(SYS_breaks_returns); break; case 1: syscall(SYS_breaks_returns); break; case 2: *(uint8_t*)0x20000000 = 0x20; *(uint16_t*)0x20000001 = htobe16(8); *(uint32_t*)0x20000003 = htobe32(7); *(uint64_t*)0x20000007 = htobe64(0x7fffffff); syscall(SYS_test, /*a0=*/0x20000000ul, 0, 0, 0, 0, 0); { int i; for(i = 0; i < 4; i++) { syscall(SYS_test, /*a0=*/0x20000000ul, 0, 0, 0, 0, 0); } } break; case 3: *(uint64_t*)0x20000040 = 0x20ffe000; *(uint64_t*)0x20000048 = 0x2000; syscall(SYS_test, /*a0=*/0x20000040ul, 0, 0, 0, 0, 0); break; case 4: *(uint64_t*)0x20001280 = 0x20001240; *(uint64_t*)0x20001240 = 0x20000600; *(uint64_t*)0x20000600 = 0; *(uint64_t*)0x20000608 = 0x200005c0; *(uint64_t*)0x200005c0 = 0x20000080; *(uint64_t*)0x20000080 = 0; *(uint64_t*)0x200005c8 = 0; *(uint64_t*)0x200005d0 = 0x20000180; *(uint64_t*)0x20000180 = 0x200000c0; *(uint64_t*)0x200000c0 = 0; *(uint64_t*)0x200000c8 = 0; *(uint64_t*)0x200000d0 = 0; *(uint64_t*)0x200000d8 = 0; *(uint64_t*)0x20000188 = 0x20000100; *(uint64_t*)0x20000100 = 0; *(uint64_t*)0x20000108 = 0; *(uint64_t*)0x20000110 = 0; *(uint64_t*)0x20000118 = 0; *(uint64_t*)0x20000190 = 0x20000140; *(uint64_t*)0x20000140 = 0; *(uint64_t*)0x20000148 = 0; *(uint64_t*)0x20000150 = 0; *(uint64_t*)0x20000158 = 0; *(uint64_t*)0x20000198 = 0; *(uint64_t*)0x200005d8 = 0x200002c0; *(uint64_t*)0x200002c0 = 0x200001c0; *(uint64_t*)0x200001c0 = 0; *(uint64_t*)0x200001c8 = 0; *(uint64_t*)0x200001d0 = 0; *(uint64_t*)0x200001d8 = 0; *(uint64_t*)0x200002c8 = 0x20000200; *(uint64_t*)0x20000200 = 0; *(uint64_t*)0x20000208 = 0; *(uint64_t*)0x20000210 = 0; *(uint64_t*)0x20000218 = 0; *(uint64_t*)0x200002d0 = 0x20000240; *(uint64_t*)0x20000240 = 0; *(uint64_t*)0x20000248 = 0; *(uint64_t*)0x20000250 = 0; *(uint64_t*)0x20000258 = 0; *(uint64_t*)0x200002d8 = 0x20000280; *(uint64_t*)0x20000280 = 0; *(uint64_t*)0x20000288 = 0; *(uint64_t*)0x20000290 = 0; *(uint64_t*)0x20000298 = 0; *(uint64_t*)0x200005e0 = 0; *(uint64_t*)0x200005e8 = 0x20000580; *(uint64_t*)0x20000580 = 0x20000300; *(uint64_t*)0x20000300 = 0; *(uint64_t*)0x20000588 = 0; *(uint64_t*)0x20000590 = 0x20000400; *(uint64_t*)0x20000400 = 0x20000340; *(uint64_t*)0x20000340 = 0; *(uint64_t*)0x20000348 = 0; *(uint64_t*)0x20000350 = 0; *(uint64_t*)0x20000358 = 0; *(uint64_t*)0x20000408 = 0x20000380; *(uint64_t*)0x20000380 = 0; *(uint64_t*)0x20000388 = 0; *(uint64_t*)0x20000390 = 0; *(uint64_t*)0x20000398 = 0; *(uint64_t*)0x20000410 = 0; *(uint64_t*)0x20000418 = 0x200003c0; *(uint64_t*)0x200003c0 = 0; *(uint64_t*)0x200003c8 = 0; *(uint64_t*)0x200003d0 = 0; *(uint64_t*)0x200003d8 = 0; *(uint64_t*)0x20000598 = 0x20000540; *(uint64_t*)0x20000540 = 0x20000440; *(uint64_t*)0x20000440 = 0; *(uint64_t*)0x20000448 = 0; *(uint64_t*)0x20000450 = 0; *(uint64_t*)0x20000458 = 0; *(uint64_t*)0x20000548 = 0x20000480; *(uint64_t*)0x20000480 = 0; *(uint64_t*)0x20000488 = 0; *(uint64_t*)0x20000490 = 0; *(uint64_t*)0x20000498 = 0; *(uint64_t*)0x20000550 = 0x200004c0; *(uint64_t*)0x200004c0 = 0; *(uint64_t*)0x200004c8 = 0; *(uint64_t*)0x200004d0 = 0; *(uint64_t*)0x200004d8 = 0; *(uint64_t*)0x20000558 = 0x20000500; *(uint64_t*)0x20000500 = 0; *(uint64_t*)0x20000508 = 0; *(uint64_t*)0x20000510 = 0; *(uint64_t*)0x20000518 = 0; *(uint64_t*)0x200005a0 = 0; *(uint64_t*)0x200005a8 = 0; *(uint64_t*)0x20001248 = 0x20001200; *(uint64_t*)0x20001200 = 0x20000680; *(uint64_t*)0x20000680 = 0x20000640; *(uint64_t*)0x20000640 = 0; *(uint64_t*)0x20001208 = 0x200009c0; *(uint64_t*)0x200009c0 = 0; *(uint64_t*)0x200009c8 = 0x20000980; *(uint64_t*)0x20000980 = 0x20000700; *(uint64_t*)0x20000700 = 0x200006c0; *(uint64_t*)0x200006c0 = 0; *(uint64_t*)0x20000988 = 0; *(uint64_t*)0x20000990 = 0x20000840; *(uint64_t*)0x20000840 = 0x20000740; *(uint64_t*)0x20000740 = 0; *(uint64_t*)0x20000748 = 0; *(uint64_t*)0x20000750 = 0; *(uint64_t*)0x20000758 = 0; *(uint64_t*)0x20000848 = 0x20000780; *(uint64_t*)0x20000780 = 0; *(uint64_t*)0x20000788 = 0; *(uint64_t*)0x20000790 = 0; *(uint64_t*)0x20000798 = 0; *(uint64_t*)0x20000850 = 0x200007c0; *(uint64_t*)0x200007c0 = 0; *(uint64_t*)0x200007c8 = 0; *(uint64_t*)0x200007d0 = 0; *(uint64_t*)0x200007d8 = 0; *(uint64_t*)0x20000858 = 0x20000800; *(uint64_t*)0x20000800 = 0; *(uint64_t*)0x20000808 = 0; *(uint64_t*)0x20000810 = 0; *(uint64_t*)0x20000818 = 0; *(uint64_t*)0x20000998 = 0x20000940; *(uint64_t*)0x20000940 = 0x20000880; *(uint64_t*)0x20000880 = 0; *(uint64_t*)0x20000888 = 0; *(uint64_t*)0x20000890 = 0; *(uint64_t*)0x20000898 = 0; *(uint64_t*)0x20000948 = 0x200008c0; *(uint64_t*)0x200008c0 = 0; *(uint64_t*)0x200008c8 = 0; *(uint64_t*)0x200008d0 = 0; *(uint64_t*)0x200008d8 = 0; *(uint64_t*)0x20000950 = 0x20000900; *(uint64_t*)0x20000900 = 0; *(uint64_t*)0x20000908 = 0; *(uint64_t*)0x20000910 = 0; *(uint64_t*)0x20000918 = 0; *(uint64_t*)0x20000958 = 0; *(uint64_t*)0x200009a0 = 0; *(uint64_t*)0x200009a8 = 0; *(uint64_t*)0x20001210 = 0x20000ac0; *(uint64_t*)0x20000ac0 = 0x20000a00; *(uint64_t*)0x20000a00 = 0; *(uint64_t*)0x20000a08 = 0; *(uint64_t*)0x20000a10 = 0; *(uint64_t*)0x20000a18 = 0; *(uint64_t*)0x20000ac8 = 0; *(uint64_t*)0x20000ad0 = 0x20000a40; *(uint64_t*)0x20000a40 = 0; *(uint64_t*)0x20000a48 = 0; *(uint64_t*)0x20000a50 = 0; *(uint64_t*)0x20000a58 = 0; *(uint64_t*)0x20000ad8 = 0x20000a80; *(uint64_t*)0x20000a80 = 0; *(uint64_t*)0x20000a88 = 0; *(uint64_t*)0x20000a90 = 0; *(uint64_t*)0x20000a98 = 0; *(uint64_t*)0x20001218 = 0x20000bc0; *(uint64_t*)0x20000bc0 = 0x20000b00; *(uint64_t*)0x20000b00 = 0; *(uint64_t*)0x20000b08 = 0; *(uint64_t*)0x20000b10 = 0; *(uint64_t*)0x20000b18 = 0; *(uint64_t*)0x20000bc8 = 0; *(uint64_t*)0x20000bd0 = 0x20000b40; *(uint64_t*)0x20000b40 = 0; *(uint64_t*)0x20000b48 = 0; *(uint64_t*)0x20000b50 = 0; *(uint64_t*)0x20000b58 = 0; *(uint64_t*)0x20000bd8 = 0x20000b80; *(uint64_t*)0x20000b80 = 0; *(uint64_t*)0x20000b88 = 0; *(uint64_t*)0x20000b90 = 0; *(uint64_t*)0x20000b98 = 0; *(uint64_t*)0x20001220 = 0x20000e80; *(uint64_t*)0x20000e80 = 0; *(uint64_t*)0x20000e88 = 0x20000c00; *(uint64_t*)0x20000c00 = 0; *(uint64_t*)0x20000c08 = 0; *(uint64_t*)0x20000e90 = 0x20000d40; *(uint64_t*)0x20000d40 = 0x20000c40; *(uint64_t*)0x20000c40 = 0; *(uint64_t*)0x20000c48 = 0; *(uint64_t*)0x20000c50 = 0; *(uint64_t*)0x20000c58 = 0; *(uint64_t*)0x20000d48 = 0x20000c80; *(uint64_t*)0x20000c80 = 0; *(uint64_t*)0x20000c88 = 0; *(uint64_t*)0x20000c90 = 0; *(uint64_t*)0x20000c98 = 0; *(uint64_t*)0x20000d50 = 0x20000cc0; *(uint64_t*)0x20000cc0 = 0; *(uint64_t*)0x20000cc8 = 0; *(uint64_t*)0x20000cd0 = 0; *(uint64_t*)0x20000cd8 = 0; *(uint64_t*)0x20000d58 = 0x20000d00; *(uint64_t*)0x20000d00 = 0; *(uint64_t*)0x20000d08 = 0; *(uint64_t*)0x20000d10 = 0; *(uint64_t*)0x20000d18 = 0; *(uint64_t*)0x20000e98 = 0x20000e40; *(uint64_t*)0x20000e40 = 0x20000d80; *(uint64_t*)0x20000d80 = 0; *(uint64_t*)0x20000d88 = 0; *(uint64_t*)0x20000d90 = 0; *(uint64_t*)0x20000d98 = 0; *(uint64_t*)0x20000e48 = 0x20000dc0; *(uint64_t*)0x20000dc0 = 0; *(uint64_t*)0x20000dc8 = 0; *(uint64_t*)0x20000dd0 = 0; *(uint64_t*)0x20000dd8 = 0; *(uint64_t*)0x20000e50 = 0x20000e00; *(uint64_t*)0x20000e00 = 0; *(uint64_t*)0x20000e08 = 0; *(uint64_t*)0x20000e10 = 0; *(uint64_t*)0x20000e18 = 0; *(uint64_t*)0x20000e58 = 0; *(uint64_t*)0x20000ea0 = 0; *(uint64_t*)0x20000ea8 = 0; *(uint64_t*)0x20001228 = 0x200011c0; *(uint64_t*)0x200011c0 = 0x20000f00; *(uint64_t*)0x20000f00 = 0x20000ec0; *(uint64_t*)0x20000ec0 = 0; *(uint64_t*)0x200011c8 = 0x20000f40; *(uint64_t*)0x20000f40 = 0; *(uint64_t*)0x20000f48 = 0; *(uint64_t*)0x200011d0 = 0x20001040; *(uint64_t*)0x20001040 = 0x20000f80; *(uint64_t*)0x20000f80 = 0; *(uint64_t*)0x20000f88 = 0; *(uint64_t*)0x20000f90 = 0; *(uint64_t*)0x20000f98 = 0; *(uint64_t*)0x20001048 = 0x20000fc0; *(uint64_t*)0x20000fc0 = 0; *(uint64_t*)0x20000fc8 = 0; *(uint64_t*)0x20000fd0 = 0; *(uint64_t*)0x20000fd8 = 0; *(uint64_t*)0x20001050 = 0; *(uint64_t*)0x20001058 = 0x20001000; *(uint64_t*)0x20001000 = 0; *(uint64_t*)0x20001008 = 0; *(uint64_t*)0x20001010 = 0; *(uint64_t*)0x20001018 = 0; *(uint64_t*)0x200011d8 = 0x20001180; *(uint64_t*)0x20001180 = 0x20001080; *(uint64_t*)0x20001080 = 0; *(uint64_t*)0x20001088 = 0; *(uint64_t*)0x20001090 = 0; *(uint64_t*)0x20001098 = 0; *(uint64_t*)0x20001188 = 0x200010c0; *(uint64_t*)0x200010c0 = 0; *(uint64_t*)0x200010c8 = 0; *(uint64_t*)0x200010d0 = 0; *(uint64_t*)0x200010d8 = 0; *(uint64_t*)0x20001190 = 0x20001100; *(uint64_t*)0x20001100 = 0; *(uint64_t*)0x20001108 = 0; *(uint64_t*)0x20001110 = 0; *(uint64_t*)0x20001118 = 0; *(uint64_t*)0x20001198 = 0x20001140; *(uint64_t*)0x20001140 = 0; *(uint64_t*)0x20001148 = 0; *(uint64_t*)0x20001150 = 0; *(uint64_t*)0x20001158 = 0; *(uint64_t*)0x200011e0 = 0; *(uint64_t*)0x200011e8 = 0; *(uint64_t*)0x20001288 = 0; syscall(SYS_test, /*a0=*/0x20001280ul, 0, 0, 0, 0, 0); break; case 5: syscall(SYS_foo, /*a0=*/0x200012c0ul, /*a1=*/0x20001300ul, /*a2=*/0x20001340ul); break; case 6: syscall(SYS_breaks_returns); break; case 7: syscall(SYS_test, /*a0=*/0x20ffe000ul, /*a1=*/0, /*a2=*/0x1000, /*a3=*/0x800, /*a4=*/0x400ul, 0); break; case 8: memcpy((void*)0x20001380, "\xb3\xeb\x98\x0b\x12\xaf\x03\x68\x48\x32\xff\x0d\x13\x67\xb0\x5d\xed\x25\x0f\x35\x0b\xff\xb9\xc6\x72\x43\xa4\xa2\x6c\xac\x6a\x56\x64\xba\x93\xce\x0c\x5f\xfc\xa8\x1d\x81\xc8\xa8\xa1\x84\x16\x56\x6c\x33\xd0\x0a\x99\x9b\xaf\x45\xad\x35\x17\x40\x79\x5a\x1a\x3a\x7f\x59\xab\xe5\x9a\xc2\x18\xf6\xe2\x04\xdc\x13\x29\xf1\x58\xd3\x6e\x4d\x0c\x86\x20\x0e\x4d\x8b\x5d\xbd\xa2\x75\xd2\x0e\x53\x15\xc5\x2e\x12\x89\x56\x63\xd7\xe5\xf4\xad\x1f\x0d\x1a\x8a\xc3\x01\x4e\xb4\x60\x3f\x30\x44\x5a\x97\x5d\x0a\x77\xfe\xec\x81\xe4\xe9\x9b\xd7\x1a\xca\xd6\x46\xcb\x04\xb6\x08\x19\xe8\xec\x24\xa8\xa2\xdb\x39\x09\x68\x8b\xb2\x84\x16\x28\x72\xbc\x71\x5c\x3e\xf9\x86\x3a\x13\xd6\x0f\x4e\x3a\xcd\x69\x54\xf1\xff\x26\x8e\xee\x5c\xbe\x35\x46\x5b\x4e\x65\xc6\x0d\xbf\x3d\xa3\x56\x89\xaf\x39\xd3\xdc\x0d\x9d\x22\x26\x40\x61\x47\xfe\xcc\xad\x22\xfd\x6d\x92\x55\xa8\xb9\x21\x78\xc6\xaf\xa7\xaa\x2d\xec\xd0\xae\x46\xec\x45\xc9\xbb\xf6\xe5\x3f\xea\xd2\xd6\x82\xd7\x15\x17\x5b\xa6\x08\xf8\x4b\xa1\x4d\x9a\x28\xc5\xe4\x7e\xbd\x82\x9a\x76\xbc\xa0\xc2\x82\x1b\x0e\x29\x91\x5a\x28\x89\xe0\x01\xa2\x01\x52\x4f\xcf\x62\x45\xad\xcf\x4d\x32\x6d\x69\x17\x6d\x7f\xa2\x7e\xd8\xd5\x93\xe2\x5e\xef\x7a\xfa\xa1\x47\x9e\x50\x63\x48\xf0\xa6\x75\x36\x97\x03\x4b\x9c\x60\x9f\x46\x51\x46\xf9\x56\x9d\xdd\x56\xaf\xf7\xfc\x2f\xad\xef\xb8\x9f\xa2\xd2\xd4\xb8\x38\xe7\xd6\x32\x00\x09\x7b\x77\xed\x52\xd9\xc3\x1c\x98\xfd\x76\xf9\x46\x7f\xf5\x11\x6c\xa0\x0f\x85\x84\x6a\x91\xbe\xf6\x94\x19\xaa\xc6\xeb\xc7\xdd\xfb\xa2\xb2\x68\xbf\xe2\x62\xf6\xf5\x5d\x52\xa6\x47\xaf\x8a\x0b\x45\x39\x1b\xa9\xdf\x09\xe2\x56\x64\x01\x9b\x41\x07\xa2\x31\xee\x76\x1a\x81\x96\x0c\x11\x98\xf5\x20\x9e\x3c\x37\x07\xd7\x68\xb8\xd0\x99\xee\xe5\x63\x05\x5a\x88\xc3\x04\x9f\x5a\xdd\xf8\x74\x7a\x2d\xfd\x6f\x3b\x43\xc5\xc2\x5d\xf5\x0c\x8a\x4b\x77\x87\x2a\x8d\x89\x05\xdf\xa0\x88\x5a\xdd\xdb\x8f\xd4\x9e\x29\x73\x52\x62\xb1\xc9\x4e\xa5\x9c\xe0\xce\xa5\xa0\x61\xfb\xb0\x42\xc7\xe3\x01\xe2\x92\x12\xf2\xf1\x47\x6e\x7c\x25\x31\x7c\xb5\xfa\x81\x77\x4d\x78\xb2\x0e\xfe\xa3\x77\xd4\xfb\xfd\xb1\x90\xcc\x1f\xd5\x8f\x56\x8e\x6a\xc1\x9b\xe0\x5d\x99\xc8\x36\x24\x28\xf5\x9f\x47\x31\x1a\xbf\x17\x8f\x6b\x08\x36\x45\xcc\xf0\x13\x62\x4a\x41\x8b\x8d\x9f\xec\xfa\x26\xf7\xdc\xba\x32\xb4\x39\x54\x49\xc0\xd1\xef\x6f\xa3\x7f\x33\xfa\x5e\xa6\x01\x92\xbb\x5c\xe9\x2e\x45\x8d\x90\xce\xdf\x0e\x85\x78\x78\x11\xc6\x4b\xd0\x43\x6f\x4c\x5c\xa0\x1f\xac\xae\x7b\x79\x3d\x69\x64\x42\x98\x28\x41\xf6\xe8\x3f\x60\x3d\x58\x06\x74\x2a\x4e\xc7\xac\xb4\x06\xc5\x5b\x27\xaa\xad\x7a\x62\x8e\xb2\xf4\x1f\x80\x07\xc0\xe3\x72\x8f\xa1\xf4\x01\x94\xd2\x71\x39\x2f\x6c\x7f\x68\x4e\x1d\xbe\x23\x9c\xf6\xc5\x01\xbd\x4f\x4f\x64\x31\x53\xb4\xe7\xbd\x32\xff\x4b\x3d\xb3\x61\xfe\x9c\x4a\x87\xb4\xd7\x49\x2e\xef\x74\x9b\xd1\x8c\x6a\x44\xda\xba\x60\x54\x2d\xea\xdc\x45\xcb\xfa\x8a\x46\xb8\xd2\x52\x67\x0e\xe3\x12\xed\xe5\x3b\xb5\x16\xf0\x00\x0c\xc2\x50\x09\xf4\xd4\xe7\x4c\x6f\x61\x30\x6c\x34\x4a\x9b\xa4\x8f\xa2\xa2\xd7\x0f\x3e\x1a\xc0\x18\xf9\xc0\xd1\x5d\xda\xaf\xb5\xcf\x89\x86\x7c\xa6\xbf\x6b\x37\x42\x7c\x47\x7e\xec\x1a\xcb\x7f\x36\x9b\x94\x22\xa8\x85\x8e\xbc\x2f\x3a\x10\xa9\xe9\x0a\xea\x0f\x4d\xf8\x2a\xb2\xe8\xd1\x0d\xff\xcb\x99\x89\x2a\x81\x55\xb4\xf8\xaf\xf7\x9e\x93\xdf\x24\x84\x8a\xef\x03\x5e\x85\xd5\x70\x48\xc7\xc9\x3f\xe5\x44\xe3\xef\x17\x54\xc4\x92\x40\x57\x3a\xc1\xea\x67\xb9\x4d\x85\x74\x54\x2d\xff\x03\xf0\x6b\xfe\xdc\x3f\x51\xc6\x20\x40\x28\x61\xf7\x77\xfa\x47\xbc\x05\xc8\x65\xa6\xe6\x3a\xb4\x8e\x70\xc4\xb3\x14\xe6\xf8\x09\x53\xcb\x1a\x22\xb9\x22\x6a\x1b\x3c\xc0\x84\x73\x6b\x2a\x82\x6a\x7f\xc8\x41\x02\x3e\xaa\x56\x44\x8d\x94\x75\x7b\x01\x38\x33\xc5\x3e\x18\x2c\x1d\xe0\x66\x87\x87\x01\xde\xf7\x3b\xdd\x13\xd7\x40\x45\x65\xdc\xc3\x17\xae\x65\x03\x83\xb3\xea\x7d\x5e\x6a\xed\x3d\xbf\x57\x5a\x2c\xa5\x13\x28\x50\xe3\x94\xad\xeb\x9f\xee\x10\x87\x19\x37\x83\x20\xb9\xb4\xe0\xc5\xa6\xdd\xc7\x75\x94\xa8\x02\x41\x51\xb3\xa6\xd3\x22\xfb\x48\xe5\xdb\x7f\x0f\xb0\x4a\x91\x49\xfb\x27\x8e\xd9\xd8\xad\x19\xb1\xb8\xa2\x68\xcb\xa4\xb3\x00\xe9\x31\x39\xf2\xb6\x11\xbb\x77\x79\x83\xb7\x4d\x6f\xac\x85\x2d\x74\x3f\xb5\x01\x1f\x9b\xf2\xbf\xd3\xf4\x31\x4c\xdc\x9b\x1e\x71\xc6\x5e\xa7\x6e\x49\x53\xaf\x36\xbc\xb4\xb9\x64\x9a\xa0\xee\xaa\x6c\x89\x2e\x17\x0d\x32\x85\x24\x17\x08\x59\x4a\x91\xbd\xec\x0f\xde\xdd\x97\x4b\x42\x20\xb4\xb7\x0a\x5a\x93\x99\x38\x52\x7c\x6e\x6e\xf8\x23\xb3\x62\x56\xc1\x36\x9f\xbe\xed\x64\xa9\x0e\x8b\xe5\x45\xea\xc8\x96\x8c\x76\x41\x39\xcc\xd4\xdc\x59\x01\xbc\x01\x99\x85\xaa\xb5\xfe\x71\xe2\x4c\x55\xf2\x60\xc4\xc4\xb7\xfd\x5c\xf5\x28\x8b\x13\xdc\xda\x57\xbb\x34\x50\xfb\x4f\x6e\xce\x5e\x7c\x4a\x0a\x21\xff\xf3\x12\x4c\x3c\x78\x3a\xfa\x87\x44\xf6\xca\x3f\x5c\x3d\xe5\xb4\xc1\x54\xce\xa1\x2b\xa4\x7c\x3c\x69\x4e\xa8\x30\x3a\x8d\x7c\x85\x10\x08\x9c\xc1\x60\x9a\x82\xe6\xa7\xe0\x89\xf6\x3a\xfd\x05\x85\xd3\xf5\xab\xa2\x26\x34\xdd\x7c\x95\x79\x36\x4d\xa1\xd9\x3a\x99\x5f\x77\x06\xda\x20\x8d\x65\xb9\x48\xd7\x46\x13\xe0\xe4\xf8\xc7\x79\x74\xdb\x27\x2e\xdf\x2f\x8d\x52\x91\xcd\x3a\xf0\xd0\xad\xee\xcc\x16\x35\x85\x16\x1b\xc8\xec\x9b\x62\x82\x3f\xeb\x86\x4a\x8f\xfa\x00\x12\x07\x19\x98\x19\x07\xc0\x27\xef\x41\xa9\xc5\xeb\xef\x88\x41\x1b\x42\x0e\x2c\x60\x41\xe9\x4d\xba\xe9\x38\x8f\x72\xdb\x00\x89\xd4\x73\x3c\xed\xc3\x68\xcd\x1d\x68\x05\x63\x4c\x80\xbf\xfb\x9c\x34\x30\xf4\x02\xb7\x3f\xff\x1d\x6c\xf3\x55\xb9\x50\x9c\x1b\xfd\x48\xe7\x9b\x14\x17\x14\x1c\x9b\x9a\xb1\xc0\xf6\x2a\x4c\xf9\x7b\xae\x55\xfe\x53\xaf\xea\x35\x3c\x10\x61\xbb\x88\x2e\x10\x1d\x74\x34\xb3\x9b\xe6\x55\x8e\x77\xea\x26\xb4\x4b\x50\x7c\x2c\x44\xdd\x0a\x62\x5c\x04\x4b\x0a\x78\xee\x23\x64\x86\x28\x42\xd9\xef\x0f\x1b\xcb\x56\x3f\x01\xad\xbd\xee\x69\xe5\x2d\x02\x28\x56\xad\x65\x04\xd8\x11\xe8\x49\xab\x47\x0d\x61\x3d\xa0\xce\x95\x10\x03\x52\x98\x22\xad\xc1\x02\xc4\xc6\x2a\x3a\xad\x2f\x73\x92\xaa\x46\x01\xab\x08\x63\x15\x0c\x35\x8a\xee\xc2\xfc\x5e\x3a\x90\x6d\xf0\x0f\xe5\xdb\x12\x26\xba\xc2\x0f\x08\xd7\x01\xf1\x81\xb9\x0a\x4d\x38\x9b\x91\xdd\xdb\xc2\x4e\x40\x48\x8e\x1c\x46\xab\x2d\x05\xb4\x82\x30\x29\x45\x3c\xc9\x25\x3e\xbc\x43\x70\x96\x4a\x64\xc1\x08\x7c\xb3\x85\x7d\x73\x6d\xc3\x03\xce\x93\x06\x6d\xb6\x0f\xc6\x1b\xe9\xf7\x9c\x0c\x9e\x1c\xa7\xe4\xd7\x3f\x95\x17\x2b\xcb\xaf\x6c\xbd\x18\xc0\x6d\x1c\x1c\xcc\xf2\x3d\x85\x59\x2e\xe6\x84\x43\x49\xb5\xe7\x2e\x6a\x5e\x10\xf5\xee\xd5\xec\xa8\xf9\xc0\xa8\xa9\x5e\x21\x43\x89\x53\x01\x94\xa0\x30\x43\xb2\x11\x08\xa4\x9e\x34\x66\xce\xbe\x30\x78\xda\xdd\x36\x4f\xaf\x67\xfe\x3c\x51\xe1\xdf\x75\xf4\xaa\x61\x98\x54\xb7\x80\xe0\xc0\x4e\x9a\x9b\xf2\x30\x1c\x03\x0a\x36\x26\xce\x82\x0a\xfc\x59\xe1\xc1\x3e\xd6\xfa\x3e\x30\x30\xb9\x66\xf3\x87\x8f\x17\xa1\x6a\x12\x09\x98\x7a\xa9\xf7\xeb\x76\x98\x8d\x40\x1f\x10\xbd\xb0\xa4\x19\xdd\xce\xd1\x10\x56\x59\xe6\x21\x94\x40\xe3\x5e\x98\x4c\x3e\x7a\xda\x78\xc3\x0a\x9a\x73\x99\xce\x1a\xbc\xe3\x6c\x7c\xe3\xe3\x9a\x89\xcf\xac\x98\xf2\x49\x73\x59\x14\xcf\xc1\x6b\xaf\x66\x6e\xd4\xb5\x1f\xf2\x19\x3c\x28\x36\xbd\x43\xe5\xd5\x37\xf2\x65\x36\x46\xf0\x5c\x81\x09\xef\x8e\xdf\xd3\x5b\x3a\xcd\x73\xeb\x7e\x79\x0c\x64\xcc\x2a\x7c\x95\x96\xe4\xa5\xf3\xd0\xe2\xd9\x2b\x30\x1c\x9e\xc5\xd8\x27\x68\xab\x21\x18\x01\xbe\xa9\x63\x40\xc3\x0e\x1b\x09\xfc\x9f\xae\x7c\xff\x26\x15\xd6\x1e\xde\x29\xf9\xb0\xd7\x12\xab\xff\xcd\x93\xea\x3b\x20\xce\xb7\xaa\x57\x36\x8e\x84\xc3\x87\x6e\xcd\x7a\x93\x1c\xb1\x9e\xa5\x17\x60\x3e\xf4\x4a\x98\xb2\x46\x28\x8b\x27\x33\x69\x80\xe4\xbb\x50\x90\x07\xbc\xd0\x18\x58\xcd\x35\xe9\xcd\x8d\xf2\x88\x22\x1d\x3a\x48\x72\x68\x82\x8f\xe7\x32\xfd\x7d\xa2\xe2\xb6\x92\x6b\x4a\x9b\x54\xd5\x4b\x41\xc7\x79\x98\xd1\xef\x53\x84\x87\xe1\xdc\xdf\x87\xfc\xc3\xfa\xb2\x5c\x77\xa7\xcf\x01\xf8\x60\x87\xe2\xb9\x5e\x1e\x4d\x45\x52\x2f\xc3\xf4\x4a\x14\xcb\xfa\xcd\x48\xd6\x3e\xba\x04\x2c\xa3\xe1\x4a\xf8\xe5\xbe\xd3\x18\x6d\xe4\xfb\x69\xf3\x87\xaa\xc8\x82\x42\xd6\x4f\xbd\xcd\x11\x0c\x33\x88\x21\xad\x72\x56\x2f\x09\x2f\x55\xfa\x73\xb5\xe7\xd9\x2c\x9b\x6f\xee\x57\x94\xef\x48\x23\x19\x0f\x92\x57\xb1\x1f\xf4\xfc\x44\x57\xdb\xa9\x0f\xbd\xa8\x0d\xaf\xb5\x17\xfa\x27\x51\x94\x89\x01\x6f\x6f\x45\x80\x06\x40\x1f\x9f\xea\x20\x42\x6a\x54\x5a\xab\x77\x84\xc4\xe3\xdf\x9d\xfa\x9f\xb2\x79\xcf\x21\xa8\x6c\xe3\xf2\x92\xcf\x52\xd3\x43\xfc\xe9\x7e\x05\xb9\x2c\x84\x72\x3d\x7d\xdc\x65\xa7\xbc\x79\xae\x73\xb1\x24\x6b\x6b\x65\x04\x8a\x38\x55\xb6\x2b\x13\x40\x26\x46\x27\xc1\xdf\x82\xf3\x35\x2f\x3a\xc6\xd5\xa7\x5e\x08\x23\x57\x2c\x2f\xb3\x92\xbd\x7e\xf1\x51\x93\xcc\x5f\x6f\xbe\xfc\x4d\x27\xff\xd7\x41\xa9\x3d\x1a\xb7\x99\xd9\xfb\xd5\x45\xd2\xd2\x60\x6e\x35\x66\xeb\x79\xd5\x44\x85\xf5\x56\x15\x10\xa5\x7f\x17\xf2\xb3\x90\x9e\xd1\xbf\xc5\xe5\xd6\x46\x92\xb6\xc5\x03\xeb\x58\xf1\x7c\xae\x55\x41\x37\x60\x74\x67\xe8\xab\x51\xd8\x67\x06\x7f\x50\x37\x4e\x99\xf7\x48\x69\xe0\x17\x7f\x4e\xb5\x2c\x29\x30\xdf\xe5\xca\x2b\x6e\x45\x4d\xb8\xa3\x62\x25\xb2\xc9\x36\xbd\xc5\xbb\x75\xf1\x35\x5f\xfd\x8d\x7f\xa4\x76\xeb\x28\x28\x71\xe5\x21\x11\x83\x2f\xcf\xc2\x46\xda\x41\x5c\x20\x0d\x9e\x6c\x35\x0f\x49\x84\x6a\x00\x22\x66\x01\x91\xa2\x84\x0d\x7a\x53\x75\x36\x74\xc7\x8e\xa0\x0a\x5b\x9e\x26\x6f\xf2\x9b\x1a\x8f\xb1\x93\xe1\x32\xd2\x3f\x96\x0c\xd9\xc8\x24\x9b\x94\x3f\xcd\xb8\x65\x39\x5b\x2c\x03\xab\x67\x5b\xbb\x19\x93\x81\x3f\xb0\xa8\xd1\xe6\x83\x31\x29\x7c\x88\xdb\x1d\xca\x00\x31\x3b\x82\x11\x12\x1b\x60\x23\x47\x5c\xb6\x9d\x6a\xc6\x6c\x11\x16\xa5\x61\x71\x35\x0f\x68\x0c\xc7\x4c\x88\xfe\x99\x05\xed\x07\x87\x80\xe6\xd7\x1b\xcc\x73\x5f\xee\x75\xa9\x44\x4f\x69\x5d\x03\x6a\xa6\xb4\xb9\xe5\x9b\x66\x80\xb6\x31\x29\x67\xf8\xb2\x36\xff\x8b\xee\x60\x31\x6a\x70\xcb\xa0\x31\x2c\x99\x3b\x92\xe3\x0c\xa4\xcb\x11\x8c\x17\x45\xe7\xb5\x78\xc0\xad\x6c\x3a\x7d\x81\x87\x37\x25\x95\xdd\x16\x08\x93\x11\x5f\x11\xb0\x54\xfc\x17\x18\xc9\x67\xbd\xaf\xe9\xbf\x95\xad\x58\x3d\xb5\x93\x96\xd5\x94\x11\x4b\x65\x00\x99\x6e\xef\xf8\x2b\x70\x19\x1e\x52\xfa\x23\x30\xef\xdc\x66\xfa\x36\x3c\xb3\x79\xc9\xc6\x77\x40\x53\x5c\x99\x60\xca\x85\x7c\xfe\x4d\x0a\x88\xbb\xbb\xf2\xe7\xb2\x03\x4b\xb8\x43\x98\x0f\x6f\xa8\x6f\xf6\x02\x33\x5d\x1e\x25\xa6\x13\xc7\xd7\xa4\xef\x7a\x6b\x16\x1c\x25\x82\x23\x9a\xa5\x6f\x5c\x89\x94\xd0\x66\x46\xe0\xaa\x62\xc4\x8b\x54\xe0\x85\x22\x23\x77\x2e\xd4\x4e\x70\x59\x69\x7a\xec\x6b\xc2\x22\x5e\x0e\xda\xc5\x5f\xdb\xff\x1a\x16\xd4\xc6\xde\xf4\xc7\x7d\xdf\x38\xb2\x77\x39\x52\xc8\x11\xff\x14\x5a\xe3\x66\xe2\x16\xc4\x16\x00\x65\x9f\xf7\x8f\x64\xb1\x9e\x35\x4d\x74\xf9\x0a\x61\x90\x7c\x85\xc7\x02\x39\x4f\xe2\xcc\xa4\xf5\xfe\xb5\xb5\x35\x30\xb5\xf4\xc9\xe7\x2f\x5c\x09\x0c\xa4\x64\xa7\xa9\xc3\x95\x14\x37\x35\xfd\xd2\x42\x1d\x07\xe8\xef\xe4\x19\x8a\xd0\x6f\x9d\x23\x0a\x91\xd5\xfb\x50\xef\xc0\x2c\x2d\xb6\xed\x4a\xd7\x50\x31\x9e\x3e\x67\x2f\x52\x13\xdd\xae\x92\xc3\xfc\xec\x0e\xd5\xdf\xf5\x22\xd0\xca\xb8\x9b\xb8\x25\x32\x54\x25\x55\x29\xb3\x2c\xf5\x38\x5c\x90\x01\x42\x1b\x92\xcc\x67\x16\x3c\xc3\x95\x23\x5e\x40\x8a\x46\x3f\xa3\x1e\xef\xd0\x74\x2d\xe5\x13\x9b\xba\x2d\xc1\x41\xff\xf7\xbe\x17\x5f\x41\x8c\xf7\xcf\x89\xdd\x4f\x47\x4a\x2f\xc6\x1d\x0f\x38\x51\xf3\x4d\x52\xc4\x9b\xbd\x12\x26\xbd\x08\x96\x30\x71\xf5\xd4\x91\x8f\x7e\x12\xd0\x02\x8d\x32\x1b\x3d\x6b\xd4\x36\xe0\x2f\x6e\x55\xcc\x48\xc6\x13\xe3\x29\x91\x6c\xb8\x54\x52\x44\xbb\xa3\x77\x90\x8d\x6b\xcf\xeb\x7e\xd6\x62\x08\xe5\x07\xb4\xdf\xd8\xf2\xcb\xa5\xa3\xd4\x2f\x3a\x4e\x4d\xa8\x0e\xba\x19\x9c\xc8\xae\xc8\xa4\x0f\x25\x47\x10\xd8\x11\x83\x24\x96\x75\x0c\x4b\x34\xc3\x6b\x74\x6b\xf3\xcb\x60\xda\xe8\x1e\x73\xda\x95\x2e\xe4\x1c\x2a\x40\x23\x72\xe5\x23\x9f\xd2\xd4\x07\xd8\xe9\x1b\x9e\x57\xb4\x75\x8a\xac\xe5\x9d\xf7\xd8\x3d\x38\xad\x17\x71\x6c\xae\x50\x9d\xdb\x24\x27\xcb\xcf\x84\x7a\x7b\x10\x8e\xdb\x4b\x3a\x70\x81\x71\xe7\x31\xa9\x77\x02\xb6\x37\x7c\x79\x34\xec\x9b\x4c\x74\x46\xea\x03\x1e\x62\xbb\x39\xa6\xe2\xd3\x20\xea\xa8\xb5\x91\x0b\x14\xd8\x82\x6c\x20\x4f\x7a\x4a\xb2\x36\x24\x0b\x48\x60\x66\xb2\x7b\xe7\xf6\x9b\x84\x42\xff\xc8\x03\xc4\xed\x7f\xdd\x23\xef\x2f\xa0\x33\x7d\xb8\x42\x68\x1c\x0f\x8e\xf2\xba\xdc\xc0\x81\x13\xfe\x80\x61\xab\x31\xfa\xf9\x89\xba\x55\x51\x2a\x5f\x0e\x7b\x93\x6d\x63\xc0\xcc\xed\x58\xef\x82\xcf\x0c\x2d\x29\xfb\x23\x18\xe1\x2b\x56\xd4\x91\x2e\x9c\x4f\x96\xdb\x02\xca\x84\x49\x29\x4d\xa3\x3f\x8f\xce\x55\x07\xd3\xeb\x99\x23\x90\x72\xe2\xb2\xe1\x2e\x33\x55\x35\x3b\xf4\x90\x18\x2e\xeb\x7a\xa1\x03\xc9\x77\xc0\x67\x01\xca\xa0\xb7\x44\x55\x11\x66\x89\xb9\xdb\xe9\x0a\xd1\xd1\x85\x39\xd5\xe4\x1a\xda\x0f\x2f\x7f\x1e\x6c\x9a\xa6\x7a\xa2\xaa\x41\x6f\x84\x9f\x18\xc6\xfb\xd2\x2d\xcb\xe0\x3a\xf7\x8b\x15\xce\xdd\xda\x0d\x1b\xbb\xdd\x33\x62\x76\x9f\x50\xe9\x86\x80\xfc\xe5\x4b\x7e\x84\xa9\x4f\x32\x46\x66\xa6\x96\x7f\xc8\x0f\x2e\x5e\x9c\xa9\x4f\x61\x7f\x01\x16\x3a\x16\x01\xc6\x22\x19\xfc\xb5\x67\x82\x66\xe1\xc6\x18\xca\x89\x47\xe7\x4a\x2a\xde\x5e\x40\xda\xeb\x8d\xf5\x62\x0f\x36\x5f\x66\xae\xae\x88\xaf\xb4\x2d\x70\xce\x41\x45\xeb\xaf\xa7\x58\xac\xcc\x19\xe2\x78\xbc\x9f\x45\xda\x63\x85\x9c\x46\xeb\xdf\x7f\x0e\xe2\xe3\xfd\x9d\xd5\x41\x4d\xeb\x86\x07\xd7\xec\x55\x65\x68\x30\x1d\x26\x50\x78\x0b\xe7\xf7\x5f\xcd\xf9\x24\x41\xcb\x98\xf2\x36\x48\xb5\xed\x3f\x3a\x5e\x2c\x96\xda\xaa\xc1\xda\x0c\xe4\x6e\x1d\x85\xb5\xc2\xcf\xf4\xd9\xa9\x16\x7d\x58\x15\xfc\xc6\x6b\xbd\x94\x5f\x0b\x55\x87\x41\x95\xac\xbb\xbf\xec\xf8\x0f\x26\xb7\x0a\x4c\xf6\x62\xf9\x55\xea\x4e\x01\x35\x1f\xaa\x9f\x53\x00\xcf\x35\xc7\x2a\xe6\x09\x15\x06\x2c\xef\xf7\x89\x1e\x76\x77\x51\x91\x96\xbf\x81\x33\x33\x36\x1d\xbb\xee\xcf\xe8\xdc\x12\x7a\x94\xc2\x0b\x9f\xaf\x03\x6d\x71\xa8\x16\xb1\xab\x72\xe8\x20\x19\xd0\x69\x9b\x01\x2a\x12\x60\x22\xcc\x70\x31\x36\x63\x8d\xc8\x67\x49\x05\xb4\x10\x0e\x9b\x8d\x62\xab\xde\xb1\x3c\x84\xbe\x30\x0b\x49\xae\x44\xfc\xea\x4b\x89\x2f\xbf\x65\x64\xcd\xb0\x12\x69\x9e\x9f\xd1\xc9\x64\xf2\xa9\xd7\xf3\x12\x65\x6b\x47\xe6\x91\x66\x82\xb0\x04\x41\x57\xf4\xe2\xdf\xb9\xd5\xf5\x5d\x68\x49\x5d\x76\x3c\x80\x7d\x8e\xc6\x93\x2e\x56\x0c\x91\x3a\xb7\x6f\xc3\xff\x82\x02\x02\xae\x44\xfa\xcb\xda\x1a\xa1\x53\x10\x8f\x16\x8e\x42\x1b\xdb\x1a\x93\xc3\x82\xed\xf0\x8c\xc7\x9c\x5b\x71\x1a\xe1\x3c\x6e\xb8\xe5\x43\x93\xf4\x99\x8e\xc9\x9a\x95\xae\x7f\x85\x99\x9e\x78\x43\x9b\xa6\x03\x44\x55\x45\xf2\x1f\xfc\x85\x62\x07\xee\xa9\x45\x5f\xb1\x4c\x0a\xd9\x67\xf2\x2c\xf0\xf5\x72\xdb\xa5\xca\xc7\x45\x0e\x4e\x52\xce\x71\x3c\xe8\x71\xfc\x76\xd7\xad\xca\x01\x26\x0e\xa7\x08\xda\x43\x40\x01\x80\x5b\xcf\xd1\xf3\xcc\xd1\xc6\x08\x4d\x5e\xc2\xa2\x9f\x00\xe7\x7a\xa4\xf9\x1d\xee\x13\xee\xb5\xfc\xce\x8e\x82\xa1\x03\xb3\x7f\x6c\x4f\x25\x25\x95\x1e\xaa\xd4\x49\xa0\x8a\x75\xd2\xf3\x41\xf1\x7b\x2c\xbd\xf1\x73\x0d\x19\x2e\xf7\x58\xa6\xe8\xf8\x83\xd8\x8c\x07\xf2\xef\x41\xb4\x43\xda\xa7\x95\x00\x02\x44\x26\x3d\x2d\x30\xc7\x62\xf6\xfe\xcf\x3b\xb6\x7f\x8d\xda\x6c\xa7\xd9\xd4\x0a\x18\xe1\x86\x26\x85\x3c\x50\x94\xef\x66\xed\x64\x61\x7e\xe9\x38\x8c\x03\x7a\x74\xa9\x61\x69\x2d\x44\x70\x79\x6a\x68\x3f\x88\x0e\xb9\x04\x10\x60\xac\xee\x4e\x76\x18\xb7\x17\xa0\x57\x95\x1e\x1c\x66\x23\x62\xfd\x26\x70\x9b\xd8\x0a\xf3\x9f\xe5\xc1\x1f\x96\x54\xc2\x65\x5b\x21\xed\xcc\x32\x42\x84\x91\xdc\x5c\x10\x1e\x6a\x22\x2d\x2e\x51\xb9\xf2\x3d\x96\x0f\x12\x74\x8d\x9a\x5f\xc3\xe2\xf6\xc9\x53\x97\x23\x47\x65\x6a\x9f\x78\x7e\xe5\xbd\x19\x64\x45\xaa\x2e\xaf\x8f\x8f\xbd\xaf\xaa\x34\xed\x1b\x05\x5a\x09\xb3\x71\x8d\x8b\x3c\x8f\x1c\xfe\x5a\xc5\x3c\xf3\x7c\x9f\xa7\x6f\xe7\xac\x70\x87\x15\x7b\xdb\xa5\x23\xe2\xa9\xe7\x10\xb3\xf5\xb5\xa7\xff\x9b\x8b\x1f\x61\x2d\x9b\xbb\xb1\x10\x4f\x9d\x6d\xf9\x87\x87\xe9\x25\x23\xfe\x1d\x30\x10\x1e\xdf\x53\xd8\x9d\xf4\xa3\xc4\x2b\xd3\xbd\x27\x37\xf3\xaf\xe0\x15\x4e\xe1\xe8\xd9\x3d\x9a\x27\x75\xd8\x4c\x68\x6d\xac\x89\x84\x51\x2c\xf9\x55\x96\x23\xac\x6f\xe4\xef\x79\xf7\xb3\x4b\x21\x96\x9a\x8a\x8a\x72\x43\xf4\x1e\x11\xa5\x8d\xe3\xe4\xe1\x8f\x33\x85\xee\x70\x03\xc7\x9f\xa5\x27\xb9\x4e\x72\x33\x8f\x2a\x1c\x4c\x45\xff\x04\x5a\x61\x1f\xe1\xdb\x3c\xdd\xa0\xfe\xf1\x21\xf7\x8c\x52\x75\x34\xda\xb2\x66\xdd\x3f\xf6\xf7\x3d\x6b\x6b\xc0\x39\x98\x30\x98\x30\x51\x0a\x57\xeb\x0e\x2d\x74\xde\x38\x11\x27\x75\xb8\x77\x5d\x99\xc1\x5e\x38\xd0\xe7\x09\xf3\x97\x49\x2f\xc6\x46\x2f\x6e\x57\xa7\xff\x65\xd2\x5b\xe9\xeb\x75\x30\xa5\xef\x4f\xc8\x07\xff\x9e\x09\xb7\x01\xb5\x9d\x25\x0b\x54\x1a\x54\x6d\xb7\x5d\x11\x1f\x56\x0a\x47\x21\x7c\x12\x2c\x6b\x29\x28\xd5\xa0\xa0\x47\xa9\x88\xb3\xac\x51\x31\xdf\x00\x96\xc1\x5b\xbc\x39\x8d\x0e\x69\x65\x84\x1b\x17\xf4\x91\x63\x58\x85\xd8\x98\x7a\x04\xbb\xe2\x48\x21\x57\xb5\xca\x88\x3c\x76\x7e\xa1\x56\xb4\xe1\x78\x4b\xa1\xb7\xcf\xeb\x34\x3a\x71\xeb\x03\xeb\xce\x88\x79\x2a\xed\x8b\x18\xe7\xfd\x88\x0c\xd5\x93\x4c\xbe\x55\x52\x3c\x1b\x7c\x82\xb3\xed\x99\xb3\xde\x90\xa4\x79\xf2\x51\xe1\x90\x4a\xc8\x6f\x28\x02\x19\x57\xef\x35\x42\x1d\x3c\x8a\x2d\x39\xee\xe7\x31\x4e\x3f\x3f\x94\x5e\xa2\xfb\x5f\xf7\xf6\xc0\x9b\xa4\x72\xff\x3e\x56\x2c\x61\x68\xb0\xc1\xf8\x43\x65\x8b\xb1\x80\xeb\xfc\xf9\x54\xe5\x8e\x63\x3f\xb1\x61\x27\x51\xbf\x36\x0b\x15\xfe\x67\xca\x59\x4f\x5a\xae\x34\x23\x3a\x3b\x58\xee\xba\x56\x2f\xad\x63", 4096); syscall(SYS_serialize2, /*a=*/0x20001380ul); break; case 9: syscall(SYS_test, /*a0=*/0x20fff000ul, /*a1=*/0, /*a2=*/0x1000, /*a3=*/0x800, /*a4=*/0x400ul, 0); break; case 10: memcpy((void*)0x20000000, "\'/+,\000", 5); *(uint8_t*)0x20000040 = 0x1c; *(uint8_t*)0x20000044 = 1; STORE_BY_BITMASK(uint32_t, , 0x20000044, 3, 8, 4); syz_compare(/*want=*/0x20000000, /*want_len=*/5, /*got=*/0x20000040, /*got_len=*/8); break; case 11: syz_compare_int(/*n=*/2, /*v0=*/0xffff, /*v1=*/0x100, 0, 0); break; case 12: syz_errno(/*v=*/0xfffffff9); break; case 13: memcpy((void*)0x20000080, "\xfe\xaa\x0e\x27\x8d\x40\x3f\x03\xc2\xbf\x80\x48\x86\x76\x75\x4e\x43\x50\x32\xf8\x1e\xee\x19\xff\xa3\xf4\x8c\xa7\x58\xe8\x2b\x07\x72\x89\x83\x4e\xb7\x9b\xe6\x7b\x6c\xf4\x37\xe2\xd9\xb1\x01\xf3\x97\xd7", 50); syz_execute_func(/*text=*/0x20000080); break; case 14: syz_exit(/*status=*/0xffffffc0); break; case 15: syz_mmap(/*addr=*/0x20ffc000, /*len=*/0x1000); break; case 16: syz_sleep_ms(/*ms=*/1); break; case 17: syz_test_fuzzer1(/*a=*/0xd, /*b=*/0xc, /*c=*/0xb); break; } } int main(void) { syz_mmap(/*addr=*/0x20000000, /*len=*/0x1000000); setup_fault(); use_temporary_dir(); do_sandbox_none(); return 0; } :310:3: error: call to undeclared function 'syscall'; ISO C99 and later do not support implicit function declarations [-Werror,-Wimplicit-function-declaration] syscall(SYS_breaks_returns); ^ 1 error generated. compiler invocation: c++ [-o /tmp/syz-executor3462570741 -DGOOS_test=1 -DGOARCH_64=1 -DHOSTGOOS_openbsd=1 -x c - -m64 -lutil -O2 -pthread -Wall -Werror -Wparentheses -Wunused-const-variable -Wframe-larger-than=16384 -Wno-array-bounds -Wno-unused-but-set-variable -Wno-unused-command-line-argument -no-pie -fno-exceptions] --- FAIL: TestGenerate/test/64/2 (0.92s) csource_test.go:148: --- FAIL: TestGenerate/test/64/8 (1.69s) csource_test.go:148: --- FAIL: TestGenerate/test/64/7 (1.71s) csource_test.go:148: --- FAIL: TestGenerate/test/64/1 (1.64s) csource_test.go:148: FAIL FAIL github.com/google/syzkaller/pkg/csource 50.280s 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/fuzzer 137.885s ok github.com/google/syzkaller/pkg/gce 0.176s ok github.com/google/syzkaller/pkg/host (cached) ok github.com/google/syzkaller/pkg/html 0.122s ok github.com/google/syzkaller/pkg/ifuzz (cached) ok github.com/google/syzkaller/pkg/image (cached) ok github.com/google/syzkaller/pkg/instance (cached) ok github.com/google/syzkaller/pkg/ipc (cached) ok github.com/google/syzkaller/pkg/kconfig 0.131s ok github.com/google/syzkaller/pkg/kd (cached) ok github.com/google/syzkaller/pkg/log (cached) ok github.com/google/syzkaller/pkg/mgrconfig (cached) ok github.com/google/syzkaller/pkg/osutil (cached) ok github.com/google/syzkaller/pkg/report 27.180s ok github.com/google/syzkaller/pkg/repro (cached) ok github.com/google/syzkaller/pkg/runtest (cached) ok github.com/google/syzkaller/pkg/serializer (cached) ok github.com/google/syzkaller/pkg/signal 0.092s ok github.com/google/syzkaller/pkg/stats (cached) ok github.com/google/syzkaller/pkg/subsystem 0.078s ok github.com/google/syzkaller/pkg/subsystem/linux 0.603s ok github.com/google/syzkaller/pkg/subsystem/lists 0.562s ok github.com/google/syzkaller/pkg/symbolizer 1.231s ok github.com/google/syzkaller/pkg/tool (cached) ok github.com/google/syzkaller/pkg/vcs 117.486s ? github.com/google/syzkaller/sys [no test files] ? github.com/google/syzkaller/sys/akaros [no test files] ? github.com/google/syzkaller/sys/darwin/gen [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/fuchsia [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/gen [no test files] ? github.com/google/syzkaller/sys/fuchsia/layout [no test files] ? github.com/google/syzkaller/sys/fuchsia/fidlgen [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-check [no test files] ? github.com/google/syzkaller/tools/syz-build [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-kcidb [no test files] ? github.com/google/syzkaller/tools/syz-hubtool [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-mutate [no test files] ? github.com/google/syzkaller/tools/syz-minconfig [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-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/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/adb [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] ok github.com/google/syzkaller/prog 19.271s 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) ? 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/syz-ci 17.882s ok github.com/google/syzkaller/syz-fuzzer 0.638s ok github.com/google/syzkaller/syz-hub (cached) ok github.com/google/syzkaller/syz-hub/state (cached) ok github.com/google/syzkaller/syz-manager (cached) ok github.com/google/syzkaller/syz-verifier (cached) 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-testbed 5.989s 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 (cached) ok github.com/google/syzkaller/vm/isolated (cached) ok github.com/google/syzkaller/vm/proxyapp 6.567s ok github.com/google/syzkaller/vm/vmimpl (cached) FAIL