libaacs | branch: master | npzacs <npz...@gmail.com> | Fri Mar  3 09:32:45 2017 
+0200| [e792172f5a5beb071e681d1431e7e01f1d5a531f] | committer: npzacs

check malloc() result

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

 src/libaacs/aacs.c | 14 ++++++++------
 src/util/strutl.c  |  6 ++++--
 2 files changed, 12 insertions(+), 8 deletions(-)

diff --git a/src/libaacs/aacs.c b/src/libaacs/aacs.c
index 3be06c6..59d116e 100644
--- a/src/libaacs/aacs.c
+++ b/src/libaacs/aacs.c
@@ -162,11 +162,11 @@ static void _save_rl(const char *name, uint32_t version, 
const uint8_t *version_
         return;
     }
 
-    if (rl_rec && version_rec) {
-        rl_rec -= 4;
-        rl_len += 4;
+    rl_rec -= 4;
+    rl_len += 4;
 
-        uint8_t *data = malloc(12 + rl_len);
+    uint8_t *data = malloc(12 + rl_len);
+    if (data) {
         memcpy(data,      version_rec, 12);
         memcpy(data + 12, rl_rec,      rl_len);
         if (!_rl_verify_signature(data, rl_len + 12)) {
@@ -1422,7 +1422,7 @@ static AACS_RL_ENTRY *_get_rl(const char *type, int 
*num_records, int *mkbv)
 
     if (version > 0 && len > 24) {
         data = malloc(len);
-        if (cache_get(type, &version, &len, data, len) && len > 24) {
+        if (data && cache_get(type, &version, &len, data, len) && len > 24) {
 
             if (_rl_verify_signature(data, len)) {
                 *mkbv = version;
@@ -1503,7 +1503,9 @@ struct aacs_basic_cci *aacs_get_basic_cci(AACS *aacs, 
uint32_t title)
     const AACS_BASIC_CCI *bcci = cci_get_basic_cci(cci);
     if (bcci) {
         data = malloc(sizeof(*data));
-        memcpy(data, bcci, sizeof(*data));
+        if (data) {
+            memcpy(data, bcci, sizeof(*data));
+        }
     }
 
     cci_free(&cci);
diff --git a/src/util/strutl.c b/src/util/strutl.c
index a6ef77f..573e5a8 100644
--- a/src/util/strutl.c
+++ b/src/util/strutl.c
@@ -255,8 +255,10 @@ char *str_get_hex_string(const char *p, int n)
     }
 
     char *s = malloc(n + 1);
-    memcpy(s, p, n);
-    s[n] = 0;
+    if (s) {
+        memcpy(s, p, n);
+        s[n] = 0;
+    }
 
     return s;
 }

_______________________________________________
libaacs-devel mailing list
libaacs-devel@videolan.org
https://mailman.videolan.org/listinfo/libaacs-devel

Reply via email to