11 if(name[0]=='\0' || strcmp(name, ".")==0 || strcmp(name, "..")==0 || strchr(name, '/')!=nil
12 || strlen(name) >= HUNK-5){
13 werrstr("bad env name: %s", name);
16 if((s = malloc(HUNK)) == nil)
18 snprint(s, HUNK, "/env/%s", name);
21 f = open(s, OREAD|OCEXEC);
23 while((r = read(f, s+n, HUNK)) > 0){
26 if((p = realloc(s, n+HUNK)) == nil)
32 if(r < 0 || (p = realloc(s, n+1)) == nil){
37 setmalloctag(s, getcallerpc(&name));
38 while(n > 0 && s[n-1] == '\0')