Commit 678d2681 authored by Pauli's avatar Pauli
Browse files

Clear seed source structures.



If the structures have empty padding bytes, ensure they are zeroed.
These structures are added to seed pools as complete blocks including
any padding and alignment bytes.

Reviewed-by: default avatarRichard Levitte <levitte@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/8610)
parent 9c98aa35
Loading
Loading
Loading
Loading
+8 −2
Original line number Diff line number Diff line
@@ -615,7 +615,10 @@ int rand_pool_add_nonce_data(RAND_POOL *pool)
        pid_t pid;
        CRYPTO_THREAD_ID tid;
        uint64_t time;
    } data = { 0 };
    } data;

    /* Erase the entire structure including any padding */
    memset(&data, 0, sizeof(data));

    /*
     * Add process id, thread id, and a high resolution timestamp to
@@ -634,7 +637,10 @@ int rand_pool_add_additional_data(RAND_POOL *pool)
    struct {
        CRYPTO_THREAD_ID tid;
        uint64_t time;
    } data = { 0 };
    } data;

    /* Erase the entire structure including any padding */
    memset(&data, 0, sizeof(data));

    /*
     * Add some noise from the thread id and a high resolution timer.
+8 −2
Original line number Diff line number Diff line
@@ -475,7 +475,10 @@ int rand_pool_add_nonce_data(RAND_POOL *pool)
        pid_t pid;
        CRYPTO_THREAD_ID tid;
        uint64_t time;
    } data = { 0 };
    } data;

    /* Erase the entire structure including any padding */
    memset(&data, 0, sizeof(data));

    /*
     * Add process id, thread id, and a high resolution timestamp
@@ -499,7 +502,10 @@ int rand_pool_add_additional_data(RAND_POOL *pool)
    struct {
        CRYPTO_THREAD_ID tid;
        uint64_t time;
    } data = { 0 };
    } data;

    /* Erase the entire structure including any padding */
    memset(&data, 0, sizeof(data));

    /*
     * Add some noise from the thread id and a high resolution timer.
+8 −2
Original line number Diff line number Diff line
@@ -125,7 +125,10 @@ int rand_pool_add_nonce_data(RAND_POOL *pool)
        DWORD pid;
        DWORD tid;
        FILETIME time;
    } data = { 0 };
    } data;

    /* Erase the entire structure including any padding */
    memset(&data, 0, sizeof(data));

    /*
     * Add process id, thread id, and a high resolution timestamp to
@@ -144,7 +147,10 @@ int rand_pool_add_additional_data(RAND_POOL *pool)
    struct {
        DWORD tid;
        LARGE_INTEGER time;
    } data = { 0 };
    } data;

    /* Erase the entire structure including any padding */
    memset(&data, 0, sizeof(data));

    /*
     * Add some noise from the thread id and a high resolution timer.