summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lib/x509/pkcs12_encr.c12
1 files changed, 9 insertions, 3 deletions
diff --git a/lib/x509/pkcs12_encr.c b/lib/x509/pkcs12_encr.c
index 1114d7300a..557301a197 100644
--- a/lib/x509/pkcs12_encr.c
+++ b/lib/x509/pkcs12_encr.c
@@ -111,9 +111,15 @@ _gnutls_pkcs12_string_to_key(const mac_entry_st * me,
goto cleanup;
}
- p = buf_i;
- for (i = 0; i < 64; i++)
- *p++ = salt[i % salt_size];
+
+ if (salt_size > 0) {
+ p = buf_i;
+ for (i = 0; i < 64; i++)
+ *p++ = salt[i % salt_size];
+ } else {
+ memset(buf_i, 0, 64);
+ p = buf_i + 64;
+ }
if (pw) {
for (i = j = 0; i < p_size; i += 2) {