mirror of
https://github.com/OJ/gobuster.git
synced 2026-10-11 21:59:56 +00:00
Merge pull request #629 from andriikushch/master
Replace string concatenation in a loop by strings.Builder
This commit is contained in:
@@ -162,7 +162,8 @@ func (s *GobusterGCS) ProcessWord(ctx context.Context, word string, progress *li
|
||||
return nil, nil // nolint:nilnil
|
||||
}
|
||||
|
||||
extraStr := ""
|
||||
var extraStrBuilder strings.Builder
|
||||
|
||||
if s.options.ShowFiles {
|
||||
// get status
|
||||
var result map[string]interface{}
|
||||
@@ -178,7 +179,10 @@ func (s *GobusterGCS) ProcessWord(ctx context.Context, word string, progress *li
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("could not parse error json: %w", err)
|
||||
}
|
||||
extraStr = fmt.Sprintf("Error: %s (%d)", gcsError.Error.Message, gcsError.Error.Code)
|
||||
_, err = fmt.Fprintf(&extraStrBuilder, "Error: %s (%d)", gcsError.Error.Message, gcsError.Error.Code)
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("fmt.Fprintf to strings.Builder failed: %w", err)
|
||||
}
|
||||
} else if v, exist := result["kind"]; exist && v == "storage#objects" {
|
||||
// https://cloud.google.com/storage/docs/json_api/v1/status-codes
|
||||
// bucket listing enabled
|
||||
@@ -187,18 +191,23 @@ func (s *GobusterGCS) ProcessWord(ctx context.Context, word string, progress *li
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("could not parse result json: %w", err)
|
||||
}
|
||||
extraStr = "Bucket Listing enabled: "
|
||||
for _, x := range gcsListing.Items {
|
||||
extraStr += fmt.Sprintf("%s (%sb), ", x.Name, x.Size)
|
||||
extraStrBuilder.WriteString("Bucket Listing enabled: ")
|
||||
for i, x := range gcsListing.Items {
|
||||
if i > 0 {
|
||||
extraStrBuilder.WriteString(", ")
|
||||
}
|
||||
_, err := fmt.Fprintf(&extraStrBuilder, "%s (%sb)", x.Name, x.Size)
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("fmt.Fprintf to strings.Builder failed: %w", err)
|
||||
}
|
||||
}
|
||||
extraStr = strings.TrimRight(extraStr, ", ")
|
||||
}
|
||||
}
|
||||
|
||||
r := Result{
|
||||
Found: found,
|
||||
BucketName: word,
|
||||
Status: extraStr,
|
||||
Status: extraStrBuilder.String(),
|
||||
}
|
||||
|
||||
return r, nil
|
||||
|
||||
@@ -160,7 +160,8 @@ func (s *GobusterS3) ProcessWord(ctx context.Context, word string, progress *lib
|
||||
return nil, nil // nolint:nilnil
|
||||
}
|
||||
|
||||
extraStr := ""
|
||||
var extraStrBuilder strings.Builder
|
||||
|
||||
if s.options.ShowFiles {
|
||||
// get status
|
||||
if bytes.Contains(body, []byte("<Error>")) {
|
||||
@@ -170,7 +171,10 @@ func (s *GobusterS3) ProcessWord(ctx context.Context, word string, progress *lib
|
||||
return nil, fmt.Errorf("could not parse error xml: %w", err)
|
||||
}
|
||||
// https://docs.aws.amazon.com/AmazonS3/latest/API/ErrorResponses.html#ErrorCodeList
|
||||
extraStr = fmt.Sprintf("Error: %s (%s)", awsError.Message, awsError.Code)
|
||||
_, err = fmt.Fprintf(&extraStrBuilder, "Error: %s (%s)", awsError.Message, awsError.Code)
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("fmt.Fprintf to strings.Builder failed: %w", err)
|
||||
}
|
||||
} else if bytes.Contains(body, []byte("<ListBucketResult ")) {
|
||||
// bucket listing enabled
|
||||
awsListing := AWSListing{}
|
||||
@@ -178,18 +182,23 @@ func (s *GobusterS3) ProcessWord(ctx context.Context, word string, progress *lib
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("could not parse result xml: %w", err)
|
||||
}
|
||||
extraStr = "Bucket Listing enabled: "
|
||||
for _, x := range awsListing.Contents {
|
||||
extraStr += fmt.Sprintf("%s (%db), ", x.Key, x.Size)
|
||||
extraStrBuilder.WriteString("Bucket Listing enabled: ")
|
||||
for i, x := range awsListing.Contents {
|
||||
if i > 0 {
|
||||
extraStrBuilder.WriteString(", ")
|
||||
}
|
||||
_, err := fmt.Fprintf(&extraStrBuilder, "%s (%db)", x.Key, x.Size)
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("fmt.Fprintf to strings.Builder failed: %w", err)
|
||||
}
|
||||
}
|
||||
extraStr = strings.TrimRight(extraStr, ", ")
|
||||
}
|
||||
}
|
||||
|
||||
r := Result{
|
||||
Found: found,
|
||||
BucketName: word,
|
||||
Status: extraStr,
|
||||
Status: extraStrBuilder.String(),
|
||||
}
|
||||
|
||||
return r, nil
|
||||
|
||||
Reference in New Issue
Block a user