p = getenv("HES_DOMAIN");
p = __secure_getenv("HES_DOMAIN");
int hesiod_init(void **context){  struct hesiod_p *ctx;  const char *p, *configname;  ctx = malloc(sizeof(struct hesiod_p));  if (ctx)    {      *context = ctx;      configname = __secure_getenv("HESIOD_CONFIG");      if (!configname)	configname = SYSCONFDIR "/hesiod.conf";      if (read_config_file(ctx, configname) >= 0)	{	  /* The default rhs can be overridden by an environment variable. */	  p = getenv("HES_DOMAIN");	  if (p)	    {	      if (ctx->rhs)		free(ctx->rhs);	      ctx->rhs = malloc(strlen(p) + 2);	      if (ctx->rhs)		{		  *ctx->rhs = '.';		  strcpy(ctx->rhs + 1, (*p == '.') ? p + 1 : p);		  return 0;		}	      else		__set_errno (ENOMEM);	    }	  else	    return 0;	}    }  else    __set_errno (ENOMEM);  if (ctx->lhs)    free(ctx->lhs);  if (ctx->rhs)    free(ctx->rhs);  if (ctx)    free(ctx);  return -1;}