diff --git a/cmd/scan.go b/cmd/scan.go index 06d8c6c25..9c92de966 100644 --- a/cmd/scan.go +++ b/cmd/scan.go @@ -123,6 +123,9 @@ func parseTargets(targetsStr string) ([]scanner.ScanTarget, error) { if err != nil { return nil, fmt.Errorf("invalid library ID %q: %w", libIDStr, err) } + if libID <= 0 { + return nil, fmt.Errorf("invalid library ID %q", libIDStr) + } targets = append(targets, scanner.ScanTarget{ LibraryID: libID, diff --git a/cmd/scan_test.go b/cmd/scan_test.go index 2844d2ed8..c8dce51d6 100644 --- a/cmd/scan_test.go +++ b/cmd/scan_test.go @@ -68,10 +68,10 @@ var _ = Describe("parseTargets", func() { Expect(err.Error()).To(ContainSubstring("invalid library ID")) }) - It("handles negative library ID", func() { - targets, err := parseTargets("-1:Music") - Expect(err).ToNot(HaveOccurred()) // Actually valid - strconv.Atoi accepts negative numbers - Expect(targets[0].LibraryID).To(Equal(-1)) + It("return error on negative library ID", func() { + _, err := parseTargets("-1:Music") + Expect(err).To(HaveOccurred()) + Expect(err.Error()).To(ContainSubstring("invalid library ID")) }) It("handles only whitespace", func() {