summaryrefslogtreecommitdiff
path: root/sysfile.c
diff options
context:
space:
mode:
Diffstat (limited to 'sysfile.c')
-rw-r--r--sysfile.c10
1 files changed, 8 insertions, 2 deletions
diff --git a/sysfile.c b/sysfile.c
index 45731f9..475c907 100644
--- a/sysfile.c
+++ b/sysfile.c
@@ -322,7 +322,7 @@ sys_exec(void)
struct elfhdr elf;
struct proghdr ph;
char *mem = 0;
- char *path, *s;
+ char *path, *s, *last;
uint argv;
if(argstr(0, &path) < 0 || argint(1, (int*)&argv) < 0)
@@ -399,6 +399,12 @@ sys_exec(void)
}
*(uint*)(mem + p1) = 0;
+ // Save name for debugging.
+ for(last=s=path; *s; s++)
+ if(*s == '/')
+ last = s+1;
+ safestrcpy(cp->name, last, sizeof cp->name);
+
// commit to the new image.
kfree(cp->mem, cp->sz);
cp->sz = sz;
@@ -419,7 +425,7 @@ sys_exec(void)
}
iput(ip);
-
+
cp->tf->eip = elf.entry;
cp->tf->esp = sp;
setupsegs(cp);