libbluray | branch: master | hpi1 <h...@anonymous.org> | Fri Mar 20 14:42:09 
2015 +0200| [9bf8997a039ca46548ab54bb28257c0149ac45f0] | committer: hpi1

fix crash when disc_init() fails

Not likely, but possible (failed malloc would cause this).

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

 src/libbluray/bluray.c |   14 +++++++++-----
 1 file changed, 9 insertions(+), 5 deletions(-)

diff --git a/src/libbluray/bluray.c b/src/libbluray/bluray.c
index 94a1072..e05b61d 100644
--- a/src/libbluray/bluray.c
+++ b/src/libbluray/bluray.c
@@ -1300,16 +1300,20 @@ BLURAY *bd_open(const char *device_path, const char 
*keyfile_path)
         return NULL;
     }
 
+    bd_mutex_init(&bd->mutex);
+#ifdef USING_BDJAVA
+    bd_mutex_init(&bd->argb_buffer_mutex);
+#endif
+
     bd->disc = disc_open(device_path,
                          &enc_info, keyfile_path,
                          (void*)bd->regs, (void*)bd_psr_read, 
(void*)bd_psr_write);
 
-    _fill_disc_info(bd, &enc_info);
+    if (!bd->disc) {
+        return bd;
+    }
 
-    bd_mutex_init(&bd->mutex);
-#ifdef USING_BDJAVA
-    bd_mutex_init(&bd->argb_buffer_mutex);
-#endif
+    _fill_disc_info(bd, &enc_info);
 
     BD_DEBUG(DBG_BLURAY, "BLURAY initialized!\n");
 

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

Reply via email to