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 if((f = open(s, OREAD)) >= 0){
22 while((r = read(f, s+n, HUNK)) > 0){
25 if((p = realloc(s, n+HUNK)) == nil)
31 if(r < 0 || (p = realloc(s, n+1)) == nil){
36 setmalloctag(s, getcallerpc(&name));
37 while(n > 0 && s[n-1] == '\0')