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
|
ULIB = $U/ulib.o $U/usys.o $U/printf.o $U/umalloc.o
|
||||||
|
|
||||||
_%: %.o $(ULIB)
|
_%: %.o $(ULIB)
|
||||||
$(LD) $(LDFLAGS) -N -e main -Ttext 0 -o $@ $^
|
$(LD) $(LDFLAGS) -N -e _main -Ttext 0 -o $@ $^
|
||||||
$(OBJDUMP) -S $@ > $*.asm
|
$(OBJDUMP) -S $@ > $*.asm
|
||||||
$(OBJDUMP) -t $@ | sed '1,/SYMBOL TABLE/d; s/ .* / /; /^$$/d' > $*.sym
|
$(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 "kernel/fcntl.h"
|
||||||
#include "user/user.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*
|
char*
|
||||||
strcpy(char *s, const char *t)
|
strcpy(char *s, const char *t)
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in a new issue