Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 02 Aug 2019 03:15:18 +0000
From:      bugzilla-noreply@freebsd.org
To:        ports-bugs@FreeBSD.org
Subject:   [Bug 239586] sysutils/atop: a function pointer was called with incorrect number of argument
Message-ID:  <bug-239586-7788@https.bugs.freebsd.org/bugzilla/>

next in thread | raw e-mail | index | archive | help
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=3D239586

            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@FreeBSD.org
          Reporter: msl0000023508@gmail.com
                CC: samm@os2.kiev.ua
                CC: samm@os2.kiev.ua
             Flags: maintainer-feedback?(samm@os2.kiev.ua)

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

                if ( !(rv =3D (pridef[i].priline)(ss, (struct tstat *)0, 0,
                                        numsecs, numsecs*hertz, hertz,
                                        osvers, osrel, ossub,=20
                                        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 pzomb=
ie)

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

This resulted in erroneous '(null)' printed from atopsar(1), or depending t=
he
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=20
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=
=20
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)

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



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?bug-239586-7788>