Commit 54421cb17bc744bad15f2b1adb4adefdaea83c10
1 parent
0da75eb1
Fix CDROM permission check, by Kazu <kazoo@r3.dion.ne.jp>.
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@2331 c046a42c-6fe2-441c-8c8c-71466251a162
Showing
1 changed file
with
12 additions
and
2 deletions
block-raw.c
... | ... | @@ -914,8 +914,13 @@ static int raw_open(BlockDriverState *bs, const char *filename, int flags) |
914 | 914 | s->hfile = CreateFile(filename, access_flags, |
915 | 915 | FILE_SHARE_READ, NULL, |
916 | 916 | create_flags, overlapped, NULL); |
917 | - if (s->hfile == INVALID_HANDLE_VALUE) | |
917 | + if (s->hfile == INVALID_HANDLE_VALUE) { | |
918 | + int err = GetLastError(); | |
919 | + | |
920 | + if (err == ERROR_ACCESS_DENIED) | |
921 | + return -EACCES; | |
918 | 922 | return -1; |
923 | + } | |
919 | 924 | return 0; |
920 | 925 | } |
921 | 926 | |
... | ... | @@ -1278,8 +1283,13 @@ static int hdev_open(BlockDriverState *bs, const char *filename, int flags) |
1278 | 1283 | s->hfile = CreateFile(filename, access_flags, |
1279 | 1284 | FILE_SHARE_READ, NULL, |
1280 | 1285 | create_flags, overlapped, NULL); |
1281 | - if (s->hfile == INVALID_HANDLE_VALUE) | |
1286 | + if (s->hfile == INVALID_HANDLE_VALUE) { | |
1287 | + int err = GetLastError(); | |
1288 | + | |
1289 | + if (err == ERROR_ACCESS_DENIED) | |
1290 | + return -EACCES; | |
1282 | 1291 | return -1; |
1292 | + } | |
1283 | 1293 | return 0; |
1284 | 1294 | } |
1285 | 1295 | ... | ... |