projects
/
lttng-ust.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Fix: handle sysconf errors
[lttng-ust.git]
/
liblttng-ust
/
lttng-ust-comm.c
diff --git
a/liblttng-ust/lttng-ust-comm.c
b/liblttng-ust/lttng-ust-comm.c
index 74d805aefb06c23e42c048498cf2861183d29dfd..77cde295b7beae3c0a47a99fcbe486532e3680c3 100644
(file)
--- a/
liblttng-ust/lttng-ust-comm.c
+++ b/
liblttng-ust/lttng-ust-comm.c
@@
-819,9
+819,14
@@
void cleanup_sock_info(struct sock_info *sock_info, int exiting)
sock_info->notify_socket = -1;
}
if (sock_info->wait_shm_mmap) {
sock_info->notify_socket = -1;
}
if (sock_info->wait_shm_mmap) {
- ret = munmap(sock_info->wait_shm_mmap, sysconf(_SC_PAGE_SIZE));
- if (ret) {
- ERR("Error unmapping wait shm");
+ long page_size;
+
+ page_size = sysconf(_SC_PAGE_SIZE);
+ if (page_size > 0) {
+ ret = munmap(sock_info->wait_shm_mmap, page_size);
+ if (ret) {
+ ERR("Error unmapping wait shm");
+ }
}
sock_info->wait_shm_mmap = NULL;
}
}
sock_info->wait_shm_mmap = NULL;
}
@@
-994,15
+999,20
@@
error_close:
static
char *get_map_shm(struct sock_info *sock_info)
{
static
char *get_map_shm(struct sock_info *sock_info)
{
-
size_t mmap_size = sysconf(_SC_PAGE_SIZE)
;
+
long page_size
;
int wait_shm_fd, ret;
char *wait_shm_mmap;
int wait_shm_fd, ret;
char *wait_shm_mmap;
- wait_shm_fd = get_wait_shm(sock_info, mmap_size);
+ page_size = sysconf(_SC_PAGE_SIZE);
+ if (page_size < 0) {
+ goto error;
+ }
+
+ wait_shm_fd = get_wait_shm(sock_info, page_size);
if (wait_shm_fd < 0) {
goto error;
}
if (wait_shm_fd < 0) {
goto error;
}
- wait_shm_mmap = mmap(NULL,
mmap
_size, PROT_READ,
+ wait_shm_mmap = mmap(NULL,
page
_size, PROT_READ,
MAP_SHARED, wait_shm_fd, 0);
/* close shm fd immediately after taking the mmap reference */
ret = close(wait_shm_fd);
MAP_SHARED, wait_shm_fd, 0);
/* close shm fd immediately after taking the mmap reference */
ret = close(wait_shm_fd);
This page took
0.024302 seconds
and
4
git commands to generate.