vm: fix a null dereference on out-of-memory
[minix.git] / lib / libc / sys-minix / init.c
blob38974f39c63fcf39f9a5082fda222b29223e111a
2 #include <stdio.h>
3 #include <minix/ipc.h>
5 /* Minix kernel info, IPC functions pointers */
6 struct minix_kerninfo *_minix_kerninfo = NULL;
8 void __minix_init(void) __attribute__((__constructor__, __used__));
10 struct minix_ipcvecs _minix_ipcvecs = {
11 .sendrec_ptr = _sendrec_orig,
12 .send_ptr = _send_orig,
13 .notify_ptr = _notify_orig,
14 .senda_ptr = _senda_orig,
15 .sendnb_ptr = _sendnb_orig,
16 .receive_ptr = _receive_orig,
17 .do_kernel_call_ptr = _do_kernel_call_orig,
20 void __minix_init(void)
22 if((_minix_kernel_info_struct(&_minix_kerninfo)) != 0
23 || _minix_kerninfo->kerninfo_magic != KERNINFO_MAGIC) {
24 _minix_kerninfo = NULL;
25 } else if((_minix_kerninfo->ki_flags & MINIX_KIF_IPCVECS) &&
26 _minix_kerninfo->minix_ipcvecs) {
27 _minix_ipcvecs = *_minix_kerninfo->minix_ipcvecs;