mirror of
https://sourceware.org/git/glibc.git
synced 2024-11-27 11:43:34 +08:00
1999-06-07 Roland McGrath <roland@baalperazim.frob.com>
* db2/os/os_oflags.c (__db_oflags): Fix checking of O_ACCMODE bits to be POSIX compliant. Prior definition was broken for Hurd. Reported by Mark Kettenis <kettenis@gnu.org>.
This commit is contained in:
parent
54fe45dc7c
commit
8a0e55c3ee
@ -33,16 +33,21 @@ __db_oflags(oflags)
|
||||
u_int32_t dbflags;
|
||||
|
||||
/*
|
||||
* XXX
|
||||
* Convert POSIX 1003.1 open(2) flags to DB flags. Not an exact
|
||||
* science as most POSIX implementations don't have a flag value
|
||||
* for O_RDONLY, it's simply the lack of a write flag.
|
||||
* Convert POSIX 1003.1 open(2) flags to DB flags.
|
||||
*/
|
||||
dbflags = 0;
|
||||
switch (oflags & O_ACCMODE) {
|
||||
case O_RDONLY:
|
||||
dbflags |= DB_RDONLY;
|
||||
break;
|
||||
case O_WRONLY:
|
||||
case O_RDWR:
|
||||
break;
|
||||
default: /* Bogus flags value from user. */
|
||||
/* XXX no way to return error from here */
|
||||
}
|
||||
if (oflags & O_CREAT)
|
||||
dbflags |= DB_CREATE;
|
||||
if (!(oflags & (O_RDWR | O_WRONLY)) || oflags & O_RDONLY)
|
||||
dbflags |= DB_RDONLY;
|
||||
if (oflags & O_TRUNC)
|
||||
dbflags |= DB_TRUNCATE;
|
||||
return (dbflags);
|
||||
|
Loading…
Reference in New Issue
Block a user