Yes, it's the lists. Nothing will cope with \0 in a C string, so it's a good choice as list of string element separator.

On 18 January 2017 at 19:21, Fran. J Ballesteros <nemo@lsub.org> wrote:
rc lists?

> El 18 ene 2017, a las 17:45, Giacomo Tesio <giacomo@tesio.it> escribió:
>
> Hi, last night I noticed this strange post processing in 4th edition's
> getenv: https://github.com/brho/plan9/blob/master/sys/src/libc/9sys/getenv.c#L34-L41
>
>        seek(f, 0, 0);
>        r = read(f, ans, s);
>        if(r >= 0) {
>            ep = ans + s - 1;
>            for(p = ans; p < ep; p++)
>                if(*p == '\0')
>                    *p = ' ';
>            ans[s] = '\0';
>        }
>
> Anybody know why this replacement is done?
> It does not seem a good fix to read/write or read/truncate races, but
> I can't find a better explanation.
>
>
> Giacomo
>