libaacs | branch: master | npzacs <npz...@gmail.com> | Wed May  6 13:41:36 2015 
+0300| [da8a5fb842932a05ed3623c419d2583d5e81f27e] | committer: npzacs

check memory allocation result

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

 src/libaacs/content_cert.c |   10 +++++-----
 src/libaacs/mmc.c          |   11 ++++++++++-
 2 files changed, 15 insertions(+), 6 deletions(-)

diff --git a/src/libaacs/content_cert.c b/src/libaacs/content_cert.c
index c3b9bc5..35a391b 100644
--- a/src/libaacs/content_cert.c
+++ b/src/libaacs/content_cert.c
@@ -64,11 +64,11 @@ CONTENT_CERT *cc_parse(const void *data, size_t len)
     /* return useful data */
 
     CONTENT_CERT *c = calloc(1, sizeof(CONTENT_CERT));
-
-    c->bus_encryption_enabled_flag = p[1] >> 7;
-    memcpy(c->cc_id,              p + 14, 6);
-    memcpy(c->bdj_root_cert_hash, p + 46, 20);
-
+    if (c) {
+        c->bus_encryption_enabled_flag = p[1] >> 7;
+        memcpy(c->cc_id,              p + 14, 6);
+        memcpy(c->bdj_root_cert_hash, p + 46, 20);
+    }
     return c;
 }
 
diff --git a/src/libaacs/mmc.c b/src/libaacs/mmc.c
index e3b0fe6..6bf2121 100644
--- a/src/libaacs/mmc.c
+++ b/src/libaacs/mmc.c
@@ -255,9 +255,15 @@ static uint8_t *_mmc_read_mkb(MMC *mmc, uint8_t agid, int 
address, int *size)
     if (_mmc_report_disc_structure(mmc, agid, 0x83, layer, address, buf, 
sizeof(buf))) {
         unsigned pack, num_packs = buf[3];
         int32_t  len = MKINT_BE16(buf) - 2;
-        mkb = malloc(32768 * num_packs);
 
         BD_DEBUG(DBG_MMC, "got mkb: pack 0/%d %d bytes\n", num_packs, len);
+
+        mkb = malloc(32768 * num_packs);
+        if (!mkb) {
+              BD_DEBUG(DBG_MMC | DBG_CRIT, "out of memory\n");
+              return NULL;
+        }
+
         memcpy(mkb, buf + 4, len);
        *size += len;
 
@@ -347,6 +353,9 @@ MMC *mmc_open(const char *path)
     }
 
     mmc = calloc(1, sizeof(MMC));
+    if (!mmc) {
+        return NULL;
+    }
 
     crypto_create_nonce(mmc->host_nonce, sizeof(mmc->host_nonce));
 

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

Reply via email to