libaacs | branch: master | npzacs <[email protected]> | Wed Apr 25 14:25:35 2012 
+0300| [4e9d74708c0b90d922e127084ca0609c86e71bef] | committer: npzacs

Failing title hash calculation is fatal. We need either the keys from that file 
or hash for config file.

> http://git.videolan.org/gitweb.cgi/libaacs.git/?a=commit;h=4e9d74708c0b90d922e127084ca0609c86e71bef
---

 src/libaacs/aacs.c |   13 +++++++------
 1 files changed, 7 insertions(+), 6 deletions(-)

diff --git a/src/libaacs/aacs.c b/src/libaacs/aacs.c
index fbefc8b..279aa9d 100644
--- a/src/libaacs/aacs.c
+++ b/src/libaacs/aacs.c
@@ -450,7 +450,7 @@ static int _verify_ts(uint8_t *buf, size_t size)
 }
 
 /* Function that collects keys from keydb config entry */
-static void _find_config_entry(AACS *aacs, const char *path)
+static void _find_config_entry(AACS *aacs)
 {
     uint8_t discid[20];
     char str[48];
@@ -458,10 +458,6 @@ static void _find_config_entry(AACS *aacs, const char 
*path)
     aacs->uks = NULL;
     aacs->num_uks = 0;
 
-    if (!_calc_title_hash(path, aacs->disc_id)) {
-        return;
-    }
-
     if (aacs->cf && aacs->cf->list) {
         aacs->ce = aacs->cf->list;
         while (aacs->ce && aacs->ce->entry.discid) {
@@ -611,9 +607,14 @@ AACS *aacs_open(const char *path, const char 
*configfile_path)
 
     AACS *aacs = calloc(1, sizeof(AACS));
 
+    if (!_calc_title_hash(path, aacs->disc_id)) {
+        aacs_close(aacs);
+        return NULL;
+    }
+
     if (_load_config(aacs, configfile_path)) {
         DEBUG(DBG_AACS, "Searching for keydb config entry...\n");
-        _find_config_entry(aacs, path);
+        _find_config_entry(aacs);
 
         DEBUG(DBG_AACS, "Starting AACS waterfall...\n");
         if (_calc_uks(aacs, path)) {

_______________________________________________
libaacs-devel mailing list
[email protected]
http://mailman.videolan.org/listinfo/libaacs-devel

Reply via email to