diff options
author | Nick White <git@njw.name> | 2022-11-22 16:14:25 +0000 |
---|---|---|
committer | Nick White <git@njw.name> | 2022-11-22 16:14:25 +0000 |
commit | 59f87fbcbcc4d6c5ac165d6053c1a3734f48e810 (patch) | |
tree | 91ece3b4799d6c3a0f6ee36a7f55644ce7888b8c /cmd/rescribe/gbook.go | |
parent | fa1e5fa6d5468a25195463426921607bcc7768bc (diff) |
rescribe: add gbook fuzzer test and fix some bugs it found!
Diffstat (limited to 'cmd/rescribe/gbook.go')
-rw-r--r-- | cmd/rescribe/gbook.go | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/cmd/rescribe/gbook.go b/cmd/rescribe/gbook.go index 320f574..a011181 100644 --- a/cmd/rescribe/gbook.go +++ b/cmd/rescribe/gbook.go @@ -41,7 +41,9 @@ func formatAuthors(authors []string) string { s = strings.ToUpper(s) if len(s) > maxPartLength { - s = s[:maxPartLength] + // truncate to maxPartLength + m := fmt.Sprintf("%%.%ds", maxPartLength) + s = fmt.Sprintf(m, s) } s = strings.Map(stripNonLetters, s) @@ -63,7 +65,9 @@ func stripNonLetters(r rune) rune { func formatTitle(title string) string { s := strings.Map(stripNonLetters, title) if len(s) > maxPartLength { - s = s[:maxPartLength] + // truncate to maxPartLength + m := fmt.Sprintf("%%.%ds", maxPartLength) + s = fmt.Sprintf(m, s) } return s } @@ -232,7 +236,7 @@ func getBookIdFromUrl(url string) (string, error) { if start >= 0 { start += 4 - if len(url[start:]) < 12 { + if len(url) - start < 12 { return "", fmt.Errorf("Could not find book ID in URL") } return url[start : start+12], nil @@ -245,7 +249,7 @@ func getBookIdFromUrl(url string) (string, error) { if start >= 0 { start += 10 - if len(url[start:]) < 12 { + if len(url) - start < 12 { return "", fmt.Errorf("Could not find book ID in URL") } return url[start : start+12], nil |