Browse Source

Consolidate redundant nil entry checks in HeadObjectHandler

pull/7481/head
chrislu 2 weeks ago
parent
commit
f1fde6e1a8
  1. 18
      weed/s3api/s3api_object_handlers.go

18
weed/s3api/s3api_object_handlers.go

@ -1933,12 +1933,6 @@ func (s3a *S3ApiServer) HeadObjectHandler(w http.ResponseWriter, r *http.Request
s3err.WriteErrorResponse(w, r, s3err.ErrNoSuchKey) s3err.WriteErrorResponse(w, r, s3err.ErrNoSuchKey)
return return
} }
// Safety check: entry must be valid after successful retrieval
if entry == nil {
glog.Errorf("HeadObject: getSpecificObjectVersion returned nil entry without error for version %s", versionId)
s3err.WriteErrorResponse(w, r, s3err.ErrNoSuchKey)
return
}
targetVersionId = versionId targetVersionId = versionId
} else { } else {
// Request for latest version - OPTIMIZATION: // Request for latest version - OPTIMIZATION:
@ -1985,12 +1979,6 @@ func (s3a *S3ApiServer) HeadObjectHandler(w http.ResponseWriter, r *http.Request
return return
} }
} }
// Safety check: entry must be valid after successful retrieval
if entry == nil {
glog.Errorf("HeadObject: entry is nil after versioned lookup for %s%s", bucket, object)
s3err.WriteErrorResponse(w, r, s3err.ErrNoSuchKey)
return
}
// Extract version ID if not already set // Extract version ID if not already set
if targetVersionId == "" { if targetVersionId == "" {
if entry.Extended != nil { if entry.Extended != nil {
@ -2032,12 +2020,6 @@ func (s3a *S3ApiServer) HeadObjectHandler(w http.ResponseWriter, r *http.Request
var objectEntryForSSE *filer_pb.Entry var objectEntryForSSE *filer_pb.Entry
if versioningConfigured { if versioningConfigured {
objectEntryForSSE = entry objectEntryForSSE = entry
// Safety check - this should never happen as versioned path handles errors above
if objectEntryForSSE == nil {
glog.Errorf("HeadObjectHandler: unexpected nil entry for versioned object %s/%s", bucket, object)
s3err.WriteErrorResponse(w, r, s3err.ErrNoSuchKey)
return
}
} else { } else {
// For non-versioned objects, try to reuse entry from conditional header check // For non-versioned objects, try to reuse entry from conditional header check
if result.Entry != nil { if result.Entry != nil {

Loading…
Cancel
Save