diff --git a/internal/indexer/service.go b/internal/indexer/service.go index 1faa752..2c043f5 100644 --- a/internal/indexer/service.go +++ b/internal/indexer/service.go @@ -17,6 +17,7 @@ import ( "github.com/autobrr/autobrr/internal/logger" "github.com/autobrr/autobrr/internal/scheduler" "github.com/autobrr/autobrr/pkg/errors" + "github.com/autobrr/autobrr/pkg/sanitize" "github.com/gosimple/slug" "github.com/rs/zerolog" @@ -78,6 +79,13 @@ func NewService(log logger.Logger, config *domain.Config, repo domain.IndexerRep } func (s *service) Store(ctx context.Context, indexer domain.Indexer) (*domain.Indexer, error) { + // sanitize user input + indexer.Name = sanitize.String(indexer.Name) + + for key, val := range indexer.Settings { + indexer.Settings[key] = sanitize.String(val) + } + // if indexer is rss or torznab do additional cleanup for identifier if isImplFeed(indexer.Implementation) { // make lowercase @@ -103,6 +111,13 @@ func (s *service) Store(ctx context.Context, indexer domain.Indexer) (*domain.In } func (s *service) Update(ctx context.Context, indexer domain.Indexer) (*domain.Indexer, error) { + // sanitize user input + indexer.Name = sanitize.String(indexer.Name) + + for key, val := range indexer.Settings { + indexer.Settings[key] = sanitize.String(val) + } + i, err := s.repo.Update(ctx, indexer) if err != nil { s.log.Error().Err(err).Msgf("could not update indexer: %+v", indexer) diff --git a/pkg/sanitize/sanitize.go b/pkg/sanitize/sanitize.go new file mode 100644 index 0000000..bdf5556 --- /dev/null +++ b/pkg/sanitize/sanitize.go @@ -0,0 +1,8 @@ +package sanitize + +import "strings" + +func String(str string) string { + str = strings.TrimSpace(str) + return str +}