fprintf(stderr, "parent after 1st bad pdfork\n");
int anotherfd;
int badflag;
+ // without this the last pdfork succeeds on arm64
+ badflag = -1 + anotherfd;
+ badflag -=anotherfd;
pid_t* pbadpid = malloc(sizeof(pid_t));
free(pbadpid);
pdgetpid(anotherfd, pbadpid);
parent after 1st bad pdfork
Syscall param pdgetpid(fd) contains uninitialised byte(s)
...
- by 0x........: main (pdfork_pdkill.c:99)
+ by 0x........: main (pdfork_pdkill.c:101)
Syscall param pdgetpid(pidp)) points to unaddressable byte(s)
...
- by 0x........: main (pdfork_pdkill.c:99)
+ by 0x........: main (pdfork_pdkill.c:101)
Address 0x........ is 0 bytes inside a block of size 4 free'd
at 0x........: free (vg_replace_malloc.c:...)
- by 0x........: main (pdfork_pdkill.c:98)
+ by 0x........: main (pdfork_pdkill.c:100)
Block was alloc'd at
at 0x........: malloc (vg_replace_malloc.c:...)
- by 0x........: main (pdfork_pdkill.c:97)
+ by 0x........: main (pdfork_pdkill.c:99)
+
+Conditional jump or move depends on uninitialised value(s)
+ ...
+ by 0x........: main (pdfork_pdkill.c:101)
Syscall param pdfork(flags) contains uninitialised byte(s)
...
- by 0x........: main (pdfork_pdkill.c:100)
+ by 0x........: main (pdfork_pdkill.c:102)
FILE DESCRIPTORS: 3 open (3 inherited) at exit.
Open file descriptor ...