[Bug 239586] sysutils/atop: a function pointer was called with incorrect number of argument

bugzilla-noreply at freebsd.org bugzilla-noreply at freebsd.org
Fri Aug 2 03:15:20 UTC 2019


https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=239586

            Bug ID: 239586
           Summary: sysutils/atop: a function pointer was called with
                    incorrect number of argument
           Product: Ports & Packages
           Version: Latest
          Hardware: Any
                OS: Any
            Status: New
          Severity: Affects Only Me
          Priority: ---
         Component: Individual Port(s)
          Assignee: ports-bugs at FreeBSD.org
          Reporter: msl0000023508 at gmail.com
                CC: samm at os2.kiev.ua
                CC: samm at os2.kiev.ua
             Flags: maintainer-feedback?(samm at os2.kiev.ua)

In source file atopsar.c, function 'reportlive', a pointer to function was
called with 16 arguments:

                if ( !(rv = (pridef[i].priline)(ss, (struct tstat *)0, 0,
                                        numsecs, numsecs*hertz, hertz,
                                        osvers, osrel, ossub, 
                                        stampalways ? timebuf : "        ",
                                        0, 0, 0, 0, 0, 0) ) )

However the actual functions are expecting 17 arguments, for example:

static int
cpuline(struct sstat *ss, struct tstat *ts, struct tstat **ps, int nactproc,
        time_t deltasec, time_t deltatic, time_t hz,
        int osvers, int osrel, int ossub, char *tstamp,
        int ppres,  int ntrun, int ntslpi, int ntslpu, int pexit, int pzombie)

In particular it misses argument 'struct tstat **ps'.

This resulted in erroneous '(null)' printed from atopsar(1), or depending the
pointer size and the compiler optimization, it could even crash due to
accessing an invalid pointer in printf(3):

an-i386-machine$ atopsar -c 2

an-i386-machine  12.0-RELEASE-p5  FreeBSD 12.0-RELEASE-p5 GENERIC  i386 
2019/08/02

-------------------------- analysis date: 2019/08/02 --------------------------

10:55:48  cpu  %usr %nice %sys %irq %softirq  %steal %guest  %wait %idle  _cpu_
10:55:50  all     0     0    0    0        0       0      0      0   399
(null)    0     0     0    0    0        0       0      0      0   100
(null)    1     0     0    0    0        0       0      0      0   100
(null)    2     0     0    0    0        0       0      0      0   100
(null)    3     0     0    0    0        0       0      0      0   100
...


an-amd64-machine$ atopsar -c 2

an-amd64-machine  13.0-CURRENT  FreeBSD 13.0-CURRENT r350103 GENERIC  amd64 
2019/08/02

-------------------------- analysis date: 2019/08/02 --------------------------

11:05:36  cpu  %usr %nice %sys %irq %softirq  %steal %guest  %wait %idle  _cpu_
11:05:38  all     0     0    0    0        0       0      0      0   600
Segmentation fault (core dumped)

-- 
You are receiving this mail because:
You are the assignee for the bug.


More information about the freebsd-ports-bugs mailing list