Allow access("/dev/dsp", W_OK) succeed

Some stupid apps (such as X-lite Softphone) check for W_OK on /dev/dsp.
This is of course crazy but easy for us to support.

Closes rhbz #474313
This commit is contained in:
Lennart Poettering 2008-12-18 15:24:02 +01:00
parent 1d2e5cba52
commit 63fc26ed03

View file

@ -2382,15 +2382,15 @@ int access(const char *pathname, int mode) {
debug(DEBUG_LEVEL_VERBOSE, __FILE__": access(%s)\n", pathname?pathname:"NULL"); debug(DEBUG_LEVEL_VERBOSE, __FILE__": access(%s)\n", pathname?pathname:"NULL");
if (!pathname || if (!pathname ||
( strcmp(pathname, "/dev/dsp") != 0 && (strcmp(pathname, "/dev/dsp") != 0 &&
strcmp(pathname, "/dev/adsp") != 0 && strcmp(pathname, "/dev/adsp") != 0 &&
strcmp(pathname, "/dev/sndstat") != 0 && strcmp(pathname, "/dev/sndstat") != 0 &&
strcmp(pathname, "/dev/mixer") != 0 )) { strcmp(pathname, "/dev/mixer") != 0 )) {
LOAD_ACCESS_FUNC(); LOAD_ACCESS_FUNC();
return _access(pathname, mode); return _access(pathname, mode);
} }
if (mode & (W_OK | X_OK)) { if (mode & X_OK) {
debug(DEBUG_LEVEL_NORMAL, __FILE__": access(%s, %x) = EACCESS\n", pathname, mode); debug(DEBUG_LEVEL_NORMAL, __FILE__": access(%s, %x) = EACCESS\n", pathname, mode);
errno = EACCES; errno = EACCES;
return -1; return -1;