diff options
| author | Charles.Forsyth <devnull@localhost> | 2007-01-23 09:36:04 +0000 |
|---|---|---|
| committer | Charles.Forsyth <devnull@localhost> | 2007-01-23 09:36:04 +0000 |
| commit | 95028768b488f6878c9f26978d56aeb54fb5cf1e (patch) | |
| tree | b7ba04789e06dfa15a72fa59029c0c9fe6422d72 /os/port | |
| parent | ed8b7fd462e0202888a27ee1972409c52dec7d01 (diff) | |
check length in devenv.c
Diffstat (limited to 'os/port')
| -rw-r--r-- | os/port/devenv.c | 8 |
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); |
