avoid user-level segfault if a process doesn't call exit()
This commit is contained in:
parent
872fa88e8a
commit
76ad8e974f
2
Makefile
2
Makefile
|
@ -90,7 +90,7 @@ tags: $(OBJS) _init
|
|||
ULIB = $U/ulib.o $U/usys.o $U/printf.o $U/umalloc.o
|
||||
|
||||
_%: %.o $(ULIB)
|
||||
$(LD) $(LDFLAGS) -N -e main -Ttext 0 -o $@ $^
|
||||
$(LD) $(LDFLAGS) -N -e _main -Ttext 0 -o $@ $^
|
||||
$(OBJDUMP) -S $@ > $*.asm
|
||||
$(OBJDUMP) -t $@ | sed '1,/SYMBOL TABLE/d; s/ .* / /; /^$$/d' > $*.sym
|
||||
|
||||
|
|
11
user/ulib.c
11
user/ulib.c
|
@ -3,6 +3,17 @@
|
|||
#include "kernel/fcntl.h"
|
||||
#include "user/user.h"
|
||||
|
||||
//
|
||||
// wrapper so that it's OK if main() does not call exit().
|
||||
//
|
||||
void
|
||||
_main()
|
||||
{
|
||||
extern int main();
|
||||
main();
|
||||
exit(0);
|
||||
}
|
||||
|
||||
char*
|
||||
strcpy(char *s, const char *t)
|
||||
{
|
||||
|
|
Loading…
Reference in a new issue