Merge "libcutils: ashmem print error message for invalid fd"
am: 9c551a1bec
* commit '9c551a1bece6624bdbdfca40badc07b40b28ec1c':
libcutils: ashmem print error message for invalid fd
This commit is contained in:
commit
ba6523a449
|
@ -19,6 +19,7 @@
|
|||
* ashmem-enabled kernel. See ashmem-sim.c for the "fake" tmp-based version,
|
||||
* used by the simulator.
|
||||
*/
|
||||
#define LOG_TAG "ashmem"
|
||||
|
||||
#include <errno.h>
|
||||
#include <fcntl.h>
|
||||
|
@ -32,6 +33,7 @@
|
|||
#include <linux/ashmem.h>
|
||||
|
||||
#include <cutils/ashmem.h>
|
||||
#include <log/log.h>
|
||||
|
||||
#define ASHMEM_DEVICE "/dev/ashmem"
|
||||
|
||||
|
@ -92,6 +94,7 @@ static int __ashmem_is_ashmem(int fd)
|
|||
return -1;
|
||||
}
|
||||
|
||||
rdev = 0; /* Too much complexity to sniff __ashmem_rdev */
|
||||
if (S_ISCHR(st.st_mode) && st.st_rdev) {
|
||||
pthread_mutex_lock(&__ashmem_lock);
|
||||
rdev = __ashmem_rdev;
|
||||
|
@ -114,6 +117,17 @@ static int __ashmem_is_ashmem(int fd)
|
|||
}
|
||||
}
|
||||
|
||||
if (rdev) {
|
||||
ALOGE("illegal fd=%d mode=0%o rdev=%d:%d expected 0%o %d:%d",
|
||||
fd, st.st_mode, major(st.st_rdev), minor(st.st_rdev),
|
||||
S_IFCHR | S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP | S_IROTH | S_IRGRP,
|
||||
major(rdev), minor(rdev));
|
||||
} else {
|
||||
ALOGE("illegal fd=%d mode=0%o rdev=%d:%d expected 0%o",
|
||||
fd, st.st_mode, major(st.st_rdev), minor(st.st_rdev),
|
||||
S_IFCHR | S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP | S_IROTH | S_IRGRP);
|
||||
}
|
||||
|
||||
errno = ENOTTY;
|
||||
return -1;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue