[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[hurd,commited] hurd: Make _hurd_libc_proc_init idempotent
From: |
Samuel Thibault |
Subject: |
[hurd,commited] hurd: Make _hurd_libc_proc_init idempotent |
Date: |
Fri, 13 Nov 2020 01:24:27 +0100 |
For the cases where _init is getting called several times during startup. Better
clean pointers anyway.
---
hurd/hurdinit.c | 30 +++++++++++++++++++-----------
1 file changed, 19 insertions(+), 11 deletions(-)
diff --git a/hurd/hurdinit.c b/hurd/hurdinit.c
index e4ec005b48..06a2d3b7fd 100644
--- a/hurd/hurdinit.c
+++ b/hurd/hurdinit.c
@@ -114,17 +114,25 @@ libc_hidden_def (_hurd_init)
void
_hurd_libc_proc_init (char **argv)
{
- /* Tell the proc server we exist, if it does. */
- if (_hurd_portarray[INIT_PORT_PROC] != MACH_PORT_NULL)
- _hurd_new_proc_init (argv, _hurd_intarray, _hurd_intarraysize);
-
- /* All done with init ints and ports. */
- __vm_deallocate (__mach_task_self (),
- (vm_address_t) _hurd_intarray,
- _hurd_intarraysize * sizeof (int));
- __vm_deallocate (__mach_task_self (),
- (vm_address_t) _hurd_portarray,
- _hurd_portarraysize * sizeof (mach_port_t));
+ if (_hurd_portarray)
+ {
+ /* Tell the proc server we exist, if it does. */
+ if (_hurd_portarray[INIT_PORT_PROC] != MACH_PORT_NULL)
+ _hurd_new_proc_init (argv, _hurd_intarray, _hurd_intarraysize);
+
+ /* All done with init ints and ports. */
+ __vm_deallocate (__mach_task_self (),
+ (vm_address_t) _hurd_intarray,
+ _hurd_intarraysize * sizeof (int));
+ _hurd_intarray = NULL;
+ _hurd_intarraysize = 0;
+
+ __vm_deallocate (__mach_task_self (),
+ (vm_address_t) _hurd_portarray,
+ _hurd_portarraysize * sizeof (mach_port_t));
+ _hurd_portarray = NULL;
+ _hurd_portarraysize = 0;
+ }
}
libc_hidden_def (_hurd_libc_proc_init)
--
2.28.0
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [hurd,commited] hurd: Make _hurd_libc_proc_init idempotent,
Samuel Thibault <=
- Prev by Date:
[hurd, commited] hurd: Move {, f, l}xstat{, at} and xmknod{at} to compat symbols
- Next by Date:
[hurd, commited] hurd: initialize libpthread before starting the signal thread
- Previous by thread:
[hurd, commited] hurd: Move {, f, l}xstat{, at} and xmknod{at} to compat symbols
- Next by thread:
[hurd, commited] hurd: initialize libpthread before starting the signal thread
- Index(es):