summaryrefslogtreecommitdiff
path: root/common
diff options
context:
space:
mode:
authorOndrej Holy <oholy@redhat.com>2016-06-22 10:05:58 +0200
committerOndrej Holy <oholy@redhat.com>2016-06-22 11:01:52 +0200
commitc1ffe8d4abb75dad5615006152da3eb130362a45 (patch)
tree690da5e0e3fb867eb184b3a62aff71b2a7fe4c6c /common
parent2cf06f3800fb1cacee57ee9398e68b7b15805859 (diff)
downloadgvfs-c1ffe8d4abb75dad5615006152da3eb130362a45.tar.gz
common: Check BDMV folder before libblueray usage
You can see the following errors from libblueray if you insert non-blueray disk: disc.c:350: error opening file BDMV/index.bdmv disc.c:350: error opening file BDMV/BACKUP/index.bdmv Unfortunately bd_set_debug_mask is not part of public API, so we have no control over the output. Let's do not use any libblueray API functions if BDMV dir does not exists to avoid such errors. https://bugzilla.gnome.org/show_bug.cgi?id=767909
Diffstat (limited to 'common')
-rw-r--r--common/gvfsmountinfo.c11
1 files changed, 11 insertions, 0 deletions
diff --git a/common/gvfsmountinfo.c b/common/gvfsmountinfo.c
index 2c365516..ca4d8685 100644
--- a/common/gvfsmountinfo.c
+++ b/common/gvfsmountinfo.c
@@ -481,6 +481,7 @@ bdmv_metadata_thread (GSimpleAsyncResult *result,
char *icon;
char *name;
const char *lang;
+ char *path;
file = G_FILE (object);
@@ -493,6 +494,16 @@ bdmv_metadata_thread (GSimpleAsyncResult *result,
goto error;
}
+ path = g_build_filename (disc_root, "BDMV", NULL);
+ if (!g_file_test (path, G_FILE_TEST_IS_DIR))
+ {
+ error = g_error_new_literal (G_IO_ERROR,
+ G_IO_ERROR_FAILED,
+ "Device is not a Blu-Ray disc");
+ goto error;
+ }
+ g_free (path);
+
bd = bd_open (disc_root, NULL);
g_free (disc_root);