mirror of
https://github.com/LibreELEC/LibreELEC.tv.git
synced 2025-07-28 13:16:41 +00:00
commit
b4a60dc4f5
@ -17,7 +17,7 @@
|
|||||||
################################################################################
|
################################################################################
|
||||||
|
|
||||||
PKG_NAME="OpenELEC-settings"
|
PKG_NAME="OpenELEC-settings"
|
||||||
PKG_VERSION="0.6.9"
|
PKG_VERSION="0.6.10"
|
||||||
PKG_REV="1"
|
PKG_REV="1"
|
||||||
PKG_ARCH="any"
|
PKG_ARCH="any"
|
||||||
PKG_LICENSE="prop."
|
PKG_LICENSE="prop."
|
||||||
|
@ -17,12 +17,13 @@
|
|||||||
################################################################################
|
################################################################################
|
||||||
|
|
||||||
PKG_NAME="libaacs"
|
PKG_NAME="libaacs"
|
||||||
PKG_VERSION="0.8.1"
|
PKG_VERSION="9da2b68"
|
||||||
PKG_REV="1"
|
PKG_REV="1"
|
||||||
PKG_ARCH="any"
|
PKG_ARCH="any"
|
||||||
PKG_LICENSE="GPL"
|
PKG_LICENSE="GPL"
|
||||||
PKG_SITE="http://www.videolan.org/developers/libaacs.html"
|
PKG_SITE="http://www.videolan.org/developers/libaacs.html"
|
||||||
PKG_URL="ftp://ftp.videolan.org/pub/videolan/libaacs/$PKG_VERSION/$PKG_NAME-$PKG_VERSION.tar.bz2"
|
PKG_URL="ftp://ftp.videolan.org/pub/videolan/libaacs/$PKG_VERSION/$PKG_NAME-$PKG_VERSION.tar.bz2"
|
||||||
|
PKG_URL="$DISTRO_SRC/$PKG_NAME-$PKG_VERSION.tar.gz"
|
||||||
PKG_DEPENDS_TARGET="toolchain libgcrypt"
|
PKG_DEPENDS_TARGET="toolchain libgcrypt"
|
||||||
PKG_PRIORITY="optional"
|
PKG_PRIORITY="optional"
|
||||||
PKG_SECTION="multimedia"
|
PKG_SECTION="multimedia"
|
||||||
|
@ -1,52 +0,0 @@
|
|||||||
From 1c0ba6b53759ea57a6146b4ce4d902cfe5c44d3c Mon Sep 17 00:00:00 2001
|
|
||||||
From: Roland Fischer <nalor@gmx.net>
|
|
||||||
Date: Wed, 9 Dec 2015 21:50:43 +0100
|
|
||||||
Subject: [PATCH] Correct debug-log in _find_config_entry
|
|
||||||
|
|
||||||
'discid' sent to BD_DEBUG has not been converted to string before
|
|
||||||
and resulted in a broken output - corrected.
|
|
||||||
---
|
|
||||||
src/libaacs/aacs.c | 7 ++++---
|
|
||||||
1 file changed, 4 insertions(+), 3 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/src/libaacs/aacs.c b/src/libaacs/aacs.c
|
|
||||||
index ae85612..60e678f 100644
|
|
||||||
--- a/src/libaacs/aacs.c
|
|
||||||
+++ b/src/libaacs/aacs.c
|
|
||||||
@@ -710,6 +710,7 @@ static void _find_config_entry(AACS *aacs, title_entry_list *ce,
|
|
||||||
uint8_t *mk, uint8_t *vuk)
|
|
||||||
{
|
|
||||||
char str[48];
|
|
||||||
+ char str2[48];
|
|
||||||
|
|
||||||
aacs->uks = NULL;
|
|
||||||
aacs->num_uks = 0;
|
|
||||||
@@ -731,7 +732,7 @@ static void _find_config_entry(AACS *aacs, title_entry_list *ce,
|
|
||||||
hexstring_to_hex_array(mk, 16, ce->entry.mek);
|
|
||||||
|
|
||||||
BD_DEBUG(DBG_AACS, "Found media key for %s: %s\n",
|
|
||||||
- ce->entry.discid, str_print_hex(str, mk, 16));
|
|
||||||
+ str_print_hex(str2, ce->entry.discid, 20), str_print_hex(str, mk, 16));
|
|
||||||
}
|
|
||||||
|
|
||||||
if (ce->entry.vid) {
|
|
||||||
@@ -739,14 +740,14 @@ static void _find_config_entry(AACS *aacs, title_entry_list *ce,
|
|
||||||
ce->entry.vid);
|
|
||||||
|
|
||||||
BD_DEBUG(DBG_AACS, "Found volume id for %s: %s\n",
|
|
||||||
- ce->entry.discid, str_print_hex(str, aacs->vid, 16));
|
|
||||||
+ str_print_hex(str2, ce->entry.discid, 20), str_print_hex(str, aacs->vid, 16));
|
|
||||||
}
|
|
||||||
|
|
||||||
if (ce->entry.vuk) {
|
|
||||||
hexstring_to_hex_array(vuk, 16, ce->entry.vuk);
|
|
||||||
|
|
||||||
BD_DEBUG(DBG_AACS, "Found volume unique key for %s: %s\n",
|
|
||||||
- ce->entry.discid, str_print_hex(str, vuk, 16));
|
|
||||||
+ str_print_hex(str2, ce->entry.discid, 20), str_print_hex(str, vuk, 16));
|
|
||||||
}
|
|
||||||
|
|
||||||
if (ce->entry.uk) {
|
|
||||||
--
|
|
||||||
1.7.10.4
|
|
||||||
|
|
@ -1,43 +0,0 @@
|
|||||||
From 7ee3b64639358a35188339f4547f70f7d5c2c9c2 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Roland Fischer <nalor@gmx.net>
|
|
||||||
Date: Wed, 9 Dec 2015 21:51:57 +0100
|
|
||||||
Subject: [PATCH] Always write logentry in case of corrupted disc
|
|
||||||
|
|
||||||
In case of a AACS_ERROR_CORRUPTED_DISC error always write a BD_DEBUG
|
|
||||||
message at DBG_CRIT loglevel.
|
|
||||||
---
|
|
||||||
src/libaacs/aacs.c | 4 +++-
|
|
||||||
1 file changed, 3 insertions(+), 1 deletion(-)
|
|
||||||
|
|
||||||
diff --git a/src/libaacs/aacs.c b/src/libaacs/aacs.c
|
|
||||||
index 60e678f..1bd8ad5 100644
|
|
||||||
--- a/src/libaacs/aacs.c
|
|
||||||
+++ b/src/libaacs/aacs.c
|
|
||||||
@@ -286,6 +286,7 @@ static int _calc_pk_mk(MKB *mkb, dk_list *dkl, uint8_t *mk)
|
|
||||||
num_uvs = len / 5;
|
|
||||||
|
|
||||||
if (num_uvs < 1) {
|
|
||||||
+ BD_DEBUG(DBG_AACS | DBG_CRIT, "No UVS detected - corrupted disc\n");
|
|
||||||
return AACS_ERROR_CORRUPTED_DISC;
|
|
||||||
}
|
|
||||||
|
|
||||||
@@ -518,6 +519,7 @@ static int _calc_mk(AACS *aacs, uint8_t *mk, pk_list *pkl, dk_list *dkl)
|
|
||||||
return AACS_ERROR_NO_PK;
|
|
||||||
}
|
|
||||||
|
|
||||||
+ BD_DEBUG(DBG_AACS | DBG_CRIT, "Error calculating media key - corrupted disc\n");
|
|
||||||
return AACS_ERROR_CORRUPTED_DISC;
|
|
||||||
}
|
|
||||||
|
|
||||||
@@ -829,7 +831,7 @@ static int _calc_uks(AACS *aacs, config_file *cf)
|
|
||||||
|
|
||||||
file_seek(fp, f_pos, SEEK_SET);
|
|
||||||
if ((file_read(fp, buf, 16)) != 16) {
|
|
||||||
- BD_DEBUG(DBG_AACS, "Unit key %d: read error\n", i);
|
|
||||||
+ BD_DEBUG(DBG_AACS | DBG_CRIT, "Unit key %d: read error\n", i);
|
|
||||||
aacs->num_uks = i;
|
|
||||||
error_code = AACS_ERROR_CORRUPTED_DISC;
|
|
||||||
break;
|
|
||||||
--
|
|
||||||
1.7.10.4
|
|
||||||
|
|
@ -1,114 +0,0 @@
|
|||||||
From 972679a52f6a38f08c0bd0ea5c8a0d4750d6a8e8 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Roland Fischer <nalor@gmx.net>
|
|
||||||
Date: Thu, 10 Dec 2015 20:47:02 +0100
|
|
||||||
Subject: [PATCH] mkb: Fix endless loop in _record
|
|
||||||
|
|
||||||
In case of a corrupt file it could happen that len get 0 in _record
|
|
||||||
and this results in an endless loop.
|
|
||||||
Created an exit condition for this case and fixed related
|
|
||||||
procedures too (they need to cope with the error-return-value
|
|
||||||
from _record).
|
|
||||||
Reason for change: https://github.com/OpenELEC/OpenELEC.tv/pull/4378
|
|
||||||
---
|
|
||||||
src/libaacs/mkb.c | 46 +++++++++++++++++++++++++++++++++++++++-------
|
|
||||||
1 file changed, 39 insertions(+), 7 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/src/libaacs/mkb.c b/src/libaacs/mkb.c
|
|
||||||
index 275b269..4985c4d 100644
|
|
||||||
--- a/src/libaacs/mkb.c
|
|
||||||
+++ b/src/libaacs/mkb.c
|
|
||||||
@@ -52,6 +52,12 @@ static const uint8_t *_record(MKB *mkb, uint8_t type, size_t *rec_len)
|
|
||||||
return mkb->buf + pos;
|
|
||||||
}
|
|
||||||
|
|
||||||
+ if (len == 0) {
|
|
||||||
+ BD_DEBUG(DBG_MKB, "Couldn't retrieve MKB record 0x%02x - len=0 (%p)\n", type,
|
|
||||||
+ (void*)(mkb->buf + pos));
|
|
||||||
+ break;
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
pos += len;
|
|
||||||
}
|
|
||||||
|
|
||||||
@@ -108,6 +114,10 @@ uint8_t mkb_type(MKB *mkb)
|
|
||||||
{
|
|
||||||
const uint8_t *rec = _record(mkb, 0x10, NULL);
|
|
||||||
|
|
||||||
+ if (!rec) {
|
|
||||||
+ return 0;
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
return MKINT_BE32(rec + 4);
|
|
||||||
}
|
|
||||||
|
|
||||||
@@ -115,6 +125,10 @@ uint32_t mkb_version(MKB *mkb)
|
|
||||||
{
|
|
||||||
const uint8_t *rec = _record(mkb, 0x10, NULL);
|
|
||||||
|
|
||||||
+ if (!rec) {
|
|
||||||
+ return 0;
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
return MKINT_BE32(rec + 8);
|
|
||||||
}
|
|
||||||
|
|
||||||
@@ -152,31 +166,49 @@ const uint8_t *mkb_drive_revokation_entries(MKB *mkb, size_t *len)
|
|
||||||
|
|
||||||
const uint8_t *mkb_subdiff_records(MKB *mkb, size_t *len)
|
|
||||||
{
|
|
||||||
- const uint8_t *rec = _record(mkb, 0x04, len) + 4;
|
|
||||||
- *len -= 4;
|
|
||||||
+ const uint8_t *rec = _record(mkb, 0x04, len);
|
|
||||||
+
|
|
||||||
+ if (rec) {
|
|
||||||
+ rec += 4;
|
|
||||||
+ *len -= 4;
|
|
||||||
+ }
|
|
||||||
|
|
||||||
return rec;
|
|
||||||
}
|
|
||||||
|
|
||||||
const uint8_t *mkb_cvalues(MKB *mkb, size_t *len)
|
|
||||||
{
|
|
||||||
- const uint8_t *rec = _record(mkb, 0x05, len) + 4;
|
|
||||||
- *len -= 4;
|
|
||||||
+ const uint8_t *rec = _record(mkb, 0x05, len);
|
|
||||||
+
|
|
||||||
+ if (rec) {
|
|
||||||
+ rec += 4;
|
|
||||||
+ *len -= 4;
|
|
||||||
+ }
|
|
||||||
|
|
||||||
return rec;
|
|
||||||
}
|
|
||||||
|
|
||||||
const uint8_t *mkb_mk_dv(MKB *mkb)
|
|
||||||
{
|
|
||||||
- return _record(mkb, 0x81, NULL) + 4;
|
|
||||||
+ const uint8_t *rec = _record(mkb, 0x81, NULL);
|
|
||||||
+
|
|
||||||
+ if (rec) {
|
|
||||||
+ rec += 4;
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ return rec;
|
|
||||||
}
|
|
||||||
|
|
||||||
const uint8_t *mkb_signature(MKB *mkb, size_t *len)
|
|
||||||
{
|
|
||||||
const uint8_t *rec = _record(mkb, 0x02, len);
|
|
||||||
- *len -= 4;
|
|
||||||
|
|
||||||
- return rec + 4;
|
|
||||||
+ if (rec) {
|
|
||||||
+ rec += 4;
|
|
||||||
+ *len -= 4;
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ return rec;
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
--
|
|
||||||
1.7.10.4
|
|
||||||
|
|
Loading…
x
Reference in New Issue
Block a user