aboutsummaryrefslogtreecommitdiff
path: root/src/clients/kvno/kvno.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/clients/kvno/kvno.c')
-rw-r--r--src/clients/kvno/kvno.c9
1 files changed, 7 insertions, 2 deletions
diff --git a/src/clients/kvno/kvno.c b/src/clients/kvno/kvno.c
index 7f8667c..03f72f5 100644
--- a/src/clients/kvno/kvno.c
+++ b/src/clients/kvno/kvno.c
@@ -222,7 +222,7 @@ read_pem_file(char *file_name, krb5_data *der_out)
FILE *fp = NULL;
const char *begin_line = "-----BEGIN CERTIFICATE-----";
const char *end_line = "-----END ", *line;
- char linebuf[256];
+ char linebuf[256], *b64;
struct k5buf buf = EMPTY_K5BUF;
uint8_t *der_cert;
size_t dlen;
@@ -267,7 +267,12 @@ read_pem_file(char *file_name, krb5_data *der_out)
k5_buf_add(&buf, line);
}
- der_cert = k5_base64_decode(buf.data, &dlen);
+ b64 = k5_buf_cstring(&buf);
+ if (b64 == NULL) {
+ ret = ENOMEM;
+ goto cleanup;
+ }
+ der_cert = k5_base64_decode(b64, &dlen);
if (der_cert == NULL) {
ret = EINVAL;
k5_setmsg(context, ret, _("Invalid base64"));