feat(gateway): invalid CID returns 400 Bad Request (#9726)
Henrique Dias committed
Mar 20, 2023 at 14:14 UTC
b975593920455c32793d4d233e49ee6762fbaf3b
6 files changed
+17
-17
docs/examples/kubo-as-a-library/go.mod
+2
-2
@@ -7,7 +7,7 @@ go 1.18
7
replace github.com/ipfs/kubo => ./../../..
8
9
require (
10
- github.com/ipfs/go-libipfs v0.6.2
10
+ github.com/ipfs/go-libipfs v0.7.0
11
github.com/ipfs/interface-go-ipfs-core v0.11.0
12
github.com/ipfs/kubo v0.0.0-00010101000000-000000000000
13
github.com/libp2p/go-libp2p v0.26.3
@@ -65,7 +65,7 @@ require (
65
github.com/ipfs/go-bitfield v1.1.0 // indirect
66
github.com/ipfs/go-block-format v0.1.1 // indirect
67
github.com/ipfs/go-blockservice v0.5.0 // indirect
68
- github.com/ipfs/go-cid v0.3.2 // indirect
68
+ github.com/ipfs/go-cid v0.4.0 // indirect
69
github.com/ipfs/go-cidutil v0.1.0 // indirect
70
github.com/ipfs/go-datastore v0.6.0 // indirect
71
github.com/ipfs/go-delegated-routing v0.7.0 // indirect
docs/examples/kubo-as-a-library/go.sum
+4
-4
@@ -460,8 +460,8 @@ github.com/ipfs/go-cid v0.0.5/go.mod h1:plgt+Y5MnOey4vO4UlUazGqdbEXuFYitED67Fexh
460
github.com/ipfs/go-cid v0.0.6/go.mod h1:6Ux9z5e+HpkQdckYoX1PG/6xqKspzlEIR5SDmgqgC/I=
461
github.com/ipfs/go-cid v0.0.7/go.mod h1:6Ux9z5e+HpkQdckYoX1PG/6xqKspzlEIR5SDmgqgC/I=
462
github.com/ipfs/go-cid v0.1.0/go.mod h1:rH5/Xv83Rfy8Rw6xG+id3DYAMUVmem1MowoKwdXmN2o=
463
-github.com/ipfs/go-cid v0.3.2 h1:OGgOd+JCFM+y1DjWPmVH+2/4POtpDzwcr7VgnB7mZXc=
464
-github.com/ipfs/go-cid v0.3.2/go.mod h1:gQ8pKqT/sUxGY+tIwy1RPpAojYu7jAyCp5Tz1svoupw=
463
+github.com/ipfs/go-cid v0.4.0 h1:a4pdZq0sx6ZSxbCizebnKiMCx/xI/aBBFlB73IgH4rA=
464
+github.com/ipfs/go-cid v0.4.0/go.mod h1:uQHwDeX4c6CtyrFwdqyhpNcxVewur1M7l7fNU7LKwZk=
465
github.com/ipfs/go-cidutil v0.1.0 h1:RW5hO7Vcf16dplUU60Hs0AKDkQAVPVplr7lk97CFL+Q=
466
github.com/ipfs/go-cidutil v0.1.0/go.mod h1:e7OEVBMIv9JaOxt9zaGEmAoSlXW9jdFZ5lP/0PwcfpA=
467
github.com/ipfs/go-datastore v0.0.1/go.mod h1:d4KVXhMt913cLBEI/PXAy6ko+W7e9AhyAKBGh803qeE=
@@ -569,8 +569,8 @@ github.com/ipfs/go-ipld-legacy v0.1.1 h1:BvD8PEuqwBHLTKqlGFTHSwrwFOMkVESEvwIYwR2
569
github.com/ipfs/go-ipld-legacy v0.1.1/go.mod h1:8AyKFCjgRPsQFf15ZQgDB8Din4DML/fOmKZkkFkrIEg=
570
github.com/ipfs/go-ipns v0.3.0 h1:ai791nTgVo+zTuq2bLvEGmWP1M0A6kGTXUsgv/Yq67A=
571
github.com/ipfs/go-ipns v0.3.0/go.mod h1:3cLT2rbvgPZGkHJoPO1YMJeh6LtkxopCkKFcio/wE24=
572
-github.com/ipfs/go-libipfs v0.6.2 h1:QUf3kS3RrCjgtE0QW2d18PFFfOLeEt24Ft892ipLzRI=
573
-github.com/ipfs/go-libipfs v0.6.2/go.mod h1:FmhKgxMOQA572TK5DA3MZ5GL44ZqsMHIrkgK4gLn4A8=
572
+github.com/ipfs/go-libipfs v0.7.0 h1:Mi54WJTODaOL2/ZSm5loi3SwI3jI2OuFWUrQIkJ5cpM=
573
+github.com/ipfs/go-libipfs v0.7.0/go.mod h1:KsIf/03CqhICzyRGyGo68tooiBE2iFbI/rXW7FhAYr0=
574
github.com/ipfs/go-log v0.0.1/go.mod h1:kL1d2/hzSpI0thNYjiKfjanbVNU+IIGA/WnNESY9leM=
575
github.com/ipfs/go-log v1.0.2/go.mod h1:1MNjMxe0u6xvJZgeqbJ8vdo2TKaGwZ1a0Bpza+sr2Sk=
576
github.com/ipfs/go-log v1.0.3/go.mod h1:OsLySYkwIbiSUR/yBTdv1qPtcE4FW3WPWk/ewz9Ru+A=
go.mod
+2
-2
@@ -17,7 +17,7 @@ require (
17
github.com/google/uuid v1.3.0
18
github.com/hashicorp/go-multierror v1.1.1
19
github.com/ipfs/go-blockservice v0.5.0
20
- github.com/ipfs/go-cid v0.3.2
20
+ github.com/ipfs/go-cid v0.4.0
21
github.com/ipfs/go-cidutil v0.1.0
22
github.com/ipfs/go-datastore v0.6.0
23
github.com/ipfs/go-delegated-routing v0.7.0
@@ -45,7 +45,7 @@ require (
45
github.com/ipfs/go-ipld-git v0.1.1
46
github.com/ipfs/go-ipld-legacy v0.1.1
47
github.com/ipfs/go-ipns v0.3.0
48
- github.com/ipfs/go-libipfs v0.6.2
48
+ github.com/ipfs/go-libipfs v0.7.0
49
github.com/ipfs/go-log v1.0.5
50
github.com/ipfs/go-log/v2 v2.5.1
51
github.com/ipfs/go-merkledag v0.9.0
go.sum
+4
-4
@@ -478,8 +478,8 @@ github.com/ipfs/go-cid v0.0.5/go.mod h1:plgt+Y5MnOey4vO4UlUazGqdbEXuFYitED67Fexh
478
github.com/ipfs/go-cid v0.0.6/go.mod h1:6Ux9z5e+HpkQdckYoX1PG/6xqKspzlEIR5SDmgqgC/I=
479
github.com/ipfs/go-cid v0.0.7/go.mod h1:6Ux9z5e+HpkQdckYoX1PG/6xqKspzlEIR5SDmgqgC/I=
480
github.com/ipfs/go-cid v0.1.0/go.mod h1:rH5/Xv83Rfy8Rw6xG+id3DYAMUVmem1MowoKwdXmN2o=
481
-github.com/ipfs/go-cid v0.3.2 h1:OGgOd+JCFM+y1DjWPmVH+2/4POtpDzwcr7VgnB7mZXc=
482
-github.com/ipfs/go-cid v0.3.2/go.mod h1:gQ8pKqT/sUxGY+tIwy1RPpAojYu7jAyCp5Tz1svoupw=
481
+github.com/ipfs/go-cid v0.4.0 h1:a4pdZq0sx6ZSxbCizebnKiMCx/xI/aBBFlB73IgH4rA=
482
+github.com/ipfs/go-cid v0.4.0/go.mod h1:uQHwDeX4c6CtyrFwdqyhpNcxVewur1M7l7fNU7LKwZk=
483
github.com/ipfs/go-cidutil v0.1.0 h1:RW5hO7Vcf16dplUU60Hs0AKDkQAVPVplr7lk97CFL+Q=
484
github.com/ipfs/go-cidutil v0.1.0/go.mod h1:e7OEVBMIv9JaOxt9zaGEmAoSlXW9jdFZ5lP/0PwcfpA=
485
github.com/ipfs/go-datastore v0.0.1/go.mod h1:d4KVXhMt913cLBEI/PXAy6ko+W7e9AhyAKBGh803qeE=
@@ -591,8 +591,8 @@ github.com/ipfs/go-ipld-legacy v0.1.1 h1:BvD8PEuqwBHLTKqlGFTHSwrwFOMkVESEvwIYwR2
591
github.com/ipfs/go-ipld-legacy v0.1.1/go.mod h1:8AyKFCjgRPsQFf15ZQgDB8Din4DML/fOmKZkkFkrIEg=
592
github.com/ipfs/go-ipns v0.3.0 h1:ai791nTgVo+zTuq2bLvEGmWP1M0A6kGTXUsgv/Yq67A=
593
github.com/ipfs/go-ipns v0.3.0/go.mod h1:3cLT2rbvgPZGkHJoPO1YMJeh6LtkxopCkKFcio/wE24=
594
-github.com/ipfs/go-libipfs v0.6.2 h1:QUf3kS3RrCjgtE0QW2d18PFFfOLeEt24Ft892ipLzRI=
595
-github.com/ipfs/go-libipfs v0.6.2/go.mod h1:FmhKgxMOQA572TK5DA3MZ5GL44ZqsMHIrkgK4gLn4A8=
594
+github.com/ipfs/go-libipfs v0.7.0 h1:Mi54WJTODaOL2/ZSm5loi3SwI3jI2OuFWUrQIkJ5cpM=
595
+github.com/ipfs/go-libipfs v0.7.0/go.mod h1:KsIf/03CqhICzyRGyGo68tooiBE2iFbI/rXW7FhAYr0=
596
github.com/ipfs/go-log v0.0.1/go.mod h1:kL1d2/hzSpI0thNYjiKfjanbVNU+IIGA/WnNESY9leM=
597
github.com/ipfs/go-log v1.0.2/go.mod h1:1MNjMxe0u6xvJZgeqbJ8vdo2TKaGwZ1a0Bpza+sr2Sk=
598
github.com/ipfs/go-log v1.0.3/go.mod h1:OsLySYkwIbiSUR/yBTdv1qPtcE4FW3WPWk/ewz9Ru+A=
test/cli/gateway_test.go
+4
-4
@@ -126,10 +126,10 @@ func TestGateway(t *testing.T) {
126
assert.Equal(t, 404, resp.StatusCode)
127
})
128
129
- t.Run("GET IPFS invalid CID returns 500 (Internal Server Error)", func(t *testing.T) {
129
+ t.Run("GET IPFS invalid CID returns 400 (Bad Request)", func(t *testing.T) {
130
t.Parallel()
131
resp := client.Get("/ipfs/QmInvalid/pleaseDontAddMe")
132
- assert.Equal(t, 500, resp.StatusCode)
132
+ assert.Equal(t, 400, resp.StatusCode)
133
})
134
135
t.Run("GET IPFS inlined zero-length data object returns ok code (200)", func(t *testing.T) {
@@ -198,7 +198,7 @@ func TestGateway(t *testing.T) {
198
199
t.Run("GET invalid IPFS path errors", func(t *testing.T) {
200
t.Parallel()
201
- assert.Equal(t, 500, client.Get("/ipfs/12345").StatusCode)
201
+ assert.Equal(t, 400, client.Get("/ipfs/12345").StatusCode)
202
})
203
204
t.Run("GET invalid path errors", func(t *testing.T) {
@@ -406,7 +406,7 @@ func TestGateway(t *testing.T) {
406
gatewayAddr := URLStrToMultiaddr(node.GatewayURL())
407
res := node.RunIPFS("--api", gatewayAddr.String(), "refs", "local")
408
assert.Equal(t,
409
- `Error: invalid path "local": selected encoding not supported`,
409
+ `Error: invalid path "local": invalid cid: selected encoding not supported`,
410
res.Stderr.Trimmed(),
411
)
412
})
test/sharness/t0090-get.sh
+1
-1
@@ -129,7 +129,7 @@ test_get_cmd() {
129
'
130
131
test_expect_success "ipfs get ../.. should fail" '
132
- echo "Error: invalid path \"../..\": selected encoding not supported" >expected &&
132
+ echo "Error: invalid path \"../..\": invalid cid: selected encoding not supported" >expected &&
133
test_must_fail ipfs get ../.. 2>actual &&
134
test_cmp expected actual
135
'