pmap: empty output or crashes on ppc/s390 caused by wrong pidlist type
Previously the pidlist variable was defined as unsigned long * whilst the openproc function accepts pid_t *. Both target types differ in size (8 != 4) and therefore the issue mainly affects big endian architectures. This commit changes the pidlist type to pid_t * so that it's compatible with openproc.
This commit is contained in:
parent
5a27c8095e
commit
365a5fa517
4
pmap.c
4
pmap.c
@ -621,7 +621,7 @@ static void range_arguments(char *optarg)
|
|||||||
|
|
||||||
int main(int argc, char **argv)
|
int main(int argc, char **argv)
|
||||||
{
|
{
|
||||||
unsigned long *pidlist;
|
pid_t *pidlist;
|
||||||
unsigned count = 0;
|
unsigned count = 0;
|
||||||
PROCTAB *PT;
|
PROCTAB *PT;
|
||||||
proc_t p;
|
proc_t p;
|
||||||
@ -689,7 +689,7 @@ int main(int argc, char **argv)
|
|||||||
x_option && (d_option || X_option))
|
x_option && (d_option || X_option))
|
||||||
xerrx(EXIT_FAILURE, _("options -d, -x, -X are mutually exclusive"));
|
xerrx(EXIT_FAILURE, _("options -d, -x, -X are mutually exclusive"));
|
||||||
|
|
||||||
pidlist = xmalloc(sizeof(unsigned long) * argc);
|
pidlist = xmalloc(sizeof(pid_t) * argc);
|
||||||
|
|
||||||
while (*argv) {
|
while (*argv) {
|
||||||
char *walk = *argv++;
|
char *walk = *argv++;
|
||||||
|
Loading…
Reference in New Issue
Block a user