diff options
Diffstat (limited to 'hurd/hurdexec.c')
-rw-r--r-- | hurd/hurdexec.c | 26 |
1 files changed, 14 insertions, 12 deletions
diff --git a/hurd/hurdexec.c b/hurd/hurdexec.c index d5a20cb..0545935 100644 --- a/hurd/hurdexec.c +++ b/hurd/hurdexec.c @@ -383,19 +383,21 @@ retry: exec call. */ for (i = 0; i < _hurd_nports; ++i) - { - *pdp++ = ports[i]; - for (j = 0; j < nportnames; j++) - if (portnames[j] == ports[i]) - portnames[j] = MACH_PORT_NULL; - } + if (ports[i] != MACH_PORT_NULL) + { + *pdp++ = ports[i]; + for (j = 0; j < nportnames; j++) + if (portnames[j] == ports[i]) + portnames[j] = MACH_PORT_NULL; + } for (i = 0; i < dtablesize; ++i) - { - *pdp++ = dtable[i]; - for (j = 0; j < nportnames; j++) - if (portnames[j] == dtable[i]) - portnames[j] = MACH_PORT_NULL; - } + if (dtable[i] != MACH_PORT_NULL) + { + *pdp++ = dtable[i]; + for (j = 0; j < nportnames; j++) + if (portnames[j] == dtable[i]) + portnames[j] = MACH_PORT_NULL; + } /* Pack ports to be destroyed together. */ for (i = 0, j = 0; i < nportnames; i++) |