nis_free_request (ibreq);
nis_add_entry (const_nis_name name, const nis_object *obj2, unsigned int flags){  nis_object obj;  nis_result *res;  nis_error status;  ib_request *ibreq;  size_t namelen = strlen (name);  char buf1[namelen + 20];  char buf4[namelen + 20];  res = calloc (1, sizeof (nis_result));  if (res == NULL)    return NULL;  if (name == NULL)    {      NIS_RES_STATUS (res) = NIS_BADNAME;      return res;    }  if ((ibreq = __create_ib_request (name, flags)) == NULL)    {      NIS_RES_STATUS (res) = NIS_BADNAME;      return res;    }  memcpy (&obj, obj2, sizeof (nis_object));  if (obj.zo_name == NULL || strlen (obj.zo_name) == 0)    obj.zo_name = nis_leaf_of_r (name, buf1, sizeof (buf1));  if (obj.zo_owner == NULL || strlen (obj.zo_owner) == 0)    obj.zo_owner = nis_local_principal ();  if (obj.zo_group == NULL || strlen (obj.zo_group) == 0)    obj.zo_group = nis_local_group ();  obj.zo_domain = nis_domain_of_r (name, buf4, sizeof (buf4));  ibreq->ibr_obj.ibr_obj_val = nis_clone_object (&obj, NULL);  if (ibreq->ibr_obj.ibr_obj_val == NULL)    {      NIS_RES_STATUS (res) = NIS_NOMEMORY;      return res;    }  ibreq->ibr_obj.ibr_obj_len = 1;  if ((status = __do_niscall (ibreq->ibr_name, NIS_IBADD,			      (xdrproc_t) _xdr_ib_request,			      (caddr_t) ibreq,			      (xdrproc_t) _xdr_nis_result,			      (caddr_t) res, 0, NULL)) != NIS_SUCCESS)    NIS_RES_STATUS (res) = status;  nis_free_request (ibreq);  return res;}