Unified · Split
| @@ -186,9 +186,11 @@ BUILTIN("make-process", make_process) · 185 unmodified lines | ||
| 186 | 186 | bthrow(type_error("env", "assoc list", e)); |
| 187 | 187 | const char *ek = tostr(car_(pair)), *ev = tostr(cdr_(pair)); |
| 188 | 188 | int nk = strlen(ek), nv = strlen(ev), sz = nk+1+nv+1; |
| 189 | − if((env[i] = MEM_ALLOC(nk+1+nv+1)) == nil) | |
| 189 | + if((env[i] = MEM_ALLOC(sz)) == nil) | |
| 190 | 190 | bthrow(error(sl_errmem, "no memory for env[%d]", i)); |
| 191 | − snprintf(env[i], sz, "%s=%s", ek, ev); | |
| 191 | + memcpy(env[i], ek, nk); | |
| 192 | + env[i][nk] = '='; | |
| 193 | + memcpy(env[i]+nk+1, ev, nv+1); | |
| 192 | 194 | } |
| 193 | 195 | env[ne] = nil; |
| 194 | 196 | } |