From a6bb6e11de058da38136dc2b5ba29a29d74a7985 Mon Sep 17 00:00:00 2001
From: David Phillips <david@sighup.nz>
Date: Sun, 30 Apr 2017 20:21:53 +1200
Subject: Add sanity check to search string

---
 sand-leek.c | 10 ++++++++++
 1 file changed, 10 insertions(+)

diff --git a/sand-leek.c b/sand-leek.c
index df34574..130d322 100644
--- a/sand-leek.c
+++ b/sand-leek.c
@@ -229,6 +229,7 @@ main(int argc, char **argv) {
 	int opt = '\0';
 	int thread_count = 1;
 	int i = 0;
+	size_t offset = 0;
 	pthread_t *workers = NULL;
 	unsigned long volatile *khash_count = NULL;
 	unsigned long khashes = 0;
@@ -254,6 +255,15 @@ main(int argc, char **argv) {
 
 	search_len = strlen(search);
 
+	if ((offset = strspn(search, base32_lookup)) != search_len) {
+		fprintf(stderr,
+			"Error: search contains non-base-32 character(s): %c\n"
+			"I cannot search for something that will never occur\n",
+			search[offset]
+		);
+		return 1;
+	}
+
 	workers = calloc(thread_count, sizeof(pthread_t));
 	if (!workers) {
 		perror("worker thread calloc");
-- 
cgit v1.1