summaryrefslogtreecommitdiff
path: root/cmd/rescribe/gbook.go
diff options
context:
space:
mode:
authorNick White <git@njw.name>2022-11-22 16:14:25 +0000
committerNick White <git@njw.name>2022-11-22 16:14:25 +0000
commit59f87fbcbcc4d6c5ac165d6053c1a3734f48e810 (patch)
tree91ece3b4799d6c3a0f6ee36a7f55644ce7888b8c /cmd/rescribe/gbook.go
parentfa1e5fa6d5468a25195463426921607bcc7768bc (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.go12
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