summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNikos Mavrogiannopoulos <nmav@redhat.com>2017-01-04 09:10:54 +0100
committerNikos Mavrogiannopoulos <nmav@redhat.com>2017-01-05 09:02:12 +0100
commit701491cc84319a1042f3ecb9f0f7c6d079873c62 (patch)
tree7e95462f6736df40f424063d1978ff4ca491f93f
parent843b800044a3a0ce1c88557391e7db4ec14c6c12 (diff)
downloadgnutls-701491cc84319a1042f3ecb9f0f7c6d079873c62.tar.gz
_gnutls_pkcs12_string_to_key: avoid division by zero when salt_size = 0
Signed-off-by: Nikos Mavrogiannopoulos <nmav@redhat.com>
-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) {