diff options
author | Robert Morris <[email protected]> | 2010-09-19 13:47:52 -0400 |
---|---|---|
committer | Robert Morris <[email protected]> | 2010-09-19 13:47:52 -0400 |
commit | 05d66b06294df89ba3d5b8f6cf535f7edf00bd1f (patch) | |
tree | 7ad72310c36730273ceb449be14c660ce3555732 | |
parent | 4587b35847b116057e3ef1058da914b8837ff343 (diff) | |
download | xv6-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.c | 3 | ||||
-rw-r--r-- | usertests.c | 16 |
2 files changed, 16 insertions, 3 deletions
@@ -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(); |