ignore DNS error when doing migration allow/block check (#19566)

Co-authored-by: 6543 <6543@obermui.de>
tokarchuk/v1.17
wxiaoguang 3 years ago committed by GitHub
parent 05234adfa8
commit 71bafa0263
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 4
      models/error.go
  2. 7
      services/migrations/migrate.go

@ -296,7 +296,6 @@ type ErrInvalidCloneAddr struct {
IsProtocolInvalid bool IsProtocolInvalid bool
IsPermissionDenied bool IsPermissionDenied bool
LocalPath bool LocalPath bool
NotResolvedIP bool
} }
// IsErrInvalidCloneAddr checks if an error is a ErrInvalidCloneAddr. // IsErrInvalidCloneAddr checks if an error is a ErrInvalidCloneAddr.
@ -306,9 +305,6 @@ func IsErrInvalidCloneAddr(err error) bool {
} }
func (err *ErrInvalidCloneAddr) Error() string { func (err *ErrInvalidCloneAddr) Error() string {
if err.NotResolvedIP {
return fmt.Sprintf("migration/cloning from '%s' is not allowed: unknown hostname", err.Host)
}
if err.IsInvalidPath { if err.IsInvalidPath {
return fmt.Sprintf("migration/cloning from '%s' is not allowed: the provided path is invalid", err.Host) return fmt.Sprintf("migration/cloning from '%s' is not allowed: the provided path is invalid", err.Host)
} }

@ -81,10 +81,9 @@ func IsMigrateURLAllowed(remoteURL string, doer *user_model.User) error {
err = nil //nolint err = nil //nolint
hostName = u.Host hostName = u.Host
} }
addrList, err := net.LookupIP(hostName)
if err != nil { // some users only use proxy, there is no DNS resolver. it's safe to ignore the LookupIP error
return &models.ErrInvalidCloneAddr{Host: u.Host, NotResolvedIP: true} addrList, _ := net.LookupIP(hostName)
}
var ipAllowed bool var ipAllowed bool
var ipBlocked bool var ipBlocked bool

Loading…
Cancel
Save