Skip to content

Commit 76063b9

Browse files
committed
rpcperms: check if server is nil on unary/stream interceptors
1 parent 3b92c82 commit 76063b9

File tree

1 file changed

+9
-0
lines changed

1 file changed

+9
-0
lines changed

rpcperms/interceptor.go

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -413,6 +413,11 @@ func (r *InterceptorChain) rpcStateUnaryServerInterceptor() grpc.UnaryServerInte
413413
return func(ctx context.Context, req interface{}, info *grpc.UnaryServerInfo,
414414
handler grpc.UnaryHandler) (interface{}, error) {
415415

416+
if info.Server == nil {
417+
return nil, fmt.Errorf("cannot handle call, server " +
418+
"not ready")
419+
}
420+
416421
if err := r.checkRPCState(info.Server); err != nil {
417422
return nil, err
418423
}
@@ -427,6 +432,10 @@ func (r *InterceptorChain) rpcStateStreamServerInterceptor() grpc.StreamServerIn
427432
return func(srv interface{}, ss grpc.ServerStream,
428433
info *grpc.StreamServerInfo, handler grpc.StreamHandler) error {
429434

435+
if srv == nil {
436+
return fmt.Errorf("srv is nil, can't check RPC state")
437+
}
438+
430439
if err := r.checkRPCState(srv); err != nil {
431440
return err
432441
}

0 commit comments

Comments
 (0)