my comment is wrong, exec handles BSS fine
This commit is contained in:
parent
4587b35847
commit
05d66b0629
2 changed files with 16 additions and 3 deletions
3
exec.c
3
exec.c
|
@ -48,9 +48,6 @@ exec(char *path, char **argv)
|
||||||
}
|
}
|
||||||
iunlockput(ip);
|
iunlockput(ip);
|
||||||
|
|
||||||
// XXX rtm: what about the BSS? shouldn't there be some
|
|
||||||
// bzero()ing here?
|
|
||||||
|
|
||||||
// Allocate and initialize stack at sz
|
// Allocate and initialize stack at sz
|
||||||
sz = spbottom = PGROUNDUP(sz);
|
sz = spbottom = PGROUNDUP(sz);
|
||||||
if(!(sz = allocuvm(pgdir, sz, sz + PGSIZE)))
|
if(!(sz = allocuvm(pgdir, sz, sz + PGSIZE)))
|
||||||
|
|
16
usertests.c
16
usertests.c
|
@ -1419,6 +1419,21 @@ validatetest(void)
|
||||||
printf(stdout, "validate ok\n");
|
printf(stdout, "validate ok\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
char uninit[10000];
|
||||||
|
void
|
||||||
|
bsstest(void)
|
||||||
|
{
|
||||||
|
int i;
|
||||||
|
printf(stdout, "bss test\n");
|
||||||
|
for(i = 0; i < sizeof(uninit); i++){
|
||||||
|
if(uninit[i] != '\0'){
|
||||||
|
printf(stdout, "bss test failed\n");
|
||||||
|
exit();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
printf(stdout, "bss test ok\n");
|
||||||
|
}
|
||||||
|
|
||||||
int
|
int
|
||||||
main(int argc, char *argv[])
|
main(int argc, char *argv[])
|
||||||
{
|
{
|
||||||
|
@ -1430,6 +1445,7 @@ main(int argc, char *argv[])
|
||||||
}
|
}
|
||||||
close(open("usertests.ran", O_CREATE));
|
close(open("usertests.ran", O_CREATE));
|
||||||
|
|
||||||
|
bsstest();
|
||||||
sbrktest();
|
sbrktest();
|
||||||
validatetest();
|
validatetest();
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue