libbluray | branch: master | hpi1 <[email protected]> | Sun Aug  7 22:07:40 
2016 +0300| [665add76cfdd755b08156e9760fb173ad5423349] | committer: hpi1

rle: stop at error

> http://git.videolan.org/gitweb.cgi/libbluray.git/?a=commit;h=665add76cfdd755b08156e9760fb173ad5423349
---

 src/libbluray/decoders/rle.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/src/libbluray/decoders/rle.c b/src/libbluray/decoders/rle.c
index 1439565..185072e 100644
--- a/src/libbluray/decoders/rle.c
+++ b/src/libbluray/decoders/rle.c
@@ -33,6 +33,9 @@ static int _rle_ensure_size(RLE_ENC *p)
 {
     if (BD_UNLIKELY(!p->free_elem)) {
         BD_PG_RLE_ELEM *start = rle_get(p);
+        if (p->error) {
+            return -1;
+        }
         /* realloc to 2x */
         void *tmp = refcnt_realloc(start, p->num_elem * 2 * 
sizeof(BD_PG_RLE_ELEM));
         if (!tmp) {
@@ -181,7 +184,7 @@ int rle_add_bite(RLE_ENC *p, uint8_t color, int len)
         p->elem->len += len;
     } else {
         if (BD_LIKELY(p->elem->len)) {
-            if (BD_UNLIKELY(!_rle_grow(p))) {
+            if (BD_UNLIKELY(_rle_grow(p) < 0)) {
                 return -1;
             }
         }

_______________________________________________
libbluray-devel mailing list
[email protected]
https://mailman.videolan.org/listinfo/libbluray-devel

Reply via email to