summaryrefslogtreecommitdiff
path: root/os/port
diff options
context:
space:
mode:
Diffstat (limited to 'os/port')
-rw-r--r--os/port/devenv.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/os/port/devenv.c b/os/port/devenv.c
index da6373a2..f58c0c74 100644
--- a/os/port/devenv.c
+++ b/os/port/devenv.c
@@ -179,12 +179,15 @@ static long
envwrite(Chan *c, void *a, long n, vlong offset)
{
char *s;
- int ve;
+ ulong ve;
Egrp *eg;
Evalue *e;
if(n <= 0)
return 0;
+ ve = offset+n;
+ if(ve > Maxenvsize)
+ error(Etoobig);
eg = up->env->egrp;
qlock(eg);
if(waserror()){
@@ -196,9 +199,6 @@ envwrite(Chan *c, void *a, long n, vlong offset)
break;
if(e == nil)
error(Enonexist);
- ve = offset+n;
- if(ve > Maxenvsize)
- error(Etoobig);
if(ve > e->len) {
s = smalloc(ve);
memmove(s, e->val, e->len);