diff options
author | Nikos Mavrogiannopoulos <nmav@redhat.com> | 2017-01-04 09:10:54 +0100 |
---|---|---|
committer | Nikos Mavrogiannopoulos <nmav@redhat.com> | 2017-01-05 09:02:12 +0100 |
commit | 701491cc84319a1042f3ecb9f0f7c6d079873c62 (patch) | |
tree | 7e95462f6736df40f424063d1978ff4ca491f93f | |
parent | 843b800044a3a0ce1c88557391e7db4ec14c6c12 (diff) | |
download | gnutls-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.c | 12 |
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) { |