Fix: sysconf() unchecked return value
[lttng-ust.git] / tests / ust-basic-tracing / ust-basic-tracing.c
index cc0fb89b65721fb9fb4329cdae07e2c23b74a604..15368ed73b4a2e7b3ff97fa0d18f0844c4976c84 100644 (file)
@@ -647,7 +647,11 @@ int update_futex(int fd, int active)
        int ret;
 
        page_size = sysconf(_SC_PAGE_SIZE);
-       if (page_size < 0) {
+       if (page_size <= 0) {
+               if (!page_size) {
+                       errno = EINVAL;
+               }
+               perror("Error in sysconf(_SC_PAGE_SIZE)");
                goto error;
        }
        wait_shm_mmap = mmap(NULL, page_size, PROT_READ | PROT_WRITE,
@@ -717,6 +721,7 @@ int main(int argc, const char **argv)
        const char *outputpath;
        const char **event_names;
        unsigned int nr_events;
+       long page_size;
 
        if (argc < 2) {
                printf("Usage:\n");
@@ -759,6 +764,15 @@ int main(int argc, const char **argv)
                return -1;
        }
 
+       page_size = sysconf(_SC_PAGE_SIZE);
+       if (page_size <= 0) {
+               if (!page_size) {
+                       errno = EINVAL;
+               }
+               perror("Error in sysconf(_SC_PAGE_SIZE)");
+               return -1;
+       }
+
        if (geteuid() == 0) {
                ret = mkdir(LTTNG_RUNDIR, S_IRWXU | S_IRWXG | S_IROTH | S_IXOTH);
                if (ret && errno != EEXIST) {
@@ -766,7 +780,7 @@ int main(int argc, const char **argv)
                        return -1;
                }
                wait_shm_fd = get_wait_shm(DEFAULT_GLOBAL_APPS_WAIT_SHM_PATH,
-                                       sysconf(_SC_PAGE_SIZE), 1);
+                                       page_size, 1);
                if (wait_shm_fd < 0) {
                        perror("global wait shm error");
                        return -1;
@@ -792,7 +806,7 @@ int main(int argc, const char **argv)
                snprintf(local_apps_wait_shm_path, PATH_MAX,
                         DEFAULT_HOME_APPS_WAIT_SHM_PATH, getuid());
                wait_shm_fd = get_wait_shm(local_apps_wait_shm_path,
-                                       sysconf(_SC_PAGE_SIZE), 0);
+                                       page_size, 0);
                if (wait_shm_fd < 0) {
                        perror("local wait shm error");
                        return -1;
This page took 0.023632 seconds and 4 git commands to generate.