summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRobert Morris <[email protected]>2010-09-19 13:47:52 -0400
committerRobert Morris <[email protected]>2010-09-19 13:47:52 -0400
commit05d66b06294df89ba3d5b8f6cf535f7edf00bd1f (patch)
tree7ad72310c36730273ceb449be14c660ce3555732
parent4587b35847b116057e3ef1058da914b8837ff343 (diff)
downloadxv6-labs-05d66b06294df89ba3d5b8f6cf535f7edf00bd1f.tar.gz
xv6-labs-05d66b06294df89ba3d5b8f6cf535f7edf00bd1f.tar.bz2
xv6-labs-05d66b06294df89ba3d5b8f6cf535f7edf00bd1f.zip
my comment is wrong, exec handles BSS fine
-rw-r--r--exec.c3
-rw-r--r--usertests.c16
2 files changed, 16 insertions, 3 deletions
diff --git a/exec.c b/exec.c
index a6de18f..0a9ca59 100644
--- a/exec.c
+++ b/exec.c
@@ -48,9 +48,6 @@ exec(char *path, char **argv)
}
iunlockput(ip);
- // XXX rtm: what about the BSS? shouldn't there be some
- // bzero()ing here?
-
// Allocate and initialize stack at sz
sz = spbottom = PGROUNDUP(sz);
if(!(sz = allocuvm(pgdir, sz, sz + PGSIZE)))
diff --git a/usertests.c b/usertests.c
index 77495bf..e62703d 100644
--- a/usertests.c
+++ b/usertests.c
@@ -1419,6 +1419,21 @@ validatetest(void)
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
main(int argc, char *argv[])
{
@@ -1430,6 +1445,7 @@ main(int argc, char *argv[])
}
close(open("usertests.ran", O_CREATE));
+ bsstest();
sbrktest();
validatetest();