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:
Jaromir Capik 2013-02-04 18:21:39 +01:00 committed by Craig Small
parent 5a27c8095e
commit 365a5fa517

4
pmap.c
View File

@ -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++;