Date: Thu, 28 Mar 2019 14:37:34 +0000 (UTC) From: Alexey Dokuchaev <danfe@FreeBSD.org> To: ports-committers@freebsd.org, svn-ports-all@freebsd.org, svn-ports-head@freebsd.org Subject: svn commit: r497025 - head/net/ss5/files Message-ID: <201903281437.x2SEbYoW087968@repo.freebsd.org>
next in thread | raw e-mail | index | archive | help
Author: danfe Date: Thu Mar 28 14:37:33 2019 New Revision: 497025 URL: https://svnweb.freebsd.org/changeset/ports/497025 Log: Simplify error handling logic a bit: there is no immediate need to free resources after initial BN_bin2bn() calls for `p' and `g'; just utilize the original code and call BN_free() after initializing `a' if anything had failed. Modified: head/net/ss5/files/patch-modules_mod__authen_SS5Supa.c Modified: head/net/ss5/files/patch-modules_mod__authen_SS5Supa.c ============================================================================== --- head/net/ss5/files/patch-modules_mod__authen_SS5Supa.c Thu Mar 28 14:22:51 2019 (r497024) +++ head/net/ss5/files/patch-modules_mod__authen_SS5Supa.c Thu Mar 28 14:37:33 2019 (r497025) @@ -8,7 +8,7 @@ int len = 1; unsigned char * public_key = NULL; uint32_t len_key = 0; -@@ -205,41 +206,85 @@ static unsigned char * ss5_secure_dh_compute_key (int +@@ -205,41 +206,75 @@ static unsigned char * ss5_secure_dh_compute_key (int else pid=(UINT)pthread_self(); @@ -16,12 +16,6 @@ - ss->g = BN_bin2bn ((pippo->g), pippo->leng, NULL); + p = BN_bin2bn ((pippo->p), pippo->lenp, NULL); + g = BN_bin2bn ((pippo->g), pippo->leng, NULL); -+ if (p == NULL || g == NULL) { -+ BN_free(g); -+ BN_free(p); -+ DH_free(ss); -+ return NULL; -+ } +#if OPENSSL_VERSION_NUMBER >= 0x10100005L + DH_set0_pqg(ss, p, NULL, g); +#else @@ -29,11 +23,8 @@ + ss->g = g; +#endif a = BN_bin2bn ((pippo->a), pippo->lena, NULL); -+#if OPENSSL_VERSION_NUMBER >= 0x10100005L +- if (!a || !ss->p || !ss->g){ + if (!a || !p || !g) { -+#else - if (!a || !ss->p || !ss->g){ -+#endif if( VERBOSE() ) { snprintf(logString,256 - 1,"[%u] [VERB] ss5_secure_dh_compute_key - Error when compute a, p, g",pid); LOGUPDATE() @@ -96,7 +87,7 @@ ss5_create_dh_response(s, public_key, len_key); #if 0 printf("B computed: len is %d\n",len_key); -@@ -256,6 +301,10 @@ static unsigned char * ss5_secure_dh_compute_key (int +@@ -256,6 +291,10 @@ static unsigned char * ss5_secure_dh_compute_key (int snprintf(logString,256 - 1,"[%u] [VERB] ss5_secure_dh_compute_key - malloc error",pid); LOGUPDATE() } @@ -107,7 +98,7 @@ return NULL; } bzero(session_key, DH_size (ss)); -@@ -266,6 +315,10 @@ static unsigned char * ss5_secure_dh_compute_key (int +@@ -266,6 +305,10 @@ static unsigned char * ss5_secure_dh_compute_key (int printf("%02x ", session_key[len]); printf("\n"); #endif
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201903281437.x2SEbYoW087968>