diff options
| author | Robert Morris <rtm@csail.mit.edu> | 2016-08-08 13:06:38 -0400 | 
|---|---|---|
| committer | Robert Morris <rtm@csail.mit.edu> | 2016-08-08 13:06:38 -0400 | 
| commit | 0a4a4230a32696ef7f1f6272ca24520826195b7f (patch) | |
| tree | 141ab2a59646c6e3799f7d8537eea001ca43a659 | |
| parent | 50edfe1412e5389ce4e3078b223e7b2e72e6ba66 (diff) | |
| download | xv6-labs-0a4a4230a32696ef7f1f6272ca24520826195b7f.tar.gz xv6-labs-0a4a4230a32696ef7f1f6272ca24520826195b7f.tar.bz2 xv6-labs-0a4a4230a32696ef7f1f6272ca24520826195b7f.zip | |
shell nits
fix Regehr complaint
| -rw-r--r-- | sh.c | 5 | ||||
| -rw-r--r-- | vm.c | 7 | 
2 files changed, 8 insertions, 4 deletions
| @@ -147,7 +147,7 @@ main(void)    static char buf[100];    int fd; -  // Assumes three file descriptors open. +  // Ensure that three file descriptors are open.    while((fd = open("console", O_RDWR)) >= 0){      if(fd >= 3){        close(fd); @@ -158,8 +158,7 @@ main(void)    // Read and run input commands.    while(getcmd(buf, sizeof(buf)) >= 0){      if(buf[0] == 'c' && buf[1] == 'd' && buf[2] == ' '){ -      // Clumsy but will have to do for now. -      // Chdir has no effect on the parent if run in the child. +      // Chdir must be called by the parent, not the child.        buf[strlen(buf)-1] = 0;  // chop \n        if(chdir(buf+3) < 0)          printf(2, "cannot cd %s\n", buf+3); @@ -237,7 +237,12 @@ allocuvm(pde_t *pgdir, uint oldsz, uint newsz)        return 0;      }      memset(mem, 0, PGSIZE); -    mappages(pgdir, (char*)a, PGSIZE, v2p(mem), PTE_W|PTE_U); +    if(mappages(pgdir, (char*)a, PGSIZE, v2p(mem), PTE_W|PTE_U) < 0){ +      cprintf("allocuvm out of memory (2)\n"); +      deallocuvm(pgdir, newsz, oldsz); +      kfree(mem); +      return 0; +    }    }    return newsz;  } | 
