libaacs | branch: master | npzacs <[email protected]> | Fri Mar 11 13:37:10 2016 +0200| [7f2a5ff3d304c42bc624f8d8ae30b21f2b4b68cf] | committer: npzacs
Reject empty keys > http://git.videolan.org/gitweb.cgi/libaacs.git/?a=commit;h=7f2a5ff3d304c42bc624f8d8ae30b21f2b4b68cf --- src/file/keydbcfg.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/src/file/keydbcfg.c b/src/file/keydbcfg.c index 318e6fd..1e12972 100644 --- a/src/file/keydbcfg.c +++ b/src/file/keydbcfg.c @@ -570,6 +570,7 @@ static int _parse_embedded(config_file *cf) { int result = 0, jj; unsigned ii; + static const uint8_t empty_key[20] = {0}; /* reverse order to maintain key positions (items are added to list head) */ for (jj = sizeof(internal_dk_list) / sizeof(internal_dk_list[0]) - 1; jj >= 0; --jj) { @@ -601,7 +602,9 @@ static int _parse_embedded(config_file *cf) decrypt_key(e->key, internal_pk_list[ii], 16); - if (_is_duplicate_pk(cf->pkl, e->key)) { + if (!memcmp(e->key, empty_key, 16) || + _is_duplicate_pk(cf->pkl, e->key)) { + X_FREE(e); } else { @@ -620,7 +623,9 @@ static int _parse_embedded(config_file *cf) decrypt_key(e->host_priv_key, internal_hc_list[ii], 20); decrypt_key(e->host_cert, internal_hc_list[ii] + 20, 92); - if (_is_duplicate_cert(cf->host_cert_list, e)) { + if (!memcmp(e->host_priv_key, empty_key, 20) || + _is_duplicate_cert(cf->host_cert_list, e)) { + X_FREE(e); } else { _______________________________________________ libaacs-devel mailing list [email protected] https://mailman.videolan.org/listinfo/libaacs-devel
