diff options
Diffstat (limited to 'libgo/runtime/go-setenv.c')
-rw-r--r-- | libgo/runtime/go-setenv.c | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/libgo/runtime/go-setenv.c b/libgo/runtime/go-setenv.c index 53ef2d3..6c7378c 100644 --- a/libgo/runtime/go-setenv.c +++ b/libgo/runtime/go-setenv.c @@ -25,20 +25,25 @@ setenv_c (String k, String v) unsigned char *vn; ks = k.str; + if (ks == NULL) + ks = (const byte *) ""; kn = NULL; + vs = v.str; + if (vs == NULL) + vs = (const byte *) ""; vn = NULL; #ifdef HAVE_SETENV - if (ks[k.len] != 0) + if (ks != NULL && ks[k.len] != 0) { kn = __go_alloc (k.len + 1); __builtin_memcpy (kn, ks, k.len); ks = kn; } - if (vs[v.len] != 0) + if (vs != NULL && vs[v.len] != 0) { vn = __go_alloc (v.len + 1); __builtin_memcpy (vn, vs, v.len); |