Hi tech@,

In usr.bin/systat/cpu.c, if allocating memory failed, it seems no need
to return value, call "err()" function may be better (refer
usr.bin/systat/vmstat.c). Apologize if I'm wrong, thanks!

Index: cpu.c
===================================================================
RCS file: /cvs/src/usr.bin/systat/cpu.c,v
retrieving revision 1.5
diff -u -p -r1.5 cpu.c
--- cpu.c       2 Jan 2016 20:02:40 -0000       1.5
+++ cpu.c       7 May 2018 05:40:07 -0000
@@ -50,6 +50,7 @@
 #include <sys/sched.h>
 #include <sys/sysctl.h>

+#include <err.h>
 #include <stdlib.h>
 #include <stdint.h>
 #include <string.h>
@@ -200,16 +201,16 @@ initcpu(void)
                return (-1);
        if ((cpu_states = calloc(cpu_count,
            CPUSTATES * sizeof(int64_t))) == NULL)
-               return (-1);
+               err(2, NULL);
        if ((cpu_tm = calloc(cpu_count, sizeof(int64_t *))) == NULL ||
            (cpu_old = calloc(cpu_count, sizeof(int64_t *))) == NULL ||
            (cpu_diff = calloc(cpu_count, sizeof(int64_t *))) == NULL)
-               return (-1);
+               err(2, NULL);
        for (i = 0; i < cpu_count; i++) {
                if ((cpu_tm[i] = calloc(CPUSTATES, sizeof(int64_t))) == NULL ||
                    (cpu_old[i] = calloc(CPUSTATES, sizeof(int64_t))) == NULL ||
                    (cpu_diff[i] = calloc(CPUSTATES, sizeof(int64_t))) == NULL)
-                       return (-1);
+                       err(2, NULL);
        }

        for (v = views_cpu; v->name != NULL; v++)

-- 
Best Regards
Nan Xiao

Reply via email to