mirror of
https://github.com/LibreELEC/LibreELEC.tv.git
synced 2025-07-24 11:16:51 +00:00
Merge pull request #4505 from lrusak/openelec-6.0-update
merged, thanks
This commit is contained in:
commit
5c83d40469
@ -17,7 +17,7 @@
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="bcm2835-driver"
|
||||
PKG_VERSION="7f01b12"
|
||||
PKG_VERSION="6b7cebd"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="nonfree"
|
||||
|
@ -17,7 +17,7 @@
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="mesa"
|
||||
PKG_VERSION="11.0.6"
|
||||
PKG_VERSION="11.0.7"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="OSS"
|
||||
|
@ -0,0 +1,52 @@
|
||||
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
|
||||
|
@ -0,0 +1,43 @@
|
||||
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
|
||||
|
@ -0,0 +1,114 @@
|
||||
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
|
||||
|
@ -17,7 +17,7 @@
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="libshairplay"
|
||||
PKG_VERSION="0f41ade"
|
||||
PKG_VERSION="498bc5b"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="GPL"
|
||||
|
@ -17,7 +17,7 @@
|
||||
################################################################################
|
||||
|
||||
PKG_NAME="bcm2835-bootloader"
|
||||
PKG_VERSION="7f01b12"
|
||||
PKG_VERSION="6b7cebd"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="arm"
|
||||
PKG_LICENSE="nonfree"
|
||||
|
Loading…
x
Reference in New Issue
Block a user