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,8 +914,13 @@ static int raw_open(BlockDriverState *bs, const char *filename, int flags) | ||
| 914 | s->hfile = CreateFile(filename, access_flags, | 914 | s->hfile = CreateFile(filename, access_flags, |
| 915 | FILE_SHARE_READ, NULL, | 915 | FILE_SHARE_READ, NULL, |
| 916 | create_flags, overlapped, NULL); | 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 | return -1; | 922 | return -1; |
| 923 | + } | ||
| 919 | return 0; | 924 | return 0; |
| 920 | } | 925 | } |
| 921 | 926 | ||
| @@ -1278,8 +1283,13 @@ static int hdev_open(BlockDriverState *bs, const char *filename, int flags) | @@ -1278,8 +1283,13 @@ static int hdev_open(BlockDriverState *bs, const char *filename, int flags) | ||
| 1278 | s->hfile = CreateFile(filename, access_flags, | 1283 | s->hfile = CreateFile(filename, access_flags, |
| 1279 | FILE_SHARE_READ, NULL, | 1284 | FILE_SHARE_READ, NULL, |
| 1280 | create_flags, overlapped, NULL); | 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 | return -1; | 1291 | return -1; |
| 1292 | + } | ||
| 1283 | return 0; | 1293 | return 0; |
| 1284 | } | 1294 | } |
| 1285 | 1295 |