{"schema":"libjg2-1",
"vpath":"/git/",
"avatar":"/git/avatar/",
"alang":"",
"gen_ut":1755716605,
"reponame":"openssl",
"desc":"OpenSSL",
"owner": { "name": "Andy Green", "email": "andy@warmcat.com", "md5": "c50933ca2aa61e0fe2c43d46bb6b59cb" },"url":"https://warmcat.com/repo/openssl",
"f":3,
"items": [
{"schema":"libjg2-1",
"cid":"3eac2ef64646b488fdd88b3119ce5631",
"commit": {"type":"commit",
"time": 1441202009,
"time_ofs": 18446744073709551376,
"oid_tree": { "oid": "47a6257b8bef700faaabd56c3ee828452bd041df", "alias": []},
"oid":{ "oid": "a0724ef1c9b9e2090bdd96b784f492b6a3952957", "alias": []},
"msg": "Better handling of verify param id peername field",
"sig_commit": { "git_time": { "time": 1441202009, "offset": -240 }, "name": "Viktor Dukhovni", "email": "openssl-users@dukhovni.org", "md5": "2c3e16c80b811b59e707226a9aeb9d84" },
"sig_author": { "git_time": { "time": 1441158432, "offset": -240 }, "name": "Viktor Dukhovni", "email": "openssl-users@dukhovni.org", "md5": "2c3e16c80b811b59e707226a9aeb9d84" }},
"body": "Better handling of verify param id peername field\n\nInitialize pointers in param id by the book (explicit NULL assignment,\nrather than just memset 0).\n\nIn x509_verify_param_zero() set peername to NULL after freeing it.\n\nIn x509_vfy.c's internal check_hosts(), avoid potential leak of\npossibly already non-NULL peername. This is only set when a check\nsucceeds, so don't need to do this repeatedly in the loop.\n\nReviewed-by: Richard Levitte \u003clevitte@openssl.org\u003e\n"
,
"diff": "diff --git a/crypto/x509/x509_vfy.c b/crypto/x509/x509_vfy.c\nindex 7d770c5..45d53a0 100644\n--- a/crypto/x509/x509_vfy.c\n+++ b/crypto/x509/x509_vfy.c\n@@ -767,6 +767,10 @@ static int check_hosts(X509 *x, X509_VERIFY_PARAM_ID *id)\n int n \u003d sk_OPENSSL_STRING_num(id-\u003ehosts);\n char *name;\n \n+ if (id-\u003epeername !\u003d NULL) {\n+ OPENSSL_free(id-\u003epeername);\n+ id-\u003epeername \u003d NULL;\n+ }\n for (i \u003d 0; i \u003c n; ++i) {\n name \u003d sk_OPENSSL_STRING_value(id-\u003ehosts, i);\n if (X509_check_host(x, name, 0, id-\u003ehostflags, \u0026id-\u003epeername) \u003e 0)\ndiff --git a/crypto/x509/x509_vpm.c b/crypto/x509/x509_vpm.c\nindex 5d8c5f8..eedc217 100644\n--- a/crypto/x509/x509_vpm.c\n+++ b/crypto/x509/x509_vpm.c\n@@ -148,6 +148,7 @@ static void x509_verify_param_zero(X509_VERIFY_PARAM *param)\n sk_OPENSSL_STRING_pop_free(paramid-\u003ehosts, str_free);\n paramid-\u003ehosts \u003d NULL;\n OPENSSL_free(paramid-\u003epeername);\n+ paramid-\u003epeername \u003d NULL;\n OPENSSL_free(paramid-\u003eemail);\n paramid-\u003eemail \u003d NULL;\n paramid-\u003eemaillen \u003d 0;\n@@ -164,13 +165,20 @@ X509_VERIFY_PARAM *X509_VERIFY_PARAM_new(void)\n param \u003d OPENSSL_malloc(sizeof(*param));\n if (!param)\n return NULL;\n+ memset(param, 0, sizeof(*param));\n+\n paramid \u003d OPENSSL_malloc(sizeof(*paramid));\n if (!paramid) {\n OPENSSL_free(param);\n return NULL;\n }\n- memset(param, 0, sizeof(*param));\n memset(paramid, 0, sizeof(*paramid));\n+ /* Exotic platforms may have non-zero bit representation of NULL */\n+ paramid-\u003ehosts \u003d NULL;\n+ paramid-\u003epeername \u003d NULL;\n+ paramid-\u003eemail \u003d NULL;\n+ paramid-\u003eip \u003d NULL;\n+\n param-\u003eid \u003d paramid;\n x509_verify_param_zero(param);\n return param;\n","s":{"c":1755716605,"u": 4099}}
],"g": 5497,"chitpc": 0,"ehitpc": 0,"indexed":0
,
"ab": 0, "si": 0, "db":0, "di":0, "sat":0, "lfc": "0000"}