diff --git a/signkey.c b/signkey.c
index 3d78e350bca1722b5c9184f9366d026f74350d12..19a2c08205ef3ce2788404cf4839eccbc3c0adc3 100644
--- a/signkey.c
+++ b/signkey.c
@@ -577,6 +577,10 @@ int cmp_base64_key(const unsigned char* keyblob, unsigned int keybloblen,
 
 	/* now we have the actual data */
 	len = line->len - line->pos;
+	if (len == 0) {
+		/* base64_decode doesn't like NULL argument */
+		return DROPBEAR_FAILURE;
+	}
 	decodekeylen = len * 2; /* big to be safe */
 	decodekey = buf_new(decodekeylen);