Skip to content

[Bug]: Crash when matching when author name ends in "???" #2265

@advplyr

Description

@advplyr

Describe the issue

Originally found by searching for the title "die drei ??? und der grune geist" and no author.

The fuzzy match candidates end up checking for an author "die drei ???". Using this in a JS RegExp causes the crash

[2023-10-30 16:31:32] DEBUG: Book Search: title: "die drei ??? und der grune geist", author: "n. n.", provider: itunes (BookFinder.js:406)
/server/finders/BookFinder.js:204
        const authorRe = new RegExp(`(^| | by |)${this.cleanAuthor}(?= |$)`, "g")
                         ^

SyntaxError: Invalid regular expression: /(^| | by |)die drei ???(?= |$)/: Nothing to repeat
    at new RegExp (<anonymous>)
    at TitleCandidates.add (/server/finders/BookFinder.js:204:26)
    at BookFinder.search (/server/finders/BookFinder.js:380:27)
    at processTicksAndRejections (node:internal/process/task_queues:96:5)
    at async ApiRouter.findBooks (/server/controllers/SearchController.js:14:21)

Steps to reproduce the issue

  1. Go to match tab
  2. Enter any title and the author "die drei ???"

Audiobookshelf version

v2.5.0

How are you running audiobookshelf?

Docker

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions