Skip to content

Commit 341bd06

Browse files
committed
More fuzzing.
1 parent f765882 commit 341bd06

File tree

6 files changed

+421
-170
lines changed

6 files changed

+421
-170
lines changed

.github/workflows/test.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -112,7 +112,7 @@ jobs:
112112
version: '10.1'
113113
flags: '-test.v -test.short'
114114
- name: openbsd
115-
version: '7.6'
115+
version: '7.7'
116116
flags: '-test.v -test.short'
117117
runs-on: ubuntu-latest
118118
needs: test
@@ -128,7 +128,7 @@ jobs:
128128
run: .github/workflows/build-test.sh
129129

130130
- name: Test
131-
uses: cross-platform-actions/action@v0.27.0
131+
uses: cross-platform-actions/action@v0.28.0
132132
with:
133133
operating_system: ${{ matrix.os.name }}
134134
architecture: ${{ matrix.os.arch }}

sqlite3/libc/libc.wasm

4 Bytes
Binary file not shown.

sqlite3/libc/libc.wat

Lines changed: 107 additions & 100 deletions
Original file line numberDiff line numberDiff line change
@@ -3115,10 +3115,24 @@
31153115
(local.get $11)
31163116
)
31173117
)
3118-
(block $block6
3118+
(local.set $1
3119+
(select
3120+
(i32.const -1)
3121+
(i32.sub
3122+
(local.get $1)
3123+
(local.get $3)
3124+
)
3125+
(i32.eq
3126+
(local.get $1)
3127+
(i32.const -1)
3128+
)
3129+
)
3130+
)
3131+
(block $block5
31193132
(block $block1
3120-
(br_if $block1
3121-
(i32.lt_u
3133+
(if
3134+
(i32.gt_u
3135+
(local.get $0)
31223136
(local.tee $14
31233137
(i32.sub
31243138
(i32.sub
@@ -3131,7 +3145,12 @@
31313145
(i32.const 16)
31323146
)
31333147
)
3134-
(local.get $0)
3148+
)
3149+
(then
3150+
(local.set $5
3151+
(local.get $1)
3152+
)
3153+
(br $block1)
31353154
)
31363155
)
31373156
(local.set $18
@@ -3185,22 +3204,21 @@
31853204
)
31863205
)
31873206
)
3188-
(block $block3
3189-
(br_if $block3
3190-
(i32.ne
3207+
(local.set $5
3208+
(i32.const -1)
3209+
)
3210+
(br_if $block1
3211+
(i32.and
3212+
(i32.eqz
3213+
(i8x16.all_true
3214+
(local.get $17)
3215+
)
3216+
)
3217+
(i32.eq
31913218
(local.get $1)
31923219
(i32.const -1)
31933220
)
31943221
)
3195-
(br_if $block3
3196-
(i8x16.all_true
3197-
(local.get $17)
3198-
)
3199-
)
3200-
(local.set $1
3201-
(i32.const -1)
3202-
)
3203-
(br $block1)
32043222
)
32053223
(br_if $block2
32063224
(i32.eqz
@@ -3215,13 +3233,10 @@
32153233
(if
32163234
(i32.lt_u
32173235
(local.get $1)
3218-
(i32.add
3219-
(local.tee $5
3220-
(i32.ctz
3221-
(local.get $7)
3222-
)
3236+
(local.tee $5
3237+
(i32.ctz
3238+
(local.get $7)
32233239
)
3224-
(local.get $3)
32253240
)
32263241
)
32273242
(then
@@ -3230,9 +3245,9 @@
32303245
)
32313246
)
32323247
)
3233-
(br_if $block6
3248+
(br_if $block5
32343249
(i32.eqz
3235-
(block $block5 (result i32)
3250+
(block $block4 (result i32)
32363251
(local.set $9
32373252
(i32.add
32383253
(local.tee $8
@@ -3250,7 +3265,7 @@
32503265
(local.set $12
32513266
(i32.const 0)
32523267
)
3253-
(block $block4
3268+
(block $block3
32543269
(if
32553270
(i32.ge_u
32563271
(local.tee $10
@@ -3263,7 +3278,7 @@
32633278
(i32.const 1)
32643279
)
32653280
(loop $label1
3266-
(br_if $block4
3281+
(br_if $block3
32673282
(v128.any_true
32683283
(v128.xor
32693284
(v128.load align=1
@@ -3307,19 +3322,19 @@
33073322
)
33083323
)
33093324
)
3310-
(br $block5
3325+
(br $block4
33113326
(i32.const 0)
33123327
)
33133328
)
33143329
)
3315-
(br_if $block4
3330+
(br_if $block3
33163331
(i32.eqz
33173332
(local.get $10)
33183333
)
33193334
)
33203335
(loop $label2
33213336
(drop
3322-
(br_if $block5
3337+
(br_if $block4
33233338
(i32.const 1)
33243339
(i32.ne
33253340
(i32.load8_u
@@ -3370,7 +3385,7 @@
33703385
)
33713386
)
33723387
)
3373-
(block $block7
3388+
(block $block6
33743389
(if
33753390
(i32.eq
33763391
(local.get $1)
@@ -3385,24 +3400,20 @@
33853400
(local.set $7
33863401
(i32.const 16)
33873402
)
3388-
(local.set $1
3403+
(local.set $5
33893404
(i32.const -1)
33903405
)
3391-
(br $block7)
3406+
(br $block6)
33923407
)
33933408
)
33943409
(return
33953410
(i32.const 0)
33963411
)
33973412
)
33983413
)
3399-
(local.set $8
3400-
(i32.const 0)
3401-
)
34023414
(br_if $block6
3403-
(i32.lt_u
3404-
(local.get $1)
3405-
(local.tee $1
3415+
(i32.le_u
3416+
(local.tee $5
34063417
(i32.sub
34073418
(local.get $1)
34083419
(local.tee $7
@@ -3431,14 +3442,15 @@
34313442
)
34323443
)
34333444
)
3434-
)
3435-
)
3436-
(br_if $block6
3437-
(i32.lt_u
34383445
(local.get $1)
3439-
(local.get $3)
34403446
)
34413447
)
3448+
(return
3449+
(i32.const 0)
3450+
)
3451+
)
3452+
(local.set $1
3453+
(local.get $5)
34423454
)
34433455
(br_if $label4
34443456
(i32.le_u
@@ -3453,90 +3465,85 @@
34533465
)
34543466
)
34553467
)
3456-
(local.set $11
3457-
(i32.sub
3458-
(local.get $1)
3459-
(local.get $3)
3460-
)
3461-
)
3462-
(local.set $4
3468+
(local.set $1
34633469
(i32.const 0)
34643470
)
3465-
(local.set $1
3471+
(local.set $4
34663472
(i32.ne
3467-
(local.get $1)
3473+
(local.get $5)
34683474
(i32.const -1)
34693475
)
34703476
)
3471-
(loop $label6
3477+
(loop $label5
34723478
(local.set $6
34733479
(i32.const 0)
34743480
)
3475-
(block $block8
3476-
(loop $label5
3477-
(local.set $8
3478-
(i32.const 0)
3479-
)
3480-
(br_if $block6
3481-
(i32.eqz
3482-
(i32.or
3483-
(local.get $1)
3484-
(local.tee $5
3485-
(i32.load8_u
3486-
(i32.add
3487-
(local.get $0)
3488-
(local.get $6)
3489-
)
3481+
(loop $label6
3482+
(local.set $8
3483+
(i32.const 0)
3484+
)
3485+
(br_if $block5
3486+
(i32.eqz
3487+
(i32.or
3488+
(local.get $4)
3489+
(local.tee $11
3490+
(i32.load8_u
3491+
(i32.add
3492+
(local.get $0)
3493+
(local.get $6)
34903494
)
34913495
)
34923496
)
34933497
)
34943498
)
3495-
(br_if $block8
3496-
(i32.ne
3497-
(i32.load8_u
3498-
(i32.add
3499-
(local.get $2)
3500-
(local.get $6)
3501-
)
3499+
)
3500+
(if
3501+
(i32.ne
3502+
(local.get $11)
3503+
(i32.load8_u
3504+
(i32.add
3505+
(local.get $2)
3506+
(local.get $6)
35023507
)
3503-
(local.get $5)
35043508
)
35053509
)
3506-
(br_if $label5
3507-
(i32.ne
3508-
(local.get $3)
3509-
(local.tee $6
3510-
(i32.add
3511-
(local.get $6)
3512-
(i32.const 1)
3510+
(then
3511+
(local.set $0
3512+
(i32.add
3513+
(local.get $0)
3514+
(i32.const 1)
3515+
)
3516+
)
3517+
(br_if $label5
3518+
(i32.le_u
3519+
(local.tee $1
3520+
(i32.add
3521+
(local.get $1)
3522+
(i32.const 1)
3523+
)
35133524
)
3525+
(local.get $5)
35143526
)
35153527
)
3528+
(br $block5)
35163529
)
35173530
)
3518-
(return
3519-
(local.get $0)
3520-
)
3521-
)
3522-
(local.set $0
3523-
(i32.add
3524-
(local.get $0)
3525-
(i32.const 1)
3526-
)
3527-
)
3528-
(br_if $label6
3529-
(i32.le_u
3530-
(local.tee $4
3531-
(i32.add
3532-
(local.get $4)
3533-
(i32.const 1)
3531+
(br_if $label6
3532+
(i32.ne
3533+
(local.get $3)
3534+
(local.tee $6
3535+
(i32.add
3536+
(local.get $6)
3537+
(i32.const 1)
3538+
)
35343539
)
35353540
)
3536-
(local.get $11)
35373541
)
35383542
)
35393543
)
3544+
(local.set $8
3545+
(local.get $0)
3546+
)
35403547
)
35413548
(local.get $8)
35423549
)

0 commit comments

Comments
 (0)