diff --git a/src/api/encryption_keys_get.c b/src/api/encryption_keys_get.c
index ec13c32a95b9f21d89f3d71aed438847ec856f3a..6a2ce3539b58de87831fff7695ecfec2a10932ef 100644
--- a/src/api/encryption_keys_get.c
+++ b/src/api/encryption_keys_get.c
@@ -34,7 +34,14 @@ int callback_encryption_keys_get(const struct _u_request * request,
     bool in_use;
     bool last_used;
     int keyslot = 0;
-    for (keyslot = 0; keyslot <= crypt_keyslot_max(CRYPT_LUKS1); keyslot++)
+    int keyslot_max = crypt_keyslot_max(CRYPT_LUKS1);
+    if (keyslot_max < 0)
+    {
+        return send_simple_response(response, 500, "error",
+            "crypt_keyslot_max failed");
+    }
+
+    for (keyslot = 0; keyslot < keyslot_max; keyslot++)
     {
         // Create new json object containing info for this keyslot.
         key = json_object();