btreplay: fix memory corruption caused by CPU_ZERO_S
[blktrace.git] / btreplay / btreplay.c
index 2a1e1cca0f72c22968466d153789ff3ec0d3a8ab..2a1525e046620ecae71d2b8eea88b8da921c7e93 100644 (file)
@@ -502,8 +502,8 @@ static inline void start_iter(void)
  */
 static void get_ncpus(void)
 {
-#ifdef _SC_NPROCESSORS_CONF
-       ncpus = sysconf(_SC_NPROCESSORS_CONF);
+#ifdef _SC_NPROCESSORS_ONLN
+       ncpus = sysconf(_SC_NPROCESSORS_ONLN);
 #else
        int nrcpus = 4096;
        cpu_set_t * cpus;
@@ -550,7 +550,7 @@ static void pin_to_cpu(struct thr_info *tip)
 
        assert(0 <= tip->cpu && tip->cpu < ncpus);
 
-       CPU_ZERO_S(ncpus, cpus);
+       CPU_ZERO_S(size, cpus);
        CPU_SET_S(tip->cpu, size, cpus);
        if (sched_setaffinity(getpid(), size, cpus)) {
                fatal("sched_setaffinity", ERR_SYSCALL, "Failed to pin CPU\n");