mirror of
https://sourceware.org/git/glibc.git
synced 2025-07-29 11:41:21 +03:00
Update.
1998-07-20 Jose M. Moya <josem@gnu.org> * hurd/hurdmsg.c (_S_msg_get_env_variable): Copy getenv return value. 1998-07-20 Roland McGrath <roland@baalperazim.frob.com> * sysdeps/mach/hurd/getdomain.c: New file. * sysdeps/mach/hurd/setdomain.c: New file. 1998-07-20 Roland McGrath <roland@baalperazim.frob.com> * sysdeps/unix/bsd/sigsuspend.c: Define __sigsuspend with sigsuspend as a weak alias.
This commit is contained in:
@ -315,14 +315,24 @@ _S_msg_get_env_variable (mach_port_t msgport,
|
||||
char *variable,
|
||||
char **data, mach_msg_type_number_t *datalen)
|
||||
{
|
||||
error_t err;
|
||||
mach_msg_type_number_t valuelen;
|
||||
const char *value = getenv (variable);
|
||||
|
||||
if (value == NULL)
|
||||
return ENOENT;
|
||||
|
||||
/* XXX this pointer might become invalid */
|
||||
*data = value;
|
||||
*datalen = strlen (value);
|
||||
valuelen = strlen (value);
|
||||
if (valuelen > *datalen)
|
||||
{
|
||||
if (err = __vm_allocate (__mach_task_self (),
|
||||
(vm_address_t *) data, valuelen, 1))
|
||||
return err;
|
||||
}
|
||||
|
||||
memcpy (*data, value, valuelen);
|
||||
*datalen = valuelen;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user