-
Notifications
You must be signed in to change notification settings - Fork 1.8k
[dockers]: Upgrade SNMP docker to stretch build #2620
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Merged
Changes from all commits
Commits
Show all changes
14 commits
Select commit
Hold shift + click to select a range
a97e44b
[dockers]: Upgrade SNMP docker to stretch build
samaity f688dcf
Removed patch-> 0003-CHANGES-BUG-2743-snmpd-crashes-when-receiving-a-…
samaity 9d3914f
update platform-common submodule
samaity d5f15af
adding PyYAML package to stretch dockerfile
samaity 9b47ae0
Installing redis package via pip in stretch dockerfile
samaity a22667d
again updating platform-common submodule
samaity cf7d1bd
revert back the snmpd version to 5.7.3+dfsg-1.5
samaity d221d5a
Merge branch 'master' into snmp_stretch
samaity 66a543f
upgrading the snmpd version to 5.7.3+dfsg-1.7+deb9u1 with openssl bac…
samaity e032208
update sonic-snmpagent submodule
samaity 65fda48
purge libdpkg-perl package in Dockerfile
samaity 9b6070c
Merge branch 'master' into snmpstretch
lguohan da9733d
revert back the snmpd version to 5.7.3+dfsg-1.5
samaity b1ba67e
minor change in series file
samaity File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
184 changes: 184 additions & 0 deletions
184
src/snmpd/patch-5.7.3+dfsg/0005-Port-OpenSSL-1.1.0-with-support-for-1.0.2.patch
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,184 @@ | ||
| From: Andreas Henriksson <andreas@fatal.se> | ||
| Date: Sat, 23 Dec 2017 22:25:41 +0000 | ||
| Subject: [PATCH] Port OpenSSL 1.1.0 with support for 1.0.2 | ||
|
|
||
| Initial support for OpenSSL 1.1.0 | ||
|
|
||
| Changes by sebastian@breakpoint.cc: | ||
| - added OpenSSL 1.0.2 glue layer for backwarts compatibility | ||
| - dropped HAVE_EVP_MD_CTX_CREATE + DESTROY and added a check for OpenSSL | ||
| version instead (and currently 1.0.2 is the only one supported). | ||
|
|
||
| BTS: https://bugs.debian.org/828449 | ||
| Signed-off-by: Sebastian Andrzej Siewior <sebastian@breakpoint.cc> | ||
| --- | ||
| apps/snmpusm.c | 43 ++++++++++++++++++++++++++++++++++++------- | ||
| configure.d/config_os_libs2 | 6 ------ | ||
| snmplib/keytools.c | 13 ++++++------- | ||
| snmplib/scapi.c | 17 +++++------------ | ||
| 4 files changed, 47 insertions(+), 32 deletions(-) | ||
|
|
||
| --- a/apps/snmpusm.c | ||
| +++ b/apps/snmpusm.c | ||
| @@ -183,6 +183,31 @@ setup_oid(oid * it, size_t * len, u_char | ||
| } | ||
|
|
||
| #if defined(HAVE_OPENSSL_DH_H) && defined(HAVE_LIBCRYPTO) | ||
| + | ||
| +#if (OPENSSL_VERSION_NUMBER < 0x10100000L) || defined(LIBRESSL_VERSION_NUMBER) | ||
| + | ||
| +static void DH_get0_pqg(const DH *dh, | ||
| + const BIGNUM **p, const BIGNUM **q, const BIGNUM **g) | ||
| +{ | ||
| + if (p != NULL) | ||
| + *p = dh->p; | ||
| + if (q != NULL) | ||
| + *q = dh->q; | ||
| + if (g != NULL) | ||
| + *g = dh->g; | ||
| +} | ||
| + | ||
| +static void DH_get0_key(const DH *dh, const BIGNUM **pub_key, | ||
| + const BIGNUM **priv_key) | ||
| +{ | ||
| + if (pub_key != NULL) | ||
| + *pub_key = dh->pub_key; | ||
| + if (priv_key != NULL) | ||
| + *priv_key = dh->priv_key; | ||
| +} | ||
| + | ||
| +#endif | ||
| + | ||
| int | ||
| get_USM_DH_key(netsnmp_variable_list *vars, netsnmp_variable_list *dhvar, | ||
| size_t outkey_len, | ||
| @@ -190,7 +215,7 @@ get_USM_DH_key(netsnmp_variable_list *va | ||
| oid *keyoid, size_t keyoid_len) { | ||
| u_char *dhkeychange; | ||
| DH *dh; | ||
| - BIGNUM *other_pub; | ||
| + const BIGNUM *p, *g, *pub_key, *other_pub; | ||
| u_char *key; | ||
| size_t key_len; | ||
|
|
||
| @@ -205,25 +230,29 @@ get_USM_DH_key(netsnmp_variable_list *va | ||
| dh = d2i_DHparams(NULL, &cp, dhvar->val_len); | ||
| } | ||
|
|
||
| - if (!dh || !dh->g || !dh->p) { | ||
| + if (dh) | ||
| + DH_get0_pqg(dh, &p, NULL, &g); | ||
| + | ||
| + if (!dh || !g || !p) { | ||
| SNMP_FREE(dhkeychange); | ||
| return SNMPERR_GENERR; | ||
| } | ||
|
|
||
| - DH_generate_key(dh); | ||
| - if (!dh->pub_key) { | ||
| + if (!DH_generate_key(dh)) { | ||
| SNMP_FREE(dhkeychange); | ||
| return SNMPERR_GENERR; | ||
| } | ||
|
|
||
| - if (vars->val_len != (unsigned int)BN_num_bytes(dh->pub_key)) { | ||
| + DH_get0_key(dh, &pub_key, NULL); | ||
| + | ||
| + if (vars->val_len != (unsigned int)BN_num_bytes(pub_key)) { | ||
| SNMP_FREE(dhkeychange); | ||
| fprintf(stderr,"incorrect diffie-helman lengths (%lu != %d)\n", | ||
| - (unsigned long)vars->val_len, BN_num_bytes(dh->pub_key)); | ||
| + (unsigned long)vars->val_len, BN_num_bytes(pub_key)); | ||
| return SNMPERR_GENERR; | ||
| } | ||
|
|
||
| - BN_bn2bin(dh->pub_key, dhkeychange + vars->val_len); | ||
| + BN_bn2bin(pub_key, dhkeychange + vars->val_len); | ||
|
|
||
| key_len = DH_size(dh); | ||
| if (!key_len) { | ||
| --- a/configure.d/config_os_libs2 | ||
| +++ b/configure.d/config_os_libs2 | ||
| @@ -291,12 +291,6 @@ if test "x$tryopenssl" != "xno" -a "x$tr | ||
| AC_CHECK_LIB(${CRYPTO}, AES_cfb128_encrypt, | ||
| AC_DEFINE(HAVE_AES_CFB128_ENCRYPT, 1, | ||
| [Define to 1 if you have the `AES_cfb128_encrypt' function.])) | ||
| - | ||
| - AC_CHECK_LIB(${CRYPTO}, EVP_MD_CTX_create, | ||
| - AC_DEFINE([HAVE_EVP_MD_CTX_CREATE], [], | ||
| - [Define to 1 if you have the `EVP_MD_CTX_create' function.]) | ||
| - AC_DEFINE([HAVE_EVP_MD_CTX_DESTROY], [], | ||
| - [Define to 1 if you have the `EVP_MD_CTX_destroy' function.])) | ||
| fi | ||
| if echo " $transport_result_list " | $GREP "DTLS" > /dev/null; then | ||
| AC_CHECK_LIB(ssl, DTLSv1_method, | ||
| --- a/snmplib/keytools.c | ||
| +++ b/snmplib/keytools.c | ||
| @@ -149,13 +149,13 @@ generate_Ku(const oid * hashtype, u_int | ||
| */ | ||
| #ifdef NETSNMP_USE_OPENSSL | ||
|
|
||
| -#ifdef HAVE_EVP_MD_CTX_CREATE | ||
| +#if (OPENSSL_VERSION_NUMBER < 0x10100000L) || defined(LIBRESSL_VERSION_NUMBER) | ||
| ctx = EVP_MD_CTX_create(); | ||
| #else | ||
| - ctx = malloc(sizeof(*ctx)); | ||
| - if (!EVP_MD_CTX_init(ctx)) | ||
| - return SNMPERR_GENERR; | ||
| + ctx = EVP_MD_CTX_new(); | ||
| #endif | ||
| + if (!ctx) | ||
| + return SNMPERR_GENERR; | ||
| #ifndef NETSNMP_DISABLE_MD5 | ||
| if (ISTRANSFORM(hashtype, HMACMD5Auth)) { | ||
| if (!EVP_DigestInit(ctx, EVP_md5())) | ||
| @@ -259,11 +259,10 @@ generate_Ku(const oid * hashtype, u_int | ||
| memset(buf, 0, sizeof(buf)); | ||
| #ifdef NETSNMP_USE_OPENSSL | ||
| if (ctx) { | ||
| -#ifdef HAVE_EVP_MD_CTX_DESTROY | ||
| +#if (OPENSSL_VERSION_NUMBER < 0x10100000L) || defined(LIBRESSL_VERSION_NUMBER) | ||
| EVP_MD_CTX_destroy(ctx); | ||
| #else | ||
| - EVP_MD_CTX_cleanup(ctx); | ||
| - free(ctx); | ||
| + EVP_MD_CTX_free(ctx); | ||
| #endif | ||
| } | ||
| #endif | ||
| --- a/snmplib/scapi.c | ||
| +++ b/snmplib/scapi.c | ||
| @@ -486,15 +486,10 @@ sc_hash(const oid * hashtype, size_t has | ||
| } | ||
|
|
||
| /** initialize the pointer */ | ||
| -#ifdef HAVE_EVP_MD_CTX_CREATE | ||
| +#if (OPENSSL_VERSION_NUMBER < 0x10100000L) || defined(LIBRESSL_VERSION_NUMBER) | ||
| cptr = EVP_MD_CTX_create(); | ||
| #else | ||
| - cptr = malloc(sizeof(*cptr)); | ||
| -#if defined(OLD_DES) | ||
| - memset(cptr, 0, sizeof(*cptr)); | ||
| -#else | ||
| - EVP_MD_CTX_init(cptr); | ||
| -#endif | ||
| + cptr = EVP_MD_CTX_new(); | ||
| #endif | ||
| if (!EVP_DigestInit(cptr, hashfn)) { | ||
| /* requested hash function is not available */ | ||
| @@ -507,13 +502,11 @@ sc_hash(const oid * hashtype, size_t has | ||
| /** do the final pass */ | ||
| EVP_DigestFinal(cptr, MAC, &tmp_len); | ||
| *MAC_len = tmp_len; | ||
| -#ifdef HAVE_EVP_MD_CTX_DESTROY | ||
| + | ||
| +#if (OPENSSL_VERSION_NUMBER < 0x10100000L) || defined(LIBRESSL_VERSION_NUMBER) | ||
| EVP_MD_CTX_destroy(cptr); | ||
| #else | ||
| -#if !defined(OLD_DES) | ||
| - EVP_MD_CTX_cleanup(cptr); | ||
| -#endif | ||
| - free(cptr); | ||
| + EVP_MD_CTX_free(cptr); | ||
| #endif | ||
| return (rval); |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Submodule sonic-platform-common
updated
from 4944a6 to 92b54b
Submodule sonic-snmpagent
updated
from bd4174 to 70a6c7
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.