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