[#532] object/hash: Fix NPE during request forwarding

In current implementation `Object.GetRangeHash` RPC handler forwards range
requests for payload data. Missing request forwarder of the original request
caused NPE during execution.

Do not call request forwarder if payload range hash is requested.

Signed-off-by: Leonard Lyubich <leonard@nspcc.ru>
This commit is contained in:
Leonard Lyubich 2021-05-18 15:13:40 +03:00 committed by Alex Vanin
parent 5e9513e008
commit 72e2bc8fb6
3 changed files with 18 additions and 4 deletions

View file

@ -15,7 +15,11 @@ func (s *Service) Get(ctx context.Context, prm Prm) error {
// GetRange serves a request to get an object by address, and returns Streamer instance.
func (s *Service) GetRange(ctx context.Context, prm RangePrm) error {
return s.get(ctx, prm.commonPrm, withPayloadRange(prm.rng)).err
return s.getRange(ctx, prm)
}
func (s *Service) getRange(ctx context.Context, prm RangePrm, opts ...execOption) error {
return s.get(ctx, prm.commonPrm, append(opts, withPayloadRange(prm.rng))...).err
}
func (s *Service) GetRangeHash(ctx context.Context, prm RangeHashPrm) (*RangeHashRes, error) {
@ -37,7 +41,7 @@ func (s *Service) GetRangeHash(ctx context.Context, prm RangeHashPrm) (*RangeHas
hash: util.NewSaltingWriter(h, prm.salt),
})
if err := s.GetRange(ctx, rngPrm); err != nil {
if err := s.getRange(ctx, rngPrm, hashOnly()); err != nil {
return nil, err
}