diff options
-rw-r--r-- | src/sys/os/os_proc.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/src/sys/os/os_proc.c b/src/sys/os/os_proc.c index 764b3f2..565c663 100644 --- a/src/sys/os/os_proc.c +++ b/src/sys/os/os_proc.c @@ -429,13 +429,17 @@ sys_getargv(struct syscall_args *scargs) char *u_buf = SCARG(scargs, char *, 1); size_t maxlen = SCARG(scargs, size_t, 2); struct proc *self = proc_self(); - struct penv_blk *envblk = self->envblk; + struct penv_blk *envblk; char *arg; if (argno >= envblk->argc) { return -EINVAL; } + if ((envblk = self->envblk) == NULL) { + return -EIO; + } + arg = envblk->argv[argno]; return copyoutstr(arg, u_buf, maxlen); } |