mirror of
https://github.com/minio/minio.git
synced 2025-05-21 09:33:50 -04:00
fix: reject clients that do not send proper payload (#18701)
This commit is contained in:
parent
22f8e39b58
commit
da55499db0
@ -716,7 +716,7 @@ func (set *erasureObjects) listObjectsToDecommission(ctx context.Context, bi dec
|
|||||||
path: bi.Prefix,
|
path: bi.Prefix,
|
||||||
recursive: true,
|
recursive: true,
|
||||||
forwardTo: "",
|
forwardTo: "",
|
||||||
minDisks: len(disks) / 2,
|
minDisks: listQuorum,
|
||||||
reportNotFound: false,
|
reportNotFound: false,
|
||||||
agreed: fn,
|
agreed: fn,
|
||||||
partial: func(entries metaCacheEntries, _ []error) {
|
partial: func(entries metaCacheEntries, _ []error) {
|
||||||
|
@ -624,10 +624,12 @@ func (z *erasureServerPools) rebalanceBucket(ctx context.Context, bucket string,
|
|||||||
go func() {
|
go func() {
|
||||||
defer wg.Done()
|
defer wg.Done()
|
||||||
|
|
||||||
|
listQuorum := (len(disks) + 1) / 2
|
||||||
|
|
||||||
// How to resolve partial results.
|
// How to resolve partial results.
|
||||||
resolver := metadataResolutionParams{
|
resolver := metadataResolutionParams{
|
||||||
dirQuorum: len(disks) / 2, // make sure to capture all quorum ratios
|
dirQuorum: listQuorum, // make sure to capture all quorum ratios
|
||||||
objQuorum: len(disks) / 2, // make sure to capture all quorum ratios
|
objQuorum: listQuorum, // make sure to capture all quorum ratios
|
||||||
bucket: bucket,
|
bucket: bucket,
|
||||||
}
|
}
|
||||||
err := listPathRaw(ctx, listPathRawOptions{
|
err := listPathRaw(ctx, listPathRawOptions{
|
||||||
@ -635,7 +637,7 @@ func (z *erasureServerPools) rebalanceBucket(ctx context.Context, bucket string,
|
|||||||
bucket: bucket,
|
bucket: bucket,
|
||||||
recursive: true,
|
recursive: true,
|
||||||
forwardTo: "",
|
forwardTo: "",
|
||||||
minDisks: len(disks) / 2, // to capture all quorum ratios
|
minDisks: listQuorum,
|
||||||
reportNotFound: false,
|
reportNotFound: false,
|
||||||
agreed: func(entry metaCacheEntry) {
|
agreed: func(entry metaCacheEntry) {
|
||||||
workers <- struct{}{}
|
workers <- struct{}{}
|
||||||
|
@ -169,6 +169,7 @@ func (m *Manager) Handler() http.HandlerFunc {
|
|||||||
msg, _, err := wsutil.ReadClientData(conn)
|
msg, _, err := wsutil.ReadClientData(conn)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
logger.LogIf(ctx, fmt.Errorf("grid: reading connect: %w", err))
|
logger.LogIf(ctx, fmt.Errorf("grid: reading connect: %w", err))
|
||||||
|
w.WriteHeader(http.StatusForbidden)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
if debugPrint {
|
if debugPrint {
|
||||||
@ -182,6 +183,7 @@ func (m *Manager) Handler() http.HandlerFunc {
|
|||||||
fmt.Println("parse err:", err)
|
fmt.Println("parse err:", err)
|
||||||
}
|
}
|
||||||
logger.LogIf(ctx, fmt.Errorf("handleMessages: parsing connect: %w", err))
|
logger.LogIf(ctx, fmt.Errorf("handleMessages: parsing connect: %w", err))
|
||||||
|
w.WriteHeader(http.StatusForbidden)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
if message.Op != OpConnect {
|
if message.Op != OpConnect {
|
||||||
@ -189,6 +191,7 @@ func (m *Manager) Handler() http.HandlerFunc {
|
|||||||
fmt.Println("op err:", message.Op)
|
fmt.Println("op err:", message.Op)
|
||||||
}
|
}
|
||||||
logger.LogIf(ctx, fmt.Errorf("handler: unexpected op: %v", message.Op))
|
logger.LogIf(ctx, fmt.Errorf("handler: unexpected op: %v", message.Op))
|
||||||
|
w.WriteHeader(http.StatusForbidden)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
var cReq connectReq
|
var cReq connectReq
|
||||||
@ -198,6 +201,7 @@ func (m *Manager) Handler() http.HandlerFunc {
|
|||||||
fmt.Println("handler: creq err:", err)
|
fmt.Println("handler: creq err:", err)
|
||||||
}
|
}
|
||||||
logger.LogIf(ctx, fmt.Errorf("handleMessages: parsing ConnectReq: %w", err))
|
logger.LogIf(ctx, fmt.Errorf("handleMessages: parsing ConnectReq: %w", err))
|
||||||
|
w.WriteHeader(http.StatusForbidden)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
remote := m.targets[cReq.Host]
|
remote := m.targets[cReq.Host]
|
||||||
@ -205,7 +209,7 @@ func (m *Manager) Handler() http.HandlerFunc {
|
|||||||
if debugPrint {
|
if debugPrint {
|
||||||
fmt.Printf("%s: handler: unknown host: %v. Have %v\n", m.local, cReq.Host, m.targets)
|
fmt.Printf("%s: handler: unknown host: %v. Have %v\n", m.local, cReq.Host, m.targets)
|
||||||
}
|
}
|
||||||
logger.LogIf(ctx, fmt.Errorf("handler: unknown host: %v", cReq.Host))
|
w.WriteHeader(http.StatusForbidden)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
if debugPrint {
|
if debugPrint {
|
||||||
|
@ -202,7 +202,7 @@ func newMuxStream(ctx context.Context, msg message, c *Connection, handler Strea
|
|||||||
case <-t.C:
|
case <-t.C:
|
||||||
last := time.Since(time.Unix(atomic.LoadInt64(&m.LastPing), 0))
|
last := time.Since(time.Unix(atomic.LoadInt64(&m.LastPing), 0))
|
||||||
if last > lastPingThreshold {
|
if last > lastPingThreshold {
|
||||||
logger.LogIf(m.ctx, fmt.Errorf("canceling remote mux %d not seen for %v", m.ID, last))
|
logger.LogIf(m.ctx, fmt.Errorf("canceling remote connection %s not seen for %v", m.parent, last))
|
||||||
m.close()
|
m.close()
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user